/*
 * SDK Pullenti Unitext, version 4.33, fabruary 2026. Copyright (c) 2013-2026, Pullenti. All rights reserved. 
 * Non-Commercial Freeware and Commercial Software. 
 * This class is generated using the converter Unisharping (www.unisharping.ru) from Pullenti C# project. 
 * The latest version of the code is available on the site www.pullenti.ru
 */

package com.pullenti.unitext;

/**
 * Формат файла
 */
public class FileFormat implements Comparable<FileFormat> {

    /**
     * Неизвестный формат
     */
    public static final FileFormat UNKNOWN; // 0

    /**
     * Двоичный формат документа MsWord
     */
    public static final FileFormat DOC; // 1

    /**
     * Открытый формат документа MsWord
     */
    public static final FileFormat DOCX; // 2

    /**
     * Специфический формат документа MsWord в Xml
     */
    public static final FileFormat DOCXML; // 3

    /**
     * Открытый формат MsPowerPoint
     */
    public static final FileFormat PPTX; // 4

    /**
     * Portable Document Format (Adobe)
     */
    public static final FileFormat PDF; // 5

    /**
     * Текстовой файл в разных кодировках
     */
    public static final FileFormat TXT; // 6

    /**
     * Hypertext Markup Language
     */
    public static final FileFormat HTML; // 7

    /**
     * Mime HtmFile
     */
    public static final FileFormat MHT; // 8

    /**
     * Rich Text Format
     */
    public static final FileFormat RTF; // 9

    /**
     * Двоичный формат таблицы MsExcel
     */
    public static final FileFormat XLS; // 10

    /**
     * Открытый формат таблицы MsExcel
     */
    public static final FileFormat XLSX; // 11

    /**
     * Специфический формат таблицы MsExcel в Xml
     */
    public static final FileFormat XLSXML; // 12

    /**
     * Формат типа xlsx, только вместо xml там хранятся какие-то бинарники
     */
    public static final FileFormat XLSB; // 13

    /**
     * Comma-Separated Values, текстовое представление таблицы
     */
    public static final FileFormat CSV; // 14

    /**
     * OpenOffice Document
     */
    public static final FileFormat ODT; // 15

    /**
     * OpenOffice Spreadsheet
     */
    public static final FileFormat ODS; // 16

    /**
     * Дежавю-формат
     */
    public static final FileFormat DJVU; // 17

    /**
     * FictionBook (FeedBook) версии 2
     */
    public static final FileFormat FB2; // 18

    /**
     * FictionBook (FeedBook) версии 3
     */
    public static final FileFormat FB3; // 19

    /**
     * Electronic Publication
     */
    public static final FileFormat EPUB; // 20

    /**
     * Письмо формата MsOutlook
     */
    public static final FileFormat MSG; // 21

    /**
     * Почтовый формат
     */
    public static final FileFormat EML; // 22

    /**
     * Zip-архив
     */
    public static final FileFormat ZIP; // 23

    /**
     * Rar-архив
     */
    public static final FileFormat RAR; // 24

    /**
     * Tar-архив
     */
    public static final FileFormat TAR; // 25

    /**
     * Gzip-архив
     */
    public static final FileFormat GZIP; // 26

    /**
     * Zip7-архив
     */
    public static final FileFormat ZIP7; // 27

    /**
     * Картинка Bmp
     */
    public static final FileFormat BMP; // 28

    /**
     * Картинка Jpeg
     */
    public static final FileFormat JPG; // 29

    /**
     * Картинка Jpeg2000
     */
    public static final FileFormat JPG2000; // 30

    /**
     * Картинка Tiff
     */
    public static final FileFormat TIF; // 31

    /**
     * Картинка Pgn
     */
    public static final FileFormat PNG; // 32

    /**
     * Картинка Gif
     */
    public static final FileFormat GIF; // 33

    /**
     * Картинка Enhanced Windows Metafile
     */
    public static final FileFormat EMF; // 34

    /**
     * Xml-формат
     */
    public static final FileFormat XML; // 35

    /**
     * Json-формат
     */
    public static final FileFormat JSON; // 36

    /**
     * XML Paper Specification File
     */
    public static final FileFormat XPS; // 37

    /**
     * Формат DBF
     */
    public static final FileFormat DBF; // 38

    /**
     * База Sqlight
     */
    public static final FileFormat SQLIGHT; // 39


    public int value() { return m_val; }
    private int m_val;
    private String m_str;
    private FileFormat(int val, String str) { m_val = val; m_str = str; }
    @Override
    public String toString() {
        if(m_str != null) return m_str;
        return ((Integer)m_val).toString();
    }
    @Override
    public int hashCode() {
        return (int)m_val;
    }
    @Override
    public int compareTo(FileFormat v) {
        if(m_val < v.m_val) return -1;
        if(m_val > v.m_val) return 1;
        return 0;
    }
    private static java.util.HashMap<Integer, FileFormat> mapIntToEnum; 
    private static java.util.HashMap<String, FileFormat> mapStringToEnum; 
    private static FileFormat[] m_Values; 
    private static java.util.Collection<Integer> m_Keys; 
    public static FileFormat of(int val) {
        if (mapIntToEnum.containsKey(val)) return mapIntToEnum.get(val);
        FileFormat item = new FileFormat(val, ((Integer)val).toString());
        mapIntToEnum.put(val, item);
        mapStringToEnum.put(item.m_str.toUpperCase(), item);
        return item; 
    }
    public static FileFormat of(String str) {
        str = str.toUpperCase(); 
        if (mapStringToEnum.containsKey(str)) return mapStringToEnum.get(str);
        return null; 
    }
    public static boolean isDefined(Object val) {
        if(val instanceof Integer) return m_Keys.contains((Integer)val); 
        return false; 
    }
    public static FileFormat[] getValues() {
        return m_Values; 
    }
    static {
        mapIntToEnum = new java.util.HashMap<Integer, FileFormat>();
        mapStringToEnum = new java.util.HashMap<String, FileFormat>();
        UNKNOWN = new FileFormat(0, "UNKNOWN");
        mapIntToEnum.put(UNKNOWN.value(), UNKNOWN);
        mapStringToEnum.put(UNKNOWN.m_str.toUpperCase(), UNKNOWN);
        DOC = new FileFormat(1, "DOC");
        mapIntToEnum.put(DOC.value(), DOC);
        mapStringToEnum.put(DOC.m_str.toUpperCase(), DOC);
        DOCX = new FileFormat(2, "DOCX");
        mapIntToEnum.put(DOCX.value(), DOCX);
        mapStringToEnum.put(DOCX.m_str.toUpperCase(), DOCX);
        DOCXML = new FileFormat(3, "DOCXML");
        mapIntToEnum.put(DOCXML.value(), DOCXML);
        mapStringToEnum.put(DOCXML.m_str.toUpperCase(), DOCXML);
        PPTX = new FileFormat(4, "PPTX");
        mapIntToEnum.put(PPTX.value(), PPTX);
        mapStringToEnum.put(PPTX.m_str.toUpperCase(), PPTX);
        PDF = new FileFormat(5, "PDF");
        mapIntToEnum.put(PDF.value(), PDF);
        mapStringToEnum.put(PDF.m_str.toUpperCase(), PDF);
        TXT = new FileFormat(6, "TXT");
        mapIntToEnum.put(TXT.value(), TXT);
        mapStringToEnum.put(TXT.m_str.toUpperCase(), TXT);
        HTML = new FileFormat(7, "HTML");
        mapIntToEnum.put(HTML.value(), HTML);
        mapStringToEnum.put(HTML.m_str.toUpperCase(), HTML);
        MHT = new FileFormat(8, "MHT");
        mapIntToEnum.put(MHT.value(), MHT);
        mapStringToEnum.put(MHT.m_str.toUpperCase(), MHT);
        RTF = new FileFormat(9, "RTF");
        mapIntToEnum.put(RTF.value(), RTF);
        mapStringToEnum.put(RTF.m_str.toUpperCase(), RTF);
        XLS = new FileFormat(10, "XLS");
        mapIntToEnum.put(XLS.value(), XLS);
        mapStringToEnum.put(XLS.m_str.toUpperCase(), XLS);
        XLSX = new FileFormat(11, "XLSX");
        mapIntToEnum.put(XLSX.value(), XLSX);
        mapStringToEnum.put(XLSX.m_str.toUpperCase(), XLSX);
        XLSXML = new FileFormat(12, "XLSXML");
        mapIntToEnum.put(XLSXML.value(), XLSXML);
        mapStringToEnum.put(XLSXML.m_str.toUpperCase(), XLSXML);
        XLSB = new FileFormat(13, "XLSB");
        mapIntToEnum.put(XLSB.value(), XLSB);
        mapStringToEnum.put(XLSB.m_str.toUpperCase(), XLSB);
        CSV = new FileFormat(14, "CSV");
        mapIntToEnum.put(CSV.value(), CSV);
        mapStringToEnum.put(CSV.m_str.toUpperCase(), CSV);
        ODT = new FileFormat(15, "ODT");
        mapIntToEnum.put(ODT.value(), ODT);
        mapStringToEnum.put(ODT.m_str.toUpperCase(), ODT);
        ODS = new FileFormat(16, "ODS");
        mapIntToEnum.put(ODS.value(), ODS);
        mapStringToEnum.put(ODS.m_str.toUpperCase(), ODS);
        DJVU = new FileFormat(17, "DJVU");
        mapIntToEnum.put(DJVU.value(), DJVU);
        mapStringToEnum.put(DJVU.m_str.toUpperCase(), DJVU);
        FB2 = new FileFormat(18, "FB2");
        mapIntToEnum.put(FB2.value(), FB2);
        mapStringToEnum.put(FB2.m_str.toUpperCase(), FB2);
        FB3 = new FileFormat(19, "FB3");
        mapIntToEnum.put(FB3.value(), FB3);
        mapStringToEnum.put(FB3.m_str.toUpperCase(), FB3);
        EPUB = new FileFormat(20, "EPUB");
        mapIntToEnum.put(EPUB.value(), EPUB);
        mapStringToEnum.put(EPUB.m_str.toUpperCase(), EPUB);
        MSG = new FileFormat(21, "MSG");
        mapIntToEnum.put(MSG.value(), MSG);
        mapStringToEnum.put(MSG.m_str.toUpperCase(), MSG);
        EML = new FileFormat(22, "EML");
        mapIntToEnum.put(EML.value(), EML);
        mapStringToEnum.put(EML.m_str.toUpperCase(), EML);
        ZIP = new FileFormat(23, "ZIP");
        mapIntToEnum.put(ZIP.value(), ZIP);
        mapStringToEnum.put(ZIP.m_str.toUpperCase(), ZIP);
        RAR = new FileFormat(24, "RAR");
        mapIntToEnum.put(RAR.value(), RAR);
        mapStringToEnum.put(RAR.m_str.toUpperCase(), RAR);
        TAR = new FileFormat(25, "TAR");
        mapIntToEnum.put(TAR.value(), TAR);
        mapStringToEnum.put(TAR.m_str.toUpperCase(), TAR);
        GZIP = new FileFormat(26, "GZIP");
        mapIntToEnum.put(GZIP.value(), GZIP);
        mapStringToEnum.put(GZIP.m_str.toUpperCase(), GZIP);
        ZIP7 = new FileFormat(27, "ZIP7");
        mapIntToEnum.put(ZIP7.value(), ZIP7);
        mapStringToEnum.put(ZIP7.m_str.toUpperCase(), ZIP7);
        BMP = new FileFormat(28, "BMP");
        mapIntToEnum.put(BMP.value(), BMP);
        mapStringToEnum.put(BMP.m_str.toUpperCase(), BMP);
        JPG = new FileFormat(29, "JPG");
        mapIntToEnum.put(JPG.value(), JPG);
        mapStringToEnum.put(JPG.m_str.toUpperCase(), JPG);
        JPG2000 = new FileFormat(30, "JPG2000");
        mapIntToEnum.put(JPG2000.value(), JPG2000);
        mapStringToEnum.put(JPG2000.m_str.toUpperCase(), JPG2000);
        TIF = new FileFormat(31, "TIF");
        mapIntToEnum.put(TIF.value(), TIF);
        mapStringToEnum.put(TIF.m_str.toUpperCase(), TIF);
        PNG = new FileFormat(32, "PNG");
        mapIntToEnum.put(PNG.value(), PNG);
        mapStringToEnum.put(PNG.m_str.toUpperCase(), PNG);
        GIF = new FileFormat(33, "GIF");
        mapIntToEnum.put(GIF.value(), GIF);
        mapStringToEnum.put(GIF.m_str.toUpperCase(), GIF);
        EMF = new FileFormat(34, "EMF");
        mapIntToEnum.put(EMF.value(), EMF);
        mapStringToEnum.put(EMF.m_str.toUpperCase(), EMF);
        XML = new FileFormat(35, "XML");
        mapIntToEnum.put(XML.value(), XML);
        mapStringToEnum.put(XML.m_str.toUpperCase(), XML);
        JSON = new FileFormat(36, "JSON");
        mapIntToEnum.put(JSON.value(), JSON);
        mapStringToEnum.put(JSON.m_str.toUpperCase(), JSON);
        XPS = new FileFormat(37, "XPS");
        mapIntToEnum.put(XPS.value(), XPS);
        mapStringToEnum.put(XPS.m_str.toUpperCase(), XPS);
        DBF = new FileFormat(38, "DBF");
        mapIntToEnum.put(DBF.value(), DBF);
        mapStringToEnum.put(DBF.m_str.toUpperCase(), DBF);
        SQLIGHT = new FileFormat(39, "SQLIGHT");
        mapIntToEnum.put(SQLIGHT.value(), SQLIGHT);
        mapStringToEnum.put(SQLIGHT.m_str.toUpperCase(), SQLIGHT);
        java.util.Collection<FileFormat> col = mapIntToEnum.values();
        m_Values = new FileFormat[col.size()];
        col.toArray(m_Values);
        m_Keys = new java.util.ArrayList<Integer>(mapIntToEnum.keySet());
    }
}
