/*
 * 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");
const XmlNode = require("./../../../unisharp/XmlNode");

class MyXmlNodeType {

    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 MyXmlNodeType) 
            return val;
        if(typeof val === 'string' || val instanceof String) {
            val = val.toUpperCase();
            if(MyXmlNodeType.mapStringToEnum.containsKey(val))
                return MyXmlNodeType.mapStringToEnum.get(val);
            return null;
        }
        if(MyXmlNodeType.mapIntToEnum.containsKey(val))
            return MyXmlNodeType.mapIntToEnum.get(val);
        let it = new MyXmlNodeType(val, val.toString());
        MyXmlNodeType.mapIntToEnum.put(val, it);
        MyXmlNodeType.mapStringToEnum.put(val.toString(), it);
        return it;
    }
    static isDefined(val) {
        return MyXmlNodeType.m_Keys.indexOf(val) >= 0;
    }
    static getValues() {
        return MyXmlNodeType.m_Values;
    }
    static static_constructor() {
        MyXmlNodeType.mapIntToEnum = new Hashtable();
        MyXmlNodeType.mapStringToEnum = new Hashtable();
        MyXmlNodeType.NONE = new MyXmlNodeType(0, "NONE");
        MyXmlNodeType.mapIntToEnum.put(MyXmlNodeType.NONE.value(), MyXmlNodeType.NONE); 
        MyXmlNodeType.mapStringToEnum.put(MyXmlNodeType.NONE.m_str.toUpperCase(), MyXmlNodeType.NONE); 
        MyXmlNodeType.ELEMENT = new MyXmlNodeType(1, "ELEMENT");
        MyXmlNodeType.mapIntToEnum.put(MyXmlNodeType.ELEMENT.value(), MyXmlNodeType.ELEMENT); 
        MyXmlNodeType.mapStringToEnum.put(MyXmlNodeType.ELEMENT.m_str.toUpperCase(), MyXmlNodeType.ELEMENT); 
        MyXmlNodeType.ATTRIBUTE = new MyXmlNodeType(2, "ATTRIBUTE");
        MyXmlNodeType.mapIntToEnum.put(MyXmlNodeType.ATTRIBUTE.value(), MyXmlNodeType.ATTRIBUTE); 
        MyXmlNodeType.mapStringToEnum.put(MyXmlNodeType.ATTRIBUTE.m_str.toUpperCase(), MyXmlNodeType.ATTRIBUTE); 
        MyXmlNodeType.TEXT = new MyXmlNodeType(3, "TEXT");
        MyXmlNodeType.mapIntToEnum.put(MyXmlNodeType.TEXT.value(), MyXmlNodeType.TEXT); 
        MyXmlNodeType.mapStringToEnum.put(MyXmlNodeType.TEXT.m_str.toUpperCase(), MyXmlNodeType.TEXT); 
        MyXmlNodeType.CDATA = new MyXmlNodeType(4, "CDATA");
        MyXmlNodeType.mapIntToEnum.put(MyXmlNodeType.CDATA.value(), MyXmlNodeType.CDATA); 
        MyXmlNodeType.mapStringToEnum.put(MyXmlNodeType.CDATA.m_str.toUpperCase(), MyXmlNodeType.CDATA); 
        MyXmlNodeType.ENTITYREFERENCE = new MyXmlNodeType(5, "ENTITYREFERENCE");
        MyXmlNodeType.mapIntToEnum.put(MyXmlNodeType.ENTITYREFERENCE.value(), MyXmlNodeType.ENTITYREFERENCE); 
        MyXmlNodeType.mapStringToEnum.put(MyXmlNodeType.ENTITYREFERENCE.m_str.toUpperCase(), MyXmlNodeType.ENTITYREFERENCE); 
        MyXmlNodeType.ENTITY = new MyXmlNodeType(6, "ENTITY");
        MyXmlNodeType.mapIntToEnum.put(MyXmlNodeType.ENTITY.value(), MyXmlNodeType.ENTITY); 
        MyXmlNodeType.mapStringToEnum.put(MyXmlNodeType.ENTITY.m_str.toUpperCase(), MyXmlNodeType.ENTITY); 
        MyXmlNodeType.PROCESSINGINSTRUCTION = new MyXmlNodeType(7, "PROCESSINGINSTRUCTION");
        MyXmlNodeType.mapIntToEnum.put(MyXmlNodeType.PROCESSINGINSTRUCTION.value(), MyXmlNodeType.PROCESSINGINSTRUCTION); 
        MyXmlNodeType.mapStringToEnum.put(MyXmlNodeType.PROCESSINGINSTRUCTION.m_str.toUpperCase(), MyXmlNodeType.PROCESSINGINSTRUCTION); 
        MyXmlNodeType.COMMENT = new MyXmlNodeType(8, "COMMENT");
        MyXmlNodeType.mapIntToEnum.put(MyXmlNodeType.COMMENT.value(), MyXmlNodeType.COMMENT); 
        MyXmlNodeType.mapStringToEnum.put(MyXmlNodeType.COMMENT.m_str.toUpperCase(), MyXmlNodeType.COMMENT); 
        MyXmlNodeType.DOCUMENT = new MyXmlNodeType(9, "DOCUMENT");
        MyXmlNodeType.mapIntToEnum.put(MyXmlNodeType.DOCUMENT.value(), MyXmlNodeType.DOCUMENT); 
        MyXmlNodeType.mapStringToEnum.put(MyXmlNodeType.DOCUMENT.m_str.toUpperCase(), MyXmlNodeType.DOCUMENT); 
        MyXmlNodeType.DOCUMENTTYPE = new MyXmlNodeType(10, "DOCUMENTTYPE");
        MyXmlNodeType.mapIntToEnum.put(MyXmlNodeType.DOCUMENTTYPE.value(), MyXmlNodeType.DOCUMENTTYPE); 
        MyXmlNodeType.mapStringToEnum.put(MyXmlNodeType.DOCUMENTTYPE.m_str.toUpperCase(), MyXmlNodeType.DOCUMENTTYPE); 
        MyXmlNodeType.DOCUMENTFRAGMENT = new MyXmlNodeType(11, "DOCUMENTFRAGMENT");
        MyXmlNodeType.mapIntToEnum.put(MyXmlNodeType.DOCUMENTFRAGMENT.value(), MyXmlNodeType.DOCUMENTFRAGMENT); 
        MyXmlNodeType.mapStringToEnum.put(MyXmlNodeType.DOCUMENTFRAGMENT.m_str.toUpperCase(), MyXmlNodeType.DOCUMENTFRAGMENT); 
        MyXmlNodeType.NOTATION = new MyXmlNodeType(12, "NOTATION");
        MyXmlNodeType.mapIntToEnum.put(MyXmlNodeType.NOTATION.value(), MyXmlNodeType.NOTATION); 
        MyXmlNodeType.mapStringToEnum.put(MyXmlNodeType.NOTATION.m_str.toUpperCase(), MyXmlNodeType.NOTATION); 
        MyXmlNodeType.WHITESPACE = new MyXmlNodeType(13, "WHITESPACE");
        MyXmlNodeType.mapIntToEnum.put(MyXmlNodeType.WHITESPACE.value(), MyXmlNodeType.WHITESPACE); 
        MyXmlNodeType.mapStringToEnum.put(MyXmlNodeType.WHITESPACE.m_str.toUpperCase(), MyXmlNodeType.WHITESPACE); 
        MyXmlNodeType.SIGNIFICANTWHITESPACE = new MyXmlNodeType(14, "SIGNIFICANTWHITESPACE");
        MyXmlNodeType.mapIntToEnum.put(MyXmlNodeType.SIGNIFICANTWHITESPACE.value(), MyXmlNodeType.SIGNIFICANTWHITESPACE); 
        MyXmlNodeType.mapStringToEnum.put(MyXmlNodeType.SIGNIFICANTWHITESPACE.m_str.toUpperCase(), MyXmlNodeType.SIGNIFICANTWHITESPACE); 
        MyXmlNodeType.ENDELEMENT = new MyXmlNodeType(15, "ENDELEMENT");
        MyXmlNodeType.mapIntToEnum.put(MyXmlNodeType.ENDELEMENT.value(), MyXmlNodeType.ENDELEMENT); 
        MyXmlNodeType.mapStringToEnum.put(MyXmlNodeType.ENDELEMENT.m_str.toUpperCase(), MyXmlNodeType.ENDELEMENT); 
        MyXmlNodeType.ENDENTITY = new MyXmlNodeType(16, "ENDENTITY");
        MyXmlNodeType.mapIntToEnum.put(MyXmlNodeType.ENDENTITY.value(), MyXmlNodeType.ENDENTITY); 
        MyXmlNodeType.mapStringToEnum.put(MyXmlNodeType.ENDENTITY.m_str.toUpperCase(), MyXmlNodeType.ENDENTITY); 
        MyXmlNodeType.XMLDECLARATION = new MyXmlNodeType(17, "XMLDECLARATION");
        MyXmlNodeType.mapIntToEnum.put(MyXmlNodeType.XMLDECLARATION.value(), MyXmlNodeType.XMLDECLARATION); 
        MyXmlNodeType.mapStringToEnum.put(MyXmlNodeType.XMLDECLARATION.m_str.toUpperCase(), MyXmlNodeType.XMLDECLARATION); 
        MyXmlNodeType.m_Values = Array.from(MyXmlNodeType.mapIntToEnum.values);
        MyXmlNodeType.m_Keys = Array.from(MyXmlNodeType.mapIntToEnum.keys);
    }
}


MyXmlNodeType.static_constructor();

module.exports = MyXmlNodeType