"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.cast_de_nrw_schule_svws_core_types_statkue_LehrerLehramt = exports.LehrerLehramt = void 0;
const JavaObject_1 = require("../../../java/lang/JavaObject");
const HashMap_1 = require("../../../java/util/HashMap");
const LehrerKatalogLehramtEintrag_1 = require("../../../core/data/lehrer/LehrerKatalogLehramtEintrag");
class LehrerLehramt extends JavaObject_1.JavaObject {
    /** the name of the enumeration value */
    __name;
    /** the ordinal value for the enumeration value */
    __ordinal;
    /** an array containing all values of this enumeration */
    static all_values_by_ordinal = [];
    /** an array containing all values of this enumeration indexed by their name*/
    static all_values_by_name = new Map();
    static ID_00 = new LehrerLehramt("ID_00", 0, [new LehrerKatalogLehramtEintrag_1.LehrerKatalogLehramtEintrag(82, "00", "für die Primarstufe", null, null)]);
    static ID_01 = new LehrerLehramt("ID_01", 1, [new LehrerKatalogLehramtEintrag_1.LehrerKatalogLehramtEintrag(83, "01", "an der Grund- und Hauptschule (Stufenschwerpunkt I)", null, null)]);
    static ID_02 = new LehrerLehramt("ID_02", 2, [new LehrerKatalogLehramtEintrag_1.LehrerKatalogLehramtEintrag(84, "02", "an der Grund- und Hauptschule (Stufenschwerpunkt II)", null, null)]);
    static ID_03 = new LehrerLehramt("ID_03", 3, [new LehrerKatalogLehramtEintrag_1.LehrerKatalogLehramtEintrag(85, "03", "an der Volksschule", null, null)]);
    static ID_09 = new LehrerLehramt("ID_09", 4, [new LehrerKatalogLehramtEintrag_1.LehrerKatalogLehramtEintrag(86, "09", "für Sonderpädagogik", null, null)]);
    static ID_10 = new LehrerLehramt("ID_10", 5, [new LehrerKatalogLehramtEintrag_1.LehrerKatalogLehramtEintrag(87, "10", "an Sonderschulen", null, null)]);
    static ID_11 = new LehrerLehramt("ID_11", 6, [new LehrerKatalogLehramtEintrag_1.LehrerKatalogLehramtEintrag(88, "11", "für Sonderpädagogik und die Primarstufe", null, null)]);
    static ID_12 = new LehrerLehramt("ID_12", 7, [new LehrerKatalogLehramtEintrag_1.LehrerKatalogLehramtEintrag(89, "12", "für Sonderpädagogik und die Sekundarstufe I", null, null)]);
    static ID_14 = new LehrerLehramt("ID_14", 8, [new LehrerKatalogLehramtEintrag_1.LehrerKatalogLehramtEintrag(90, "14", "Sonderpädagogik LPO 03", null, null)]);
    static ID_15 = new LehrerLehramt("ID_15", 9, [new LehrerKatalogLehramtEintrag_1.LehrerKatalogLehramtEintrag(91, "15", "Grund-, Haupt- u. Realschule u. entspr. Jahrg.stufen d. Gesamtschule -Schwerp.- Grundschule", null, null)]);
    static ID_16 = new LehrerLehramt("ID_16", 10, [new LehrerKatalogLehramtEintrag_1.LehrerKatalogLehramtEintrag(92, "16", "Grund-, Haupt- u. Realschule u. entspr. Jahrg.stufen d. Gesamtsch. -Schwerp.- H/R/Gesamtsch.", null, null)]);
    static ID_19 = new LehrerLehramt("ID_19", 11, [new LehrerKatalogLehramtEintrag_1.LehrerKatalogLehramtEintrag(93, "19", "für die Sekundarstufe I und die Primarstufe", null, null)]);
    static ID_20 = new LehrerLehramt("ID_20", 12, [new LehrerKatalogLehramtEintrag_1.LehrerKatalogLehramtEintrag(94, "20", "für die Sekundarstufe I", null, null)]);
    static ID_21 = new LehrerLehramt("ID_21", 13, [new LehrerKatalogLehramtEintrag_1.LehrerKatalogLehramtEintrag(95, "21", "an der Realschule", null, null)]);
    static ID_24 = new LehrerLehramt("ID_24", 14, [new LehrerKatalogLehramtEintrag_1.LehrerKatalogLehramtEintrag(96, "24", "für die Sekundarstufe II und die Sekundarstufe I", null, null)]);
    static ID_25 = new LehrerLehramt("ID_25", 15, [new LehrerKatalogLehramtEintrag_1.LehrerKatalogLehramtEintrag(97, "25", "am Gymnasium", null, null)]);
    static ID_27 = new LehrerLehramt("ID_27", 16, [new LehrerKatalogLehramtEintrag_1.LehrerKatalogLehramtEintrag(98, "27", "Gymnasium und Gesamtschule", null, null)]);
    static ID_29 = new LehrerLehramt("ID_29", 17, [new LehrerKatalogLehramtEintrag_1.LehrerKatalogLehramtEintrag(99, "29", "für die Sekundarstufe II (ohne berufliche Fachrichtung)", null, null)]);
    static ID_30 = new LehrerLehramt("ID_30", 18, [new LehrerKatalogLehramtEintrag_1.LehrerKatalogLehramtEintrag(100, "30", "an berufsbildenden Schulen (alle Lehrer mit 2. Staatsprüfung oder erworbener Anstellungsfähigkeit)", null, null)]);
    static ID_31 = new LehrerLehramt("ID_31", 19, [new LehrerKatalogLehramtEintrag_1.LehrerKatalogLehramtEintrag(101, "31", "für die Sekundarstufe II und Sonderpädagogik", null, null)]);
    static ID_32 = new LehrerLehramt("ID_32", 20, [new LehrerKatalogLehramtEintrag_1.LehrerKatalogLehramtEintrag(102, "32", "für die Sekundarstufe II (mit beruflicher Fachrichtung)", null, null)]);
    static ID_35 = new LehrerLehramt("ID_35", 21, [new LehrerKatalogLehramtEintrag_1.LehrerKatalogLehramtEintrag(103, "35", "Berufskolleg", null, null)]);
    static ID_40 = new LehrerLehramt("ID_40", 22, [new LehrerKatalogLehramtEintrag_1.LehrerKatalogLehramtEintrag(104, "40", "Fachhochschullehrer", null, null)]);
    static ID_50 = new LehrerLehramt("ID_50", 23, [new LehrerKatalogLehramtEintrag_1.LehrerKatalogLehramtEintrag(105, "50", "Fachlehrer an Sonderschulen", null, null)]);
    static ID_51 = new LehrerLehramt("ID_51", 24, [new LehrerKatalogLehramtEintrag_1.LehrerKatalogLehramtEintrag(106, "51", "Religionslehrer/Geistlicher/Katechet", null, null)]);
    static ID_52 = new LehrerLehramt("ID_52", 25, [new LehrerKatalogLehramtEintrag_1.LehrerKatalogLehramtEintrag(107, "52", "Fachlehrer mit der Befähigung für die Laufbahn des Werkstattlehrers", null, null)]);
    static ID_53 = new LehrerLehramt("ID_53", 26, [new LehrerKatalogLehramtEintrag_1.LehrerKatalogLehramtEintrag(108, "53", "Fachlehrer", null, null)]);
    static ID_54 = new LehrerLehramt("ID_54", 27, [new LehrerKatalogLehramtEintrag_1.LehrerKatalogLehramtEintrag(109, "54", "Fachlehrer für Kurzschrift und Maschinenschreiben", null, null)]);
    static ID_55 = new LehrerLehramt("ID_55", 28, [new LehrerKatalogLehramtEintrag_1.LehrerKatalogLehramtEintrag(110, "55", "Fachlehrer mit der Befähigung für die Laufbahn des technischen Lehrers an beruflichen Schulen", null, null)]);
    static ID_56 = new LehrerLehramt("ID_56", 29, [new LehrerKatalogLehramtEintrag_1.LehrerKatalogLehramtEintrag(111, "56", "Schulkindergärtnerin", null, null)]);
    static ID_57 = new LehrerLehramt("ID_57", 30, [new LehrerKatalogLehramtEintrag_1.LehrerKatalogLehramtEintrag(112, "57", "ohne sonderpäd. Zusatzausbildung:Sozialarbeiter, Sozialpädagoge, Jugendleiter", null, null)]);
    static ID_58 = new LehrerLehramt("ID_58", 31, [new LehrerKatalogLehramtEintrag_1.LehrerKatalogLehramtEintrag(113, "58", "ohne sonderpäd. Zusatzausbildung:Erzieher, Kindergärtnerin u.a.", null, null)]);
    static ID_59 = new LehrerLehramt("ID_59", 32, [new LehrerKatalogLehramtEintrag_1.LehrerKatalogLehramtEintrag(114, "59", "ohne sonderpäd. Zusatzausbildung:Sonstige pädagogische Unterrichtshilfe", null, null)]);
    static ID_60 = new LehrerLehramt("ID_60", 33, [new LehrerKatalogLehramtEintrag_1.LehrerKatalogLehramtEintrag(115, "60", "mit sonderpäd. Zusatzausbildung:Sozialarbeiter, Sozialpädagoge, Jugendleiter", null, null)]);
    static ID_61 = new LehrerLehramt("ID_61", 34, [new LehrerKatalogLehramtEintrag_1.LehrerKatalogLehramtEintrag(116, "61", "mit sonderpäd. Zusatzausbildung:Erzieher, Kindergärtnerin u.a.", null, null)]);
    static ID_62 = new LehrerLehramt("ID_62", 35, [new LehrerKatalogLehramtEintrag_1.LehrerKatalogLehramtEintrag(117, "62", "mit sonderpäd. Zusatzausbildung:Sonstige pädagogische Unterrichtshilfe", null, null)]);
    static ID_96 = new LehrerLehramt("ID_96", 36, [new LehrerKatalogLehramtEintrag_1.LehrerKatalogLehramtEintrag(118, "96", "Lehrer, der eine Qualifikation erworben hat, die der 1. Staatsprüfung entspricht (z.B. Diplom, sofern nicht Schlüssel 98)", null, null)]);
    static ID_97 = new LehrerLehramt("ID_97", 37, [new LehrerKatalogLehramtEintrag_1.LehrerKatalogLehramtEintrag(119, "97", "Lehrer, der außerhalb des Geltungsbereichs des Grundgesetzes seine Qualifikation erworben hat", null, null)]);
    static ID_98 = new LehrerLehramt("ID_98", 38, [new LehrerKatalogLehramtEintrag_1.LehrerKatalogLehramtEintrag(120, "98", "Lehramtsanwärter/Studienreferendar", null, null)]);
    static ID_99 = new LehrerLehramt("ID_99", 39, [new LehrerKatalogLehramtEintrag_1.LehrerKatalogLehramtEintrag(121, "99", "Sonstiger Lehrer (Gymnastik-, Werk-, Hauswirtschaftslehrer, Übungsleiter)", null, null)]);
    static ID_70 = new LehrerLehramt("ID_70", 40, [new LehrerKatalogLehramtEintrag_1.LehrerKatalogLehramtEintrag(122, "70", "Schulverwaltungsassistent", null, null)]);
    static ID_04 = new LehrerLehramt("ID_04", 41, [new LehrerKatalogLehramtEintrag_1.LehrerKatalogLehramtEintrag(123, "04", "Grundschule", null, null)]);
    static ID_17 = new LehrerLehramt("ID_17", 42, [new LehrerKatalogLehramtEintrag_1.LehrerKatalogLehramtEintrag(124, "17", "Haupt-, Real- und  Gesamtschule", null, null)]);
    static ID_08 = new LehrerLehramt("ID_08", 43, [new LehrerKatalogLehramtEintrag_1.LehrerKatalogLehramtEintrag(125, "08", "Sonderpädagogische Förderung", null, null)]);
    static ID_18 = new LehrerLehramt("ID_18", 44, [new LehrerKatalogLehramtEintrag_1.LehrerKatalogLehramtEintrag(126, "18", "Haupt-, Real-, Sekundar- und Gesamtschule", null, null)]);
    static ID_49 = new LehrerLehramt("ID_49", 45, [new LehrerKatalogLehramtEintrag_1.LehrerKatalogLehramtEintrag(127, "49", "Berufskolleg mit einer beruflichen Fachrichtung (§ 59 LVO)", null, null)]);
    static VERSION = 1;
    daten;
    historie;
    static _aemterByID = new HashMap_1.HashMap();
    static _aemterByKuerzel = new HashMap_1.HashMap();
    /**
     * Erzeugt ein neues Lehramt in der Aufzählung.
     *
     * @param historie   die Historie des Lehramtes, welches ein Array von {@link LehrerKatalogLehramtEintrag} ist
     */
    constructor(name, ordinal, historie) {
        super();
        this.__name = name;
        this.__ordinal = ordinal;
        LehrerLehramt.all_values_by_ordinal.push(this);
        LehrerLehramt.all_values_by_name.set(name, this);
        this.historie = historie;
        this.daten = historie[historie.length - 1];
    }
    /**
     * Gibt eine Map von den IDs der Lehrämter auf die zugehörigen Lehrämter
     * zurück. Sollte diese noch nicht initialisiert sein, so wird sie initielisiert.
     *
     * @return die Map von den IDs der Lehrämter auf die zugehörigen Lehrämter
     */
    static getMapLehraemterByID() {
        if (LehrerLehramt._aemterByID.size() === 0)
            for (let l of LehrerLehramt.values())
                LehrerLehramt._aemterByID.put(l.daten.id, l);
        return LehrerLehramt._aemterByID;
    }
    /**
     * Gibt eine Map von den Kürzeln der Lehrämter auf die zugehörigen Lehrämter
     * zurück. Sollte diese noch nicht initialisiert sein, so wird sie initielisiert.
     *
     * @return die Map von den Kürzeln der Lehrämter auf die zugehörigen Lehrämter
     */
    static getMapLehraemterByKuerzel() {
        if (LehrerLehramt._aemterByKuerzel.size() === 0)
            for (let l of LehrerLehramt.values())
                LehrerLehramt._aemterByKuerzel.put(l.daten.kuerzel, l);
        return LehrerLehramt._aemterByKuerzel;
    }
    /**
     * Gibt das Lehramt anhand der angegebenen ID zurück.
     *
     * @param id   die ID des Lehramts
     *
     * @return das Lehramt oder null, falls die ID ungültig ist
     */
    static getByID(id) {
        return LehrerLehramt.getMapLehraemterByID().get(id);
    }
    /**
     * Gibt das Lehramt anhand des angegebenen Kürzels zurück.
     *
     * @param kuerzel   das Kürzel des Lehramts
     *
     * @return das Lehramt oder null, falls das Kürzel ungültig ist
     */
    static getByKuerzel(kuerzel) {
        return LehrerLehramt.getMapLehraemterByKuerzel().get(kuerzel);
    }
    /**
     * Returns the name of this enumeration value.
     *
     * @returns the name
     */
    name() {
        return this.__name;
    }
    /**
     * Returns the ordinal value of this enumeration value.
     *
     * @returns the ordinal value
     */
    ordinal() {
        return this.__ordinal;
    }
    /**
     * Returns the name of this enumeration value.
     *
     * @returns the name
     */
    toString() {
        return this.__name;
    }
    /**
     * Returns true if this and the other enumeration values are equal.
     *
     * @param other   the other enumeration value
     *
     * @returns true if they are equal and false otherwise
     */
    equals(other) {
        if (!(other instanceof LehrerLehramt))
            return false;
        return this === other;
    }
    /**
     * Returns the ordinal value as hashcode, since the ordinal value is unique.
     *
     * @returns the ordinal value as hashcode
     */
    hashCode() {
        return this.__ordinal;
    }
    /**
     * Compares this enumeration value with the other enumeration value by their ordinal value.
     *
     * @param other   the other enumeration value
     *
     * @returns a negative, zero or postive value as this enumeration value is less than, equal to
     *          or greater than the other enumeration value
     */
    compareTo(other) {
        return this.__ordinal - other.__ordinal;
    }
    /**
     * Returns an array with enumeration values.
     *
     * @returns the array with enumeration values
     */
    static values() {
        return [...this.all_values_by_ordinal];
    }
    /**
     * Returns the enumeration value with the specified name.
     *
     * @param name   the name of the enumeration value
     *
     * @returns the enumeration values or null
     */
    static valueOf(name) {
        let tmp = this.all_values_by_name.get(name);
        return (!tmp) ? null : tmp;
    }
    isTranspiledInstanceOf(name) {
        return ['de.nrw.schule.svws.core.types.statkue.LehrerLehramt'].includes(name);
    }
}
exports.LehrerLehramt = LehrerLehramt;
function cast_de_nrw_schule_svws_core_types_statkue_LehrerLehramt(obj) {
    return obj;
}
exports.cast_de_nrw_schule_svws_core_types_statkue_LehrerLehramt = cast_de_nrw_schule_svws_core_types_statkue_LehrerLehramt;
//# sourceMappingURL=LehrerLehramt.js.map