/*
 * 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
 */

const Hashtable = require("./../unisharp/Hashtable");

/**
 * Формат файла
 */
class FileFormat {

    constructor(val, str) {
        this.m_val = val;
        this.m_str = str;
    }
    toString() {
        return this.m_str;
    }
    value() {
        return this.m_val;
    }
    static of(val) {
        if(val instanceof FileFormat) 
            return val;
        if(typeof val === 'string' || val instanceof String) {
            val = val.toUpperCase();
            if(FileFormat.mapStringToEnum.containsKey(val))
                return FileFormat.mapStringToEnum.get(val);
            return null;
        }
        if(FileFormat.mapIntToEnum.containsKey(val))
            return FileFormat.mapIntToEnum.get(val);
        let it = new FileFormat(val, val.toString());
        FileFormat.mapIntToEnum.put(val, it);
        FileFormat.mapStringToEnum.put(val.toString(), it);
        return it;
    }
    static isDefined(val) {
        return FileFormat.m_Keys.indexOf(val) >= 0;
    }
    static getValues() {
        return FileFormat.m_Values;
    }
    static static_constructor() {
        FileFormat.mapIntToEnum = new Hashtable();
        FileFormat.mapStringToEnum = new Hashtable();
        FileFormat.UNKNOWN = new FileFormat(0, "UNKNOWN");
        FileFormat.mapIntToEnum.put(FileFormat.UNKNOWN.value(), FileFormat.UNKNOWN); 
        FileFormat.mapStringToEnum.put(FileFormat.UNKNOWN.m_str.toUpperCase(), FileFormat.UNKNOWN); 
        FileFormat.DOC = new FileFormat(1, "DOC");
        FileFormat.mapIntToEnum.put(FileFormat.DOC.value(), FileFormat.DOC); 
        FileFormat.mapStringToEnum.put(FileFormat.DOC.m_str.toUpperCase(), FileFormat.DOC); 
        FileFormat.DOCX = new FileFormat(2, "DOCX");
        FileFormat.mapIntToEnum.put(FileFormat.DOCX.value(), FileFormat.DOCX); 
        FileFormat.mapStringToEnum.put(FileFormat.DOCX.m_str.toUpperCase(), FileFormat.DOCX); 
        FileFormat.DOCXML = new FileFormat(3, "DOCXML");
        FileFormat.mapIntToEnum.put(FileFormat.DOCXML.value(), FileFormat.DOCXML); 
        FileFormat.mapStringToEnum.put(FileFormat.DOCXML.m_str.toUpperCase(), FileFormat.DOCXML); 
        FileFormat.PPTX = new FileFormat(4, "PPTX");
        FileFormat.mapIntToEnum.put(FileFormat.PPTX.value(), FileFormat.PPTX); 
        FileFormat.mapStringToEnum.put(FileFormat.PPTX.m_str.toUpperCase(), FileFormat.PPTX); 
        FileFormat.PDF = new FileFormat(5, "PDF");
        FileFormat.mapIntToEnum.put(FileFormat.PDF.value(), FileFormat.PDF); 
        FileFormat.mapStringToEnum.put(FileFormat.PDF.m_str.toUpperCase(), FileFormat.PDF); 
        FileFormat.TXT = new FileFormat(6, "TXT");
        FileFormat.mapIntToEnum.put(FileFormat.TXT.value(), FileFormat.TXT); 
        FileFormat.mapStringToEnum.put(FileFormat.TXT.m_str.toUpperCase(), FileFormat.TXT); 
        FileFormat.HTML = new FileFormat(7, "HTML");
        FileFormat.mapIntToEnum.put(FileFormat.HTML.value(), FileFormat.HTML); 
        FileFormat.mapStringToEnum.put(FileFormat.HTML.m_str.toUpperCase(), FileFormat.HTML); 
        FileFormat.MHT = new FileFormat(8, "MHT");
        FileFormat.mapIntToEnum.put(FileFormat.MHT.value(), FileFormat.MHT); 
        FileFormat.mapStringToEnum.put(FileFormat.MHT.m_str.toUpperCase(), FileFormat.MHT); 
        FileFormat.RTF = new FileFormat(9, "RTF");
        FileFormat.mapIntToEnum.put(FileFormat.RTF.value(), FileFormat.RTF); 
        FileFormat.mapStringToEnum.put(FileFormat.RTF.m_str.toUpperCase(), FileFormat.RTF); 
        FileFormat.XLS = new FileFormat(10, "XLS");
        FileFormat.mapIntToEnum.put(FileFormat.XLS.value(), FileFormat.XLS); 
        FileFormat.mapStringToEnum.put(FileFormat.XLS.m_str.toUpperCase(), FileFormat.XLS); 
        FileFormat.XLSX = new FileFormat(11, "XLSX");
        FileFormat.mapIntToEnum.put(FileFormat.XLSX.value(), FileFormat.XLSX); 
        FileFormat.mapStringToEnum.put(FileFormat.XLSX.m_str.toUpperCase(), FileFormat.XLSX); 
        FileFormat.XLSXML = new FileFormat(12, "XLSXML");
        FileFormat.mapIntToEnum.put(FileFormat.XLSXML.value(), FileFormat.XLSXML); 
        FileFormat.mapStringToEnum.put(FileFormat.XLSXML.m_str.toUpperCase(), FileFormat.XLSXML); 
        FileFormat.XLSB = new FileFormat(13, "XLSB");
        FileFormat.mapIntToEnum.put(FileFormat.XLSB.value(), FileFormat.XLSB); 
        FileFormat.mapStringToEnum.put(FileFormat.XLSB.m_str.toUpperCase(), FileFormat.XLSB); 
        FileFormat.CSV = new FileFormat(14, "CSV");
        FileFormat.mapIntToEnum.put(FileFormat.CSV.value(), FileFormat.CSV); 
        FileFormat.mapStringToEnum.put(FileFormat.CSV.m_str.toUpperCase(), FileFormat.CSV); 
        FileFormat.ODT = new FileFormat(15, "ODT");
        FileFormat.mapIntToEnum.put(FileFormat.ODT.value(), FileFormat.ODT); 
        FileFormat.mapStringToEnum.put(FileFormat.ODT.m_str.toUpperCase(), FileFormat.ODT); 
        FileFormat.ODS = new FileFormat(16, "ODS");
        FileFormat.mapIntToEnum.put(FileFormat.ODS.value(), FileFormat.ODS); 
        FileFormat.mapStringToEnum.put(FileFormat.ODS.m_str.toUpperCase(), FileFormat.ODS); 
        FileFormat.DJVU = new FileFormat(17, "DJVU");
        FileFormat.mapIntToEnum.put(FileFormat.DJVU.value(), FileFormat.DJVU); 
        FileFormat.mapStringToEnum.put(FileFormat.DJVU.m_str.toUpperCase(), FileFormat.DJVU); 
        FileFormat.FB2 = new FileFormat(18, "FB2");
        FileFormat.mapIntToEnum.put(FileFormat.FB2.value(), FileFormat.FB2); 
        FileFormat.mapStringToEnum.put(FileFormat.FB2.m_str.toUpperCase(), FileFormat.FB2); 
        FileFormat.FB3 = new FileFormat(19, "FB3");
        FileFormat.mapIntToEnum.put(FileFormat.FB3.value(), FileFormat.FB3); 
        FileFormat.mapStringToEnum.put(FileFormat.FB3.m_str.toUpperCase(), FileFormat.FB3); 
        FileFormat.EPUB = new FileFormat(20, "EPUB");
        FileFormat.mapIntToEnum.put(FileFormat.EPUB.value(), FileFormat.EPUB); 
        FileFormat.mapStringToEnum.put(FileFormat.EPUB.m_str.toUpperCase(), FileFormat.EPUB); 
        FileFormat.MSG = new FileFormat(21, "MSG");
        FileFormat.mapIntToEnum.put(FileFormat.MSG.value(), FileFormat.MSG); 
        FileFormat.mapStringToEnum.put(FileFormat.MSG.m_str.toUpperCase(), FileFormat.MSG); 
        FileFormat.EML = new FileFormat(22, "EML");
        FileFormat.mapIntToEnum.put(FileFormat.EML.value(), FileFormat.EML); 
        FileFormat.mapStringToEnum.put(FileFormat.EML.m_str.toUpperCase(), FileFormat.EML); 
        FileFormat.ZIP = new FileFormat(23, "ZIP");
        FileFormat.mapIntToEnum.put(FileFormat.ZIP.value(), FileFormat.ZIP); 
        FileFormat.mapStringToEnum.put(FileFormat.ZIP.m_str.toUpperCase(), FileFormat.ZIP); 
        FileFormat.RAR = new FileFormat(24, "RAR");
        FileFormat.mapIntToEnum.put(FileFormat.RAR.value(), FileFormat.RAR); 
        FileFormat.mapStringToEnum.put(FileFormat.RAR.m_str.toUpperCase(), FileFormat.RAR); 
        FileFormat.TAR = new FileFormat(25, "TAR");
        FileFormat.mapIntToEnum.put(FileFormat.TAR.value(), FileFormat.TAR); 
        FileFormat.mapStringToEnum.put(FileFormat.TAR.m_str.toUpperCase(), FileFormat.TAR); 
        FileFormat.GZIP = new FileFormat(26, "GZIP");
        FileFormat.mapIntToEnum.put(FileFormat.GZIP.value(), FileFormat.GZIP); 
        FileFormat.mapStringToEnum.put(FileFormat.GZIP.m_str.toUpperCase(), FileFormat.GZIP); 
        FileFormat.ZIP7 = new FileFormat(27, "ZIP7");
        FileFormat.mapIntToEnum.put(FileFormat.ZIP7.value(), FileFormat.ZIP7); 
        FileFormat.mapStringToEnum.put(FileFormat.ZIP7.m_str.toUpperCase(), FileFormat.ZIP7); 
        FileFormat.BMP = new FileFormat(28, "BMP");
        FileFormat.mapIntToEnum.put(FileFormat.BMP.value(), FileFormat.BMP); 
        FileFormat.mapStringToEnum.put(FileFormat.BMP.m_str.toUpperCase(), FileFormat.BMP); 
        FileFormat.JPG = new FileFormat(29, "JPG");
        FileFormat.mapIntToEnum.put(FileFormat.JPG.value(), FileFormat.JPG); 
        FileFormat.mapStringToEnum.put(FileFormat.JPG.m_str.toUpperCase(), FileFormat.JPG); 
        FileFormat.JPG2000 = new FileFormat(30, "JPG2000");
        FileFormat.mapIntToEnum.put(FileFormat.JPG2000.value(), FileFormat.JPG2000); 
        FileFormat.mapStringToEnum.put(FileFormat.JPG2000.m_str.toUpperCase(), FileFormat.JPG2000); 
        FileFormat.TIF = new FileFormat(31, "TIF");
        FileFormat.mapIntToEnum.put(FileFormat.TIF.value(), FileFormat.TIF); 
        FileFormat.mapStringToEnum.put(FileFormat.TIF.m_str.toUpperCase(), FileFormat.TIF); 
        FileFormat.PNG = new FileFormat(32, "PNG");
        FileFormat.mapIntToEnum.put(FileFormat.PNG.value(), FileFormat.PNG); 
        FileFormat.mapStringToEnum.put(FileFormat.PNG.m_str.toUpperCase(), FileFormat.PNG); 
        FileFormat.GIF = new FileFormat(33, "GIF");
        FileFormat.mapIntToEnum.put(FileFormat.GIF.value(), FileFormat.GIF); 
        FileFormat.mapStringToEnum.put(FileFormat.GIF.m_str.toUpperCase(), FileFormat.GIF); 
        FileFormat.EMF = new FileFormat(34, "EMF");
        FileFormat.mapIntToEnum.put(FileFormat.EMF.value(), FileFormat.EMF); 
        FileFormat.mapStringToEnum.put(FileFormat.EMF.m_str.toUpperCase(), FileFormat.EMF); 
        FileFormat.XML = new FileFormat(35, "XML");
        FileFormat.mapIntToEnum.put(FileFormat.XML.value(), FileFormat.XML); 
        FileFormat.mapStringToEnum.put(FileFormat.XML.m_str.toUpperCase(), FileFormat.XML); 
        FileFormat.JSON = new FileFormat(36, "JSON");
        FileFormat.mapIntToEnum.put(FileFormat.JSON.value(), FileFormat.JSON); 
        FileFormat.mapStringToEnum.put(FileFormat.JSON.m_str.toUpperCase(), FileFormat.JSON); 
        FileFormat.XPS = new FileFormat(37, "XPS");
        FileFormat.mapIntToEnum.put(FileFormat.XPS.value(), FileFormat.XPS); 
        FileFormat.mapStringToEnum.put(FileFormat.XPS.m_str.toUpperCase(), FileFormat.XPS); 
        FileFormat.DBF = new FileFormat(38, "DBF");
        FileFormat.mapIntToEnum.put(FileFormat.DBF.value(), FileFormat.DBF); 
        FileFormat.mapStringToEnum.put(FileFormat.DBF.m_str.toUpperCase(), FileFormat.DBF); 
        FileFormat.SQLIGHT = new FileFormat(39, "SQLIGHT");
        FileFormat.mapIntToEnum.put(FileFormat.SQLIGHT.value(), FileFormat.SQLIGHT); 
        FileFormat.mapStringToEnum.put(FileFormat.SQLIGHT.m_str.toUpperCase(), FileFormat.SQLIGHT); 
        FileFormat.m_Values = Array.from(FileFormat.mapIntToEnum.values);
        FileFormat.m_Keys = Array.from(FileFormat.mapIntToEnum.keys);
    }
}


FileFormat.static_constructor();

module.exports = FileFormat