/*
 * SDK Pullenti Lingvo, 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#.NET project. 
 * The latest version of the code is available on the site www.pullenti.ru
 */

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

class PartTokenItemType {

    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 PartTokenItemType) 
            return val;
        if(typeof val === 'string' || val instanceof String) {
            val = val.toUpperCase();
            if(PartTokenItemType.mapStringToEnum.containsKey(val))
                return PartTokenItemType.mapStringToEnum.get(val);
            return null;
        }
        if(PartTokenItemType.mapIntToEnum.containsKey(val))
            return PartTokenItemType.mapIntToEnum.get(val);
        let it = new PartTokenItemType(val, val.toString());
        PartTokenItemType.mapIntToEnum.put(val, it);
        PartTokenItemType.mapStringToEnum.put(val.toString(), it);
        return it;
    }
    static isDefined(val) {
        return PartTokenItemType.m_Keys.indexOf(val) >= 0;
    }
    static getValues() {
        return PartTokenItemType.m_Values;
    }
    static static_constructor() {
        PartTokenItemType.mapIntToEnum = new Hashtable();
        PartTokenItemType.mapStringToEnum = new Hashtable();
        PartTokenItemType.UNDEFINED = new PartTokenItemType(0, "UNDEFINED");
        PartTokenItemType.mapIntToEnum.put(PartTokenItemType.UNDEFINED.value(), PartTokenItemType.UNDEFINED); 
        PartTokenItemType.mapStringToEnum.put(PartTokenItemType.UNDEFINED.m_str.toUpperCase(), PartTokenItemType.UNDEFINED); 
        PartTokenItemType.PREFIX = new PartTokenItemType(1, "PREFIX");
        PartTokenItemType.mapIntToEnum.put(PartTokenItemType.PREFIX.value(), PartTokenItemType.PREFIX); 
        PartTokenItemType.mapStringToEnum.put(PartTokenItemType.PREFIX.m_str.toUpperCase(), PartTokenItemType.PREFIX); 
        PartTokenItemType.DOCPART = new PartTokenItemType(2, "DOCPART");
        PartTokenItemType.mapIntToEnum.put(PartTokenItemType.DOCPART.value(), PartTokenItemType.DOCPART); 
        PartTokenItemType.mapStringToEnum.put(PartTokenItemType.DOCPART.m_str.toUpperCase(), PartTokenItemType.DOCPART); 
        PartTokenItemType.SUBPROGRAM = new PartTokenItemType(3, "SUBPROGRAM");
        PartTokenItemType.mapIntToEnum.put(PartTokenItemType.SUBPROGRAM.value(), PartTokenItemType.SUBPROGRAM); 
        PartTokenItemType.mapStringToEnum.put(PartTokenItemType.SUBPROGRAM.m_str.toUpperCase(), PartTokenItemType.SUBPROGRAM); 
        PartTokenItemType.APPENDIX = new PartTokenItemType(4, "APPENDIX");
        PartTokenItemType.mapIntToEnum.put(PartTokenItemType.APPENDIX.value(), PartTokenItemType.APPENDIX); 
        PartTokenItemType.mapStringToEnum.put(PartTokenItemType.APPENDIX.m_str.toUpperCase(), PartTokenItemType.APPENDIX); 
        PartTokenItemType.APPENDIX2 = new PartTokenItemType(5, "APPENDIX2");
        PartTokenItemType.mapIntToEnum.put(PartTokenItemType.APPENDIX2.value(), PartTokenItemType.APPENDIX2); 
        PartTokenItemType.mapStringToEnum.put(PartTokenItemType.APPENDIX2.m_str.toUpperCase(), PartTokenItemType.APPENDIX2); 
        PartTokenItemType.SECTION = new PartTokenItemType(6, "SECTION");
        PartTokenItemType.mapIntToEnum.put(PartTokenItemType.SECTION.value(), PartTokenItemType.SECTION); 
        PartTokenItemType.mapStringToEnum.put(PartTokenItemType.SECTION.m_str.toUpperCase(), PartTokenItemType.SECTION); 
        PartTokenItemType.SUBSECTION = new PartTokenItemType(7, "SUBSECTION");
        PartTokenItemType.mapIntToEnum.put(PartTokenItemType.SUBSECTION.value(), PartTokenItemType.SUBSECTION); 
        PartTokenItemType.mapStringToEnum.put(PartTokenItemType.SUBSECTION.m_str.toUpperCase(), PartTokenItemType.SUBSECTION); 
        PartTokenItemType.CHAPTER = new PartTokenItemType(8, "CHAPTER");
        PartTokenItemType.mapIntToEnum.put(PartTokenItemType.CHAPTER.value(), PartTokenItemType.CHAPTER); 
        PartTokenItemType.mapStringToEnum.put(PartTokenItemType.CHAPTER.m_str.toUpperCase(), PartTokenItemType.CHAPTER); 
        PartTokenItemType.CLAUSE = new PartTokenItemType(9, "CLAUSE");
        PartTokenItemType.mapIntToEnum.put(PartTokenItemType.CLAUSE.value(), PartTokenItemType.CLAUSE); 
        PartTokenItemType.mapStringToEnum.put(PartTokenItemType.CLAUSE.m_str.toUpperCase(), PartTokenItemType.CLAUSE); 
        PartTokenItemType.PART = new PartTokenItemType(10, "PART");
        PartTokenItemType.mapIntToEnum.put(PartTokenItemType.PART.value(), PartTokenItemType.PART); 
        PartTokenItemType.mapStringToEnum.put(PartTokenItemType.PART.m_str.toUpperCase(), PartTokenItemType.PART); 
        PartTokenItemType.PARAGRAPH = new PartTokenItemType(11, "PARAGRAPH");
        PartTokenItemType.mapIntToEnum.put(PartTokenItemType.PARAGRAPH.value(), PartTokenItemType.PARAGRAPH); 
        PartTokenItemType.mapStringToEnum.put(PartTokenItemType.PARAGRAPH.m_str.toUpperCase(), PartTokenItemType.PARAGRAPH); 
        PartTokenItemType.SUBPARAGRAPH = new PartTokenItemType(12, "SUBPARAGRAPH");
        PartTokenItemType.mapIntToEnum.put(PartTokenItemType.SUBPARAGRAPH.value(), PartTokenItemType.SUBPARAGRAPH); 
        PartTokenItemType.mapStringToEnum.put(PartTokenItemType.SUBPARAGRAPH.m_str.toUpperCase(), PartTokenItemType.SUBPARAGRAPH); 
        PartTokenItemType.ITEM = new PartTokenItemType(13, "ITEM");
        PartTokenItemType.mapIntToEnum.put(PartTokenItemType.ITEM.value(), PartTokenItemType.ITEM); 
        PartTokenItemType.mapStringToEnum.put(PartTokenItemType.ITEM.m_str.toUpperCase(), PartTokenItemType.ITEM); 
        PartTokenItemType.SUBITEM = new PartTokenItemType(14, "SUBITEM");
        PartTokenItemType.mapIntToEnum.put(PartTokenItemType.SUBITEM.value(), PartTokenItemType.SUBITEM); 
        PartTokenItemType.mapStringToEnum.put(PartTokenItemType.SUBITEM.m_str.toUpperCase(), PartTokenItemType.SUBITEM); 
        PartTokenItemType.INDENTION = new PartTokenItemType(15, "INDENTION");
        PartTokenItemType.mapIntToEnum.put(PartTokenItemType.INDENTION.value(), PartTokenItemType.INDENTION); 
        PartTokenItemType.mapStringToEnum.put(PartTokenItemType.INDENTION.m_str.toUpperCase(), PartTokenItemType.INDENTION); 
        PartTokenItemType.SUBINDENTION = new PartTokenItemType(16, "SUBINDENTION");
        PartTokenItemType.mapIntToEnum.put(PartTokenItemType.SUBINDENTION.value(), PartTokenItemType.SUBINDENTION); 
        PartTokenItemType.mapStringToEnum.put(PartTokenItemType.SUBINDENTION.m_str.toUpperCase(), PartTokenItemType.SUBINDENTION); 
        PartTokenItemType.PREAMBLE = new PartTokenItemType(17, "PREAMBLE");
        PartTokenItemType.mapIntToEnum.put(PartTokenItemType.PREAMBLE.value(), PartTokenItemType.PREAMBLE); 
        PartTokenItemType.mapStringToEnum.put(PartTokenItemType.PREAMBLE.m_str.toUpperCase(), PartTokenItemType.PREAMBLE); 
        PartTokenItemType.NOTICE = new PartTokenItemType(18, "NOTICE");
        PartTokenItemType.mapIntToEnum.put(PartTokenItemType.NOTICE.value(), PartTokenItemType.NOTICE); 
        PartTokenItemType.mapStringToEnum.put(PartTokenItemType.NOTICE.m_str.toUpperCase(), PartTokenItemType.NOTICE); 
        PartTokenItemType.FOOTNOTE = new PartTokenItemType(19, "FOOTNOTE");
        PartTokenItemType.mapIntToEnum.put(PartTokenItemType.FOOTNOTE.value(), PartTokenItemType.FOOTNOTE); 
        PartTokenItemType.mapStringToEnum.put(PartTokenItemType.FOOTNOTE.m_str.toUpperCase(), PartTokenItemType.FOOTNOTE); 
        PartTokenItemType.FORMULA = new PartTokenItemType(20, "FORMULA");
        PartTokenItemType.mapIntToEnum.put(PartTokenItemType.FORMULA.value(), PartTokenItemType.FORMULA); 
        PartTokenItemType.mapStringToEnum.put(PartTokenItemType.FORMULA.m_str.toUpperCase(), PartTokenItemType.FORMULA); 
        PartTokenItemType.FORM = new PartTokenItemType(21, "FORM");
        PartTokenItemType.mapIntToEnum.put(PartTokenItemType.FORM.value(), PartTokenItemType.FORM); 
        PartTokenItemType.mapStringToEnum.put(PartTokenItemType.FORM.m_str.toUpperCase(), PartTokenItemType.FORM); 
        PartTokenItemType.TABLE = new PartTokenItemType(22, "TABLE");
        PartTokenItemType.mapIntToEnum.put(PartTokenItemType.TABLE.value(), PartTokenItemType.TABLE); 
        PartTokenItemType.mapStringToEnum.put(PartTokenItemType.TABLE.m_str.toUpperCase(), PartTokenItemType.TABLE); 
        PartTokenItemType.TABLECOLUMN = new PartTokenItemType(23, "TABLECOLUMN");
        PartTokenItemType.mapIntToEnum.put(PartTokenItemType.TABLECOLUMN.value(), PartTokenItemType.TABLECOLUMN); 
        PartTokenItemType.mapStringToEnum.put(PartTokenItemType.TABLECOLUMN.m_str.toUpperCase(), PartTokenItemType.TABLECOLUMN); 
        PartTokenItemType.TABLEROW = new PartTokenItemType(24, "TABLEROW");
        PartTokenItemType.mapIntToEnum.put(PartTokenItemType.TABLEROW.value(), PartTokenItemType.TABLEROW); 
        PartTokenItemType.mapStringToEnum.put(PartTokenItemType.TABLEROW.m_str.toUpperCase(), PartTokenItemType.TABLEROW); 
        PartTokenItemType.TABLEITEM = new PartTokenItemType(25, "TABLEITEM");
        PartTokenItemType.mapIntToEnum.put(PartTokenItemType.TABLEITEM.value(), PartTokenItemType.TABLEITEM); 
        PartTokenItemType.mapStringToEnum.put(PartTokenItemType.TABLEITEM.m_str.toUpperCase(), PartTokenItemType.TABLEITEM); 
        PartTokenItemType.TABLESUBITEM = new PartTokenItemType(26, "TABLESUBITEM");
        PartTokenItemType.mapIntToEnum.put(PartTokenItemType.TABLESUBITEM.value(), PartTokenItemType.TABLESUBITEM); 
        PartTokenItemType.mapStringToEnum.put(PartTokenItemType.TABLESUBITEM.m_str.toUpperCase(), PartTokenItemType.TABLESUBITEM); 
        PartTokenItemType.LIST = new PartTokenItemType(27, "LIST");
        PartTokenItemType.mapIntToEnum.put(PartTokenItemType.LIST.value(), PartTokenItemType.LIST); 
        PartTokenItemType.mapStringToEnum.put(PartTokenItemType.LIST.m_str.toUpperCase(), PartTokenItemType.LIST); 
        PartTokenItemType.SENTENCE = new PartTokenItemType(28, "SENTENCE");
        PartTokenItemType.mapIntToEnum.put(PartTokenItemType.SENTENCE.value(), PartTokenItemType.SENTENCE); 
        PartTokenItemType.mapStringToEnum.put(PartTokenItemType.SENTENCE.m_str.toUpperCase(), PartTokenItemType.SENTENCE); 
        PartTokenItemType.PAGE = new PartTokenItemType(29, "PAGE");
        PartTokenItemType.mapIntToEnum.put(PartTokenItemType.PAGE.value(), PartTokenItemType.PAGE); 
        PartTokenItemType.mapStringToEnum.put(PartTokenItemType.PAGE.m_str.toUpperCase(), PartTokenItemType.PAGE); 
        PartTokenItemType.ADDAGREE = new PartTokenItemType(30, "ADDAGREE");
        PartTokenItemType.mapIntToEnum.put(PartTokenItemType.ADDAGREE.value(), PartTokenItemType.ADDAGREE); 
        PartTokenItemType.mapStringToEnum.put(PartTokenItemType.ADDAGREE.m_str.toUpperCase(), PartTokenItemType.ADDAGREE); 
        PartTokenItemType.NAME = new PartTokenItemType(31, "NAME");
        PartTokenItemType.mapIntToEnum.put(PartTokenItemType.NAME.value(), PartTokenItemType.NAME); 
        PartTokenItemType.mapStringToEnum.put(PartTokenItemType.NAME.m_str.toUpperCase(), PartTokenItemType.NAME); 
        PartTokenItemType.FREETEXT = new PartTokenItemType(32, "FREETEXT");
        PartTokenItemType.mapIntToEnum.put(PartTokenItemType.FREETEXT.value(), PartTokenItemType.FREETEXT); 
        PartTokenItemType.mapStringToEnum.put(PartTokenItemType.FREETEXT.m_str.toUpperCase(), PartTokenItemType.FREETEXT); 
        PartTokenItemType.m_Values = Array.from(PartTokenItemType.mapIntToEnum.values);
        PartTokenItemType.m_Keys = Array.from(PartTokenItemType.mapIntToEnum.keys);
    }
}


PartTokenItemType.static_constructor();

module.exports = PartTokenItemType