/*
 * 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");

// Defines known values for the <see cref="HostSystemID"/> property.
class HostSystemID {

    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 HostSystemID) 
            return val;
        if(typeof val === 'string' || val instanceof String) {
            val = val.toUpperCase();
            if(HostSystemID.mapStringToEnum.containsKey(val))
                return HostSystemID.mapStringToEnum.get(val);
            return null;
        }
        if(HostSystemID.mapIntToEnum.containsKey(val))
            return HostSystemID.mapIntToEnum.get(val);
        let it = new HostSystemID(val, val.toString());
        HostSystemID.mapIntToEnum.put(val, it);
        HostSystemID.mapStringToEnum.put(val.toString(), it);
        return it;
    }
    static isDefined(val) {
        return HostSystemID.m_Keys.indexOf(val) >= 0;
    }
    static getValues() {
        return HostSystemID.m_Values;
    }
    static static_constructor() {
        HostSystemID.mapIntToEnum = new Hashtable();
        HostSystemID.mapStringToEnum = new Hashtable();
        HostSystemID.MSDOS = new HostSystemID(0, "MSDOS");
        HostSystemID.mapIntToEnum.put(HostSystemID.MSDOS.value(), HostSystemID.MSDOS); 
        HostSystemID.mapStringToEnum.put(HostSystemID.MSDOS.m_str.toUpperCase(), HostSystemID.MSDOS); 
        HostSystemID.AMIGA = new HostSystemID(1, "AMIGA");
        HostSystemID.mapIntToEnum.put(HostSystemID.AMIGA.value(), HostSystemID.AMIGA); 
        HostSystemID.mapStringToEnum.put(HostSystemID.AMIGA.m_str.toUpperCase(), HostSystemID.AMIGA); 
        HostSystemID.OPENVMS = new HostSystemID(2, "OPENVMS");
        HostSystemID.mapIntToEnum.put(HostSystemID.OPENVMS.value(), HostSystemID.OPENVMS); 
        HostSystemID.mapStringToEnum.put(HostSystemID.OPENVMS.m_str.toUpperCase(), HostSystemID.OPENVMS); 
        HostSystemID.UNIX = new HostSystemID(3, "UNIX");
        HostSystemID.mapIntToEnum.put(HostSystemID.UNIX.value(), HostSystemID.UNIX); 
        HostSystemID.mapStringToEnum.put(HostSystemID.UNIX.m_str.toUpperCase(), HostSystemID.UNIX); 
        HostSystemID.VMCMS = new HostSystemID(4, "VMCMS");
        HostSystemID.mapIntToEnum.put(HostSystemID.VMCMS.value(), HostSystemID.VMCMS); 
        HostSystemID.mapStringToEnum.put(HostSystemID.VMCMS.m_str.toUpperCase(), HostSystemID.VMCMS); 
        HostSystemID.ATARIST = new HostSystemID(5, "ATARIST");
        HostSystemID.mapIntToEnum.put(HostSystemID.ATARIST.value(), HostSystemID.ATARIST); 
        HostSystemID.mapStringToEnum.put(HostSystemID.ATARIST.m_str.toUpperCase(), HostSystemID.ATARIST); 
        HostSystemID.OS2 = new HostSystemID(6, "OS2");
        HostSystemID.mapIntToEnum.put(HostSystemID.OS2.value(), HostSystemID.OS2); 
        HostSystemID.mapStringToEnum.put(HostSystemID.OS2.m_str.toUpperCase(), HostSystemID.OS2); 
        HostSystemID.MACINTOSH = new HostSystemID(7, "MACINTOSH");
        HostSystemID.mapIntToEnum.put(HostSystemID.MACINTOSH.value(), HostSystemID.MACINTOSH); 
        HostSystemID.mapStringToEnum.put(HostSystemID.MACINTOSH.m_str.toUpperCase(), HostSystemID.MACINTOSH); 
        HostSystemID.ZSYSTEM = new HostSystemID(8, "ZSYSTEM");
        HostSystemID.mapIntToEnum.put(HostSystemID.ZSYSTEM.value(), HostSystemID.ZSYSTEM); 
        HostSystemID.mapStringToEnum.put(HostSystemID.ZSYSTEM.m_str.toUpperCase(), HostSystemID.ZSYSTEM); 
        HostSystemID.CPM = new HostSystemID(9, "CPM");
        HostSystemID.mapIntToEnum.put(HostSystemID.CPM.value(), HostSystemID.CPM); 
        HostSystemID.mapStringToEnum.put(HostSystemID.CPM.m_str.toUpperCase(), HostSystemID.CPM); 
        HostSystemID.WINDOWSNT = new HostSystemID(10, "WINDOWSNT");
        HostSystemID.mapIntToEnum.put(HostSystemID.WINDOWSNT.value(), HostSystemID.WINDOWSNT); 
        HostSystemID.mapStringToEnum.put(HostSystemID.WINDOWSNT.m_str.toUpperCase(), HostSystemID.WINDOWSNT); 
        HostSystemID.MVS = new HostSystemID(11, "MVS");
        HostSystemID.mapIntToEnum.put(HostSystemID.MVS.value(), HostSystemID.MVS); 
        HostSystemID.mapStringToEnum.put(HostSystemID.MVS.m_str.toUpperCase(), HostSystemID.MVS); 
        HostSystemID.VSE = new HostSystemID(12, "VSE");
        HostSystemID.mapIntToEnum.put(HostSystemID.VSE.value(), HostSystemID.VSE); 
        HostSystemID.mapStringToEnum.put(HostSystemID.VSE.m_str.toUpperCase(), HostSystemID.VSE); 
        HostSystemID.ACORNRISC = new HostSystemID(13, "ACORNRISC");
        HostSystemID.mapIntToEnum.put(HostSystemID.ACORNRISC.value(), HostSystemID.ACORNRISC); 
        HostSystemID.mapStringToEnum.put(HostSystemID.ACORNRISC.m_str.toUpperCase(), HostSystemID.ACORNRISC); 
        HostSystemID.VFAT = new HostSystemID(14, "VFAT");
        HostSystemID.mapIntToEnum.put(HostSystemID.VFAT.value(), HostSystemID.VFAT); 
        HostSystemID.mapStringToEnum.put(HostSystemID.VFAT.m_str.toUpperCase(), HostSystemID.VFAT); 
        HostSystemID.ALTERNATEMVS = new HostSystemID(15, "ALTERNATEMVS");
        HostSystemID.mapIntToEnum.put(HostSystemID.ALTERNATEMVS.value(), HostSystemID.ALTERNATEMVS); 
        HostSystemID.mapStringToEnum.put(HostSystemID.ALTERNATEMVS.m_str.toUpperCase(), HostSystemID.ALTERNATEMVS); 
        HostSystemID.BEOS = new HostSystemID(16, "BEOS");
        HostSystemID.mapIntToEnum.put(HostSystemID.BEOS.value(), HostSystemID.BEOS); 
        HostSystemID.mapStringToEnum.put(HostSystemID.BEOS.m_str.toUpperCase(), HostSystemID.BEOS); 
        HostSystemID.TANDEM = new HostSystemID(17, "TANDEM");
        HostSystemID.mapIntToEnum.put(HostSystemID.TANDEM.value(), HostSystemID.TANDEM); 
        HostSystemID.mapStringToEnum.put(HostSystemID.TANDEM.m_str.toUpperCase(), HostSystemID.TANDEM); 
        HostSystemID.OS400 = new HostSystemID(18, "OS400");
        HostSystemID.mapIntToEnum.put(HostSystemID.OS400.value(), HostSystemID.OS400); 
        HostSystemID.mapStringToEnum.put(HostSystemID.OS400.m_str.toUpperCase(), HostSystemID.OS400); 
        HostSystemID.OSX = new HostSystemID(19, "OSX");
        HostSystemID.mapIntToEnum.put(HostSystemID.OSX.value(), HostSystemID.OSX); 
        HostSystemID.mapStringToEnum.put(HostSystemID.OSX.m_str.toUpperCase(), HostSystemID.OSX); 
        HostSystemID.WINZIPAES = new HostSystemID(99, "WINZIPAES");
        HostSystemID.mapIntToEnum.put(HostSystemID.WINZIPAES.value(), HostSystemID.WINZIPAES); 
        HostSystemID.mapStringToEnum.put(HostSystemID.WINZIPAES.m_str.toUpperCase(), HostSystemID.WINZIPAES); 
        HostSystemID.m_Values = Array.from(HostSystemID.mapIntToEnum.values);
        HostSystemID.m_Keys = Array.from(HostSystemID.mapIntToEnum.keys);
    }
}


HostSystemID.static_constructor();

module.exports = HostSystemID