"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.cast_de_nrw_schule_svws_core_types_statkue_Schulgliederung = exports.Schulgliederung = void 0;
const JavaObject_1 = require("../../../java/lang/JavaObject");
const HashMap_1 = require("../../../java/util/HashMap");
const Schulform_1 = require("../../../core/types/statkue/Schulform");
const JavaString_1 = require("../../../java/lang/JavaString");
const Arrays_1 = require("../../../java/util/Arrays");
const Vector_1 = require("../../../java/util/Vector");
class Schulgliederung 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 DEFAULT = new Schulgliederung("DEFAULT", 0, "***", false, Arrays_1.Arrays.asList("FW", "G", "GE", "GY", "H", "PS", "R", "SG", "SK", "SR", "V"), false, false, "Standard für diese Schulform", null, null, null, false, null, null);
    static A01 = new Schulgliederung("A01", 1, "A01", true, Arrays_1.Arrays.asList("BK", "SB"), false, false, "Fachklassen (BS; TZ)", "A", "01", 10, false, "BS", null);
    static A02 = new Schulgliederung("A02", 2, "A02", true, Arrays_1.Arrays.asList("BK", "SB"), false, false, "Fachklassen/Fachhochschulreife (BS/FHR; TZ)", "A", "02", 10, false, "BS", "FHR");
    static A03 = new Schulgliederung("A03", 3, "A03", true, Arrays_1.Arrays.asList("BK", "SB"), false, false, "Fachklassen/erweiterte Zusatzqualifikation (BS/ZQ; TZ)", "A", "03", 10, false, "BS", null);
    static A04 = new Schulgliederung("A04", 4, "A04", true, Arrays_1.Arrays.asList("BK", "SB"), false, false, "Fachklassen mit erweitertem Stützunterricht (BS/Stütz; TZ)", "A", "04", 10, false, "BS", null);
    static A05 = new Schulgliederung("A05", 5, "A05", true, Arrays_1.Arrays.asList("BK", "SB"), true, true, "Berufsorientierungsjahr (BV; VZ)", "A", "05", 20, true, "BV", null);
    static A06 = new Schulgliederung("A06", 6, "A06", true, Arrays_1.Arrays.asList("BK", "SB"), true, true, "Berufsgrundschuljahr (BG; VZ)", "A", "06", 30, true, "BG", null);
    static A07 = new Schulgliederung("A07", 7, "A07", true, Arrays_1.Arrays.asList("BK", "SB"), true, true, "Klassen für Schüler/innen ohne Ausbildungsverhältnis (BS 1j; TZ) bzw. Werkstattjahr (BS 1j;TZ)", "A", "07", 40, false, "BS", null);
    static A08 = new Schulgliederung("A08", 8, "A08", true, Arrays_1.Arrays.asList("BK", "SB"), true, true, "Vorpraktikum (VP)", "A", "08", 50, false, "VP", null);
    static A09 = new Schulgliederung("A09", 9, "A09", true, Arrays_1.Arrays.asList("BK", "SB"), true, true, "Klassen für Schüler/innen ohne Ausbildungsverhältnis (BS 1j; VZ)", "A", "09", 55, true, "BS", null);
    static A10 = new Schulgliederung("A10", 10, "A10", true, Arrays_1.Arrays.asList("BK", "SB"), true, false, "Berufsabschluss/mittlerer Schulabschluss (BKAZVO) (BAB/FOR; VZ)", "A", "10", 56, true, "BAB", "FOR");
    static A11 = new Schulgliederung("A11", 11, "A11", true, Arrays_1.Arrays.asList("BK", "SB"), true, false, "Berufsabschluss/Fachhochschulreife (BKAZVO) (BAB/FHR; VZ)", "A", "11", 56, true, "BAB", "FHR");
    static A12 = new Schulgliederung("A12", 12, "A12", true, Arrays_1.Arrays.asList("BK", "SB"), false, false, "Ausbildungsvorbereitung (BS 1j; VZ)", "A", "12", 57, true, "BS", null);
    static A13 = new Schulgliederung("A13", 13, "A13", true, Arrays_1.Arrays.asList("BK", "SB"), false, false, "Ausbildungsvorbereitung (BS 1j; TZ)", "A", "13", 58, false, "BS", null);
    static A14 = new Schulgliederung("A14", 14, "A14", true, Arrays_1.Arrays.asList("BK", "SB"), false, false, "Berufsabschluss (nach §50 BBiG/§40 HwO)/mittlerer Schulabschluss (BAB/FOR; VZ)", "A", "14", 59, true, "BAB", "FOR");
    static A15 = new Schulgliederung("A15", 15, "A15", true, Arrays_1.Arrays.asList("BK"), false, false, "Berufsabschluss (nach §50 BBiG/§40 HwO)/Fachhochschulreife BAB/FHR; VZ", "A", "15", 59, true, "BAB", "FHR");
    static A16 = new Schulgliederung("A16", 16, "A16", true, Arrays_1.Arrays.asList("BK", "SB"), false, false, "Fachklassen (nach §2 BKAZVO) BAB; VZ", "A", "16", 59, true, "BAB", null);
    static AB = new Schulgliederung("AB", 17, "AB", false, Arrays_1.Arrays.asList("FW", "S"), false, false, "Schule für Kranke: Allgemeinbildend", null, null, null, false, null, null);
    static B01 = new Schulgliederung("B01", 18, "B01", true, Arrays_1.Arrays.asList("BK", "SB"), true, true, "Berufsabschluss/Fachoberschulreife (BAB/FOR 2j; VZ)", "B", "01", 60, true, "BAB", "FOR");
    static B02 = new Schulgliederung("B02", 19, "B02", true, Arrays_1.Arrays.asList("BK", "SB"), true, true, "Berufsgrundbildung/Fachoberschulreife (BG/FOR 2j; VZ)", "B", "02", 70, true, "BG", "FOR");
    static B03 = new Schulgliederung("B03", 20, "B03", true, Arrays_1.Arrays.asList("BK", "SB"), true, true, "Berufsgrundbildung (für Schüler mit FOR) (BG 1j; VZ)", "B", "03", 80, true, "BG", null);
    static B04 = new Schulgliederung("B04", 21, "B04", true, Arrays_1.Arrays.asList("BK", "SB"), true, true, "Berufsabschluss/Fachoberschulreife (BAB/FOR; VZ)", "B", "04", 90, true, "BAB", "FOR");
    static B05 = new Schulgliederung("B05", 22, "B05", true, Arrays_1.Arrays.asList("BK", "SB"), true, true, "Berufsabschluss/Fachhochschulreife (BAB/FHR; VZ)", "B", "05", 90, true, "BAB", "FHR");
    static B06 = new Schulgliederung("B06", 23, "B06", true, Arrays_1.Arrays.asList("BK", "SB"), false, false, "Berufliche Kenntnisse/Hauptschulabschluss Kl. 10 (BK/HSA10; 1j. VZ)", "B", "06", 91, true, "BK", "HA10");
    static B07 = new Schulgliederung("B07", 24, "B07", true, Arrays_1.Arrays.asList("BK", "SB"), false, false, "Berufliche Kenntnisse/mittlerer Schulabschluss (BK/FOR; 1j. VZ)", "B", "07", 92, true, "BK", "FOR");
    static B08 = new Schulgliederung("B08", 25, "B08", true, Arrays_1.Arrays.asList("BK", "SB"), false, false, "Berufsabschl./Hauptschulab.Kl. 10 oder mittl. Schulab. (BAB/HSA10-FOR, 2j. VZ)", "B", "08", 93, true, "BAB", "HA10,FOR");
    static B09 = new Schulgliederung("B09", 26, "B09", true, Arrays_1.Arrays.asList("BK", "SB"), false, false, "Berufsabschl./Hauptschulab.Kl. 10 oder mittl. Schulab. (BAB/HSA10-FOR, 3j. TZ)", "B", "09", 93, false, "BAB", "HA10,FOR");
    static B10 = new Schulgliederung("B10", 27, "B10", true, Arrays_1.Arrays.asList("BK", "SB"), false, false, "Berufsabschl./Hauptschulab.Kl. 10 oder mittl. Schulab. (BAB/HSA10-FOR, 4j. TZ)", "B", "10", 93, false, "BAB", "HA10,FOR");
    static BT = new Schulgliederung("BT", 28, "BT", false, Arrays_1.Arrays.asList("FW", "S"), false, false, "Schule für Kranke: Berufsbildend (Teilzeit)", null, null, null, false, null, null);
    static BV = new Schulgliederung("BV", 29, "BV", false, Arrays_1.Arrays.asList("FW", "S"), false, false, "Schule für Kranke: Berufsbildend (Vollzeit)", null, null, null, true, null, null);
    static C01 = new Schulgliederung("C01", 30, "C01", true, Arrays_1.Arrays.asList("BK", "SB"), false, false, "Berufsabschluss/Fachhochschulreife (ohne Berufspraktikum) BAB/FHR 3j; VZ BFS", "C", "01", 100, true, "BAB", "FHR");
    static C02 = new Schulgliederung("C02", 31, "C02", true, Arrays_1.Arrays.asList("BK", "SB"), false, false, "Berufsabschluss f. Hochschulzugangsberechtigte (BAB 2j; VZ) BFS", "C", "02", 110, true, "BAB", null);
    static C03 = new Schulgliederung("C03", 32, "C03", true, Arrays_1.Arrays.asList("BK", "SB"), false, false, "Berufliche Kenntnisse/FHR (BK/FHR 2j; VZ) HBFS", "C", "03", 120, true, "BK", null);
    static C04 = new Schulgliederung("C04", 33, "C04", true, Arrays_1.Arrays.asList("BK", "SB"), true, true, "Berufliche Kenntnisse/Sonderform für Abiturienten (BK 1j; VZ) HBFS", "C", "04", 130, true, "BK", null);
    static C05 = new Schulgliederung("C05", 34, "C05", true, Arrays_1.Arrays.asList("BK", "SB"), false, false, "Fachoberschule Kl. 11 (BK/FHR 1j; TZ)", "C", "05", 140, false, "BK", "FHR");
    static C06 = new Schulgliederung("C06", 35, "C06", true, Arrays_1.Arrays.asList("BK", "SB"), false, false, "Fachoberschule Kl. 12S (BK/FHR 1j; VZ)", "C", "06", 140, true, "BK", "FHR");
    static C07 = new Schulgliederung("C07", 36, "C07", true, Arrays_1.Arrays.asList("BK", "SB"), false, false, "Fachoberschule Kl. 12B (BK/FHR 2j; TZ)", "C", "07", 140, false, "BK", "FHR");
    static C08 = new Schulgliederung("C08", 37, "C08", true, Arrays_1.Arrays.asList("BK", "SB"), false, false, "Fachoberschule Kl. 12B (BK/FHR 1j; VZ)", "C", "08", 140, true, "BK", "FHR");
    static C09 = new Schulgliederung("C09", 38, "C09", true, Arrays_1.Arrays.asList("BK", "SB"), true, true, "Berufspraktikum Erzieher/innen (Vollzeit) (BP/Erz 1j; VZ)", "C", "09", 150, true, "BP", null);
    static C10 = new Schulgliederung("C10", 39, "C10", true, Arrays_1.Arrays.asList("BK", "SB"), true, true, "Berufspraktikum Erzieher/innen (Teilzeit) (BP/Erz 2j; TZ)", "C", "10", 150, false, "BP", null);
    static C11 = new Schulgliederung("C11", 40, "C11", true, Arrays_1.Arrays.asList("BK", "SB"), false, false, "Fachoberschule Kl. 12B (BK/FHR 3j; TZ)", "C", "11", 141, false, "BK", "FHR");
    static C12 = new Schulgliederung("C12", 41, "C12", true, Arrays_1.Arrays.asList("BK", "SB"), false, false, "Berufsabschluss/Fachhochschulreife (mit  Berufspraktikum) BAB/FHR 3,5j; VZ", "C", "12", 145, true, "BAB", "FHR");
    static C13 = new Schulgliederung("C13", 42, "C13", true, Arrays_1.Arrays.asList("BK", "SB"), false, false, "Berufsabschluss/Fachhochschulreife (gestuft) (BAB/FHR 3j; VZ)", "C", "13", 146, true, "BAB", "FHR");
    static D01 = new Schulgliederung("D01", 43, "D01", true, Arrays_1.Arrays.asList("BK", "SB"), false, false, "Berufsabschluss/Allg. Hochschulreife (mit Berufspraktikum) (BAB/AHR 4j; VZ)", "D", "01", 160, true, "BAB", "AHR");
    static D02 = new Schulgliederung("D02", 44, "D02", true, Arrays_1.Arrays.asList("BK", "SB"), false, false, "Berufl. Kenntnisse/Allg. Hochschulreife (BK/AHR 3j; VZ)", "D", "02", 170, true, "BAB", "AHR");
    static D03 = new Schulgliederung("D03", 45, "D03", true, Arrays_1.Arrays.asList("BK", "SB"), true, true, "Berufspraktikum (Vollzeit) (BP 1j; VZ)", "D", "03", 180, true, "BP", null);
    static D04 = new Schulgliederung("D04", 46, "D04", true, Arrays_1.Arrays.asList("BK", "SB"), true, true, "Berufspraktikum Erzieher/innen (Teilzeit) (BP/Erz 2j; TZ)", "D", "04", 190, false, "BP", null);
    static D05 = new Schulgliederung("D05", 47, "D05", true, Arrays_1.Arrays.asList("BK", "SB"), false, false, "AHR (gem. § 2 Abs. 3 Anlage D) (AHR 1j; VZ) FOS13", "D", "05", 200, true, null, "AHR");
    static D06 = new Schulgliederung("D06", 48, "D06", true, Arrays_1.Arrays.asList("BK", "SB"), false, false, "AHR (gem. § 2 Abs. 3 Anlage D) (AHR 2j; TZ) FOS13", "D", "06", 200, true, null, "AHR");
    static E01 = new Schulgliederung("E01", 49, "E01", true, Arrays_1.Arrays.asList("BK"), false, false, "Fachschule Vollzeit (BW 2j; VZ)", "E", "01", 210, true, "BW", null);
    static E02 = new Schulgliederung("E02", 50, "E02", true, Arrays_1.Arrays.asList("BK", "SB"), false, false, "Fachschule Teilzeit (BW 4j; TZ)", "E", "02", 210, false, "BW", null);
    static E03 = new Schulgliederung("E03", 51, "E03", true, Arrays_1.Arrays.asList("BK"), false, false, "Fachschule (verkürzt) Vollzeit (BW 1j; VZ)", "E", "03", 220, true, "BW", null);
    static E04 = new Schulgliederung("E04", 52, "E04", true, Arrays_1.Arrays.asList("BK"), false, false, "Fachschule (verkürzt) Teilzeit (BW 2j; TZ)", "E", "04", 220, false, "BW", null);
    static E05 = new Schulgliederung("E05", 53, "E05", true, Arrays_1.Arrays.asList("BK"), false, false, "Fachschule für Sozialwesen (mit Berufspraktikum) (BAB 3j; VZ)", "E", "05", 230, true, "BAB", null);
    static E06 = new Schulgliederung("E06", 54, "E06", true, Arrays_1.Arrays.asList("BK", "SB"), true, true, "Fachschule für Sozialpädagogik / Heilerziehungspflege (Praxis) (BAB/FP 1j; VZ)", "E", "06", 240, true, "BAB", null);
    static E07 = new Schulgliederung("E07", 55, "E07", true, Arrays_1.Arrays.asList("BK"), false, false, "Fachschule für Sozialwesen (mit Berufspraktikum) (BAB 6j; TZ)", "E", "07", 230, false, "BAB", null);
    static E08 = new Schulgliederung("E08", 56, "E08", true, Arrays_1.Arrays.asList("BK", "SB"), true, true, "Fachschule für Sozialpädagogik / Heilerziehungspflege (Praxis) (BAB/FP 2j; TZ)", "E", "08", 240, false, "BAB", null);
    static E09 = new Schulgliederung("E09", 57, "E09", true, Arrays_1.Arrays.asList("BK", "SB"), true, true, "Fachschule (Sonderform) Vollzeit (BW 3j; VZ)", "E", "09", 250, true, "BW", null);
    static E10 = new Schulgliederung("E10", 58, "E10", true, Arrays_1.Arrays.asList("BK", "SB"), true, true, "Fachschule (Sonderform) Teilzeit (BW 6j; TZ)", "E", "10", 260, false, "BW", null);
    static E11 = new Schulgliederung("E11", 59, "E11", true, Arrays_1.Arrays.asList("BK", "SB"), true, true, "Berufspraktikum Erzieher/innen (FS/BP/Erz 1j; VZ)", "E", "11", 270, true, "BP", null);
    static E12 = new Schulgliederung("E12", 60, "E12", true, Arrays_1.Arrays.asList("BK", "SB"), true, true, "Berufspraktikum Erzieher/innen (FS/BP/Erz 2j; TZ)", "E", "12", 270, false, "BP", null);
    static E13 = new Schulgliederung("E13", 61, "E13", true, Arrays_1.Arrays.asList("BK"), false, false, "Fachschule Teilzeit (BW 3j; TZ)", "E", "13", 210, true, "BW", null);
    static ER = new Schulgliederung("ER", 62, "ER", false, Arrays_1.Arrays.asList("SK"), false, false, "kooperative Form: Erweiterungsebene", null, null, null, false, null, null);
    static EVB = new Schulgliederung("EVB", 63, "EVB", false, Arrays_1.Arrays.asList("G"), false, false, "Evangelische Bekenntnisschule", null, null, null, false, null, null);
    static G01 = new Schulgliederung("G01", 64, "G01", false, Arrays_1.Arrays.asList("GY"), false, false, "Aufbaugymnasium", null, null, null, false, null, null);
    static G02 = new Schulgliederung("G02", 65, "G02", false, Arrays_1.Arrays.asList("WB"), false, false, "Bildungsgang Abendgymnasium", null, null, null, false, null, null);
    static GGS = new Schulgliederung("GGS", 66, "GGS", false, Arrays_1.Arrays.asList("GE"), true, false, "Gemeinschaftsschule (auslaufend) integrierte Form", null, null, null, false, null, null);
    static GGY = new Schulgliederung("GGY", 67, "GGY", false, Arrays_1.Arrays.asList("GE"), true, false, "Gemeinschaftsschule (auslaufend) Gymnasialbildungsgang", null, null, null, false, null, null);
    static GMS = new Schulgliederung("GMS", 68, "GMS", false, Arrays_1.Arrays.asList("G"), false, false, "Gemeinschaftsschule", null, null, null, false, null, null);
    static GR = new Schulgliederung("GR", 69, "GR", false, Arrays_1.Arrays.asList("GE", "SK"), false, false, "kooperative Form: Grundebene", null, null, null, false, null, null);
    static GRH = new Schulgliederung("GRH", 70, "GRH", false, Arrays_1.Arrays.asList("GE"), true, false, "Gemeinschaftsschule auslaufend: teilintegrierte Form", null, null, null, false, null, null);
    static GS = new Schulgliederung("GS", 71, "GS", false, Arrays_1.Arrays.asList("GM"), false, false, "integrierte Form (Binnendifferenzierung)", null, null, null, false, null, null);
    static GY = new Schulgliederung("GY", 72, "GY", false, Arrays_1.Arrays.asList("GE", "GM", "SK"), false, false, "Bildungsgang Gymnasium", null, null, null, false, null, null);
    static GY8 = new Schulgliederung("GY8", 73, "GY8", false, Arrays_1.Arrays.asList("GE", "GY"), false, false, "Bildungsgang G8-Gymnasium", null, null, null, false, null, null);
    static GY9 = new Schulgliederung("GY9", 74, "GY9", false, Arrays_1.Arrays.asList("GE", "GY"), false, false, "Bildungsgang G9-Gymnasium", null, null, null, false, null, null);
    static H = new Schulgliederung("H", 75, "H", false, Arrays_1.Arrays.asList("GM", "R", "SK"), false, false, "Bildungsgang Hauptschule", null, "  ", null, false, null, null);
    static H01 = new Schulgliederung("H01", 76, "H01", false, Arrays_1.Arrays.asList("FW"), false, false, "Berufsgrundbildung (Jahrgang 07 bis 10)", "H", "01", 980, false, null, null);
    static H02 = new Schulgliederung("H02", 77, "H02", false, Arrays_1.Arrays.asList("FW"), false, false, "Berufsausbildung (Jahrgang 11 und 12)", "H", "02", 940, false, null, null);
    static K02 = new Schulgliederung("K02", 78, "K02", false, Arrays_1.Arrays.asList("FW", "WB"), false, false, "Bildungsgang Kolleg", null, null, null, false, null, null);
    static R = new Schulgliederung("R", 79, "R", false, Arrays_1.Arrays.asList("GM", "H", "SK"), false, false, "Bildungsgang Realschule", "R", "  ", null, false, null, null);
    static R00 = new Schulgliederung("R00", 80, "R00", false, Arrays_1.Arrays.asList("S"), false, false, "Realschule", "R", "00", null, false, null, null);
    static R01 = new Schulgliederung("R01", 81, "R01", false, Arrays_1.Arrays.asList("R"), false, false, "Aufbaurealschule", "R", "01", null, false, null, null);
    static R02 = new Schulgliederung("R02", 82, "R02", false, Arrays_1.Arrays.asList("WB"), false, false, "Bildungsgang Abendrealschule", "R", "02", null, false, null, null);
    static RH = new Schulgliederung("RH", 83, "RH", false, Arrays_1.Arrays.asList("GE", "GM", "SK"), false, false, "teilintegrierte Form", "R", "H", null, false, null, null);
    static RKB = new Schulgliederung("RKB", 84, "RKB", false, Arrays_1.Arrays.asList("G"), false, false, "Katholische  Bekenntnisschule", null, null, null, false, null, null);
    static SRH = new Schulgliederung("SRH", 85, "SRH", false, Arrays_1.Arrays.asList("GE"), true, false, "Sekundarschule, teilintegrierte Form (auslaufend)", "S", "RH", null, false, null, null);
    static SSI = new Schulgliederung("SSI", 86, "SSI", false, Arrays_1.Arrays.asList("GE"), true, false, "Sekundarschule, integrierte Form (auslaufend)", "S", "SI", null, false, null, null);
    static X01 = new Schulgliederung("X01", 87, "X01", true, Arrays_1.Arrays.asList("BK", "SB"), true, true, "Allgemeine Hochschulreife (ausgelaufen) (AHR 3j; VZ)", "X", "01", 280, true, null, "AHR");
    static X02 = new Schulgliederung("X02", 88, "X02", true, Arrays_1.Arrays.asList("BK", "SB"), true, true, "Fachhochschulreife (ausgelaufen) (FHR 2j; VZ)", "X", "02", 290, true, null, "FHR");
    static X03 = new Schulgliederung("X03", 89, "X03", true, Arrays_1.Arrays.asList("BK", "SB"), true, true, "Fachhochschulreife (ausgelaufen) (FHR 3j; TZ)", "X", "03", 300, false, null, "FHR");
    static X04 = new Schulgliederung("X04", 90, "X04", true, Arrays_1.Arrays.asList("BK", "SB"), true, true, "Berufspraktikum Fremdsprachenassistent (ausgelaufen) (BP/FAss 1j; TZ)", "X", "04", 310, false, "BP", null);
    static X05 = new Schulgliederung("X05", 91, "X05", true, Arrays_1.Arrays.asList("BK", "SB"), true, true, "Berufsabschluss/Assistent (ausgelaufen) (BAB/Ass 3j; TZ)", "X", "05", 320, false, "BAB", null);
    static X06 = new Schulgliederung("X06", 92, "X06", true, Arrays_1.Arrays.asList("BK", "SB"), true, true, "Berufsabschluss und Allgemeine Hochschulreife (ausgelaufen) (BAB/AHR 3j; VZ)", "X", "06", 330, true, "BAB", "AHR");
    static X07 = new Schulgliederung("X07", 93, "X07", true, Arrays_1.Arrays.asList("BK", "SB"), true, true, "Berufsabschluss und Fachoberschulreife (ausgelaufen) (BAB/FOR 3j; VZ)", "X", "07", 340, true, "BAB", "FOR");
    static X08 = new Schulgliederung("X08", 94, "X08", true, Arrays_1.Arrays.asList("BK", "SB"), true, true, "Berufsabschluss mit Zusatzqualifikation (ausgelaufen) (BAB/ZQ 3j; VZ)", "X", "08", 350, true, "BAB", null);
    static Y8 = new Schulgliederung("Y8", 95, "Y8", false, Arrays_1.Arrays.asList("GE"), false, false, "Lehrplan G8", null, null, null, false, null, null);
    static Z01 = new Schulgliederung("Z01", 96, "Z01", true, Arrays_1.Arrays.asList("BK", "SB"), false, false, "Kooperationsklasse Hauptschule (HS 2j; VZ)", "Z", "01", 370, true, null, null);
    static _map = new HashMap_1.HashMap();
    id;
    istBK;
    schulformenKuerzel;
    schulformen = null;
    istAuslaufend;
    istAusgelaufen;
    beschreibung;
    bkAnlage;
    bkTyp;
    bkIndex;
    istVZ;
    bkAbschlussBerufsbildend;
    bkAbschlussAllgemeinbildend;
    gueltigVon;
    gueltigBis;
    /**
     * Erzeugt eine neue Schulgliederung in der Aufzählung.
     *
     * @param id                            die eindeutige id der Schulgliederung
     * @param istBK                         gibt an, ob es sich um einen Bildungsgang am Berufskolleg handelt
     * @param schulformenKuerzel            die Kürzel der Schulformen, bei welchen die Schulgliederung vorkommt
     * @param istAuslaufend                 gibt an, ob es sich um eine auslaufende Schulgliederung oder einen ausgelaufenden Bildungsgang handelt
     * @param istAusgelaufen                gibt an, ob es sich um eine ausgelaufene Schulgliederung oder einen ausgelaufenen Bildungsgang handelt
     * @param beschreibung                  die textuelle Beschreibung der Schulgliederung bzw. des Bildungsganges
     * @param bkAnlage                      die Anlage, wenn es sich um einen Bildungsgang am Berufskolleg handelt
     * @param bkTyp                         der Typ der Anlage, wenn es sich um einen Bildungsgang am Berufskolleg handelt
     * @param bkIndex                       der Index für den Zugriff auf die Fachklassen am Berufskolleg. Dieser kann bei
     *                                      unterschiedlichen Gliederungen identisch sein.
     * @param istVZ                         gibt an, ob es sich um einen Bildungsgang in Vollzeit handelt oder nicht
     * @param bkAbschlussBerufsbildend      gibt den berufsbildenden Abschluss an, der in diesem Bildungsgang erreicht werden
     *                                      kann, wenn es sich um einen Bildungsgang am Berufskolleg handelt.
     * @param bkAbschlussAllgemeinbildend   gibt den allgemeinbildenden Abschluss an, der in diesem Bildungsgang erreicht
     *                                      werden kann, wenn es sich um einen Bildungsgang am Berufskolleg handelt.
     *                                      Die Angabe ggf. mehrere Abschlüsse beinhalten, wenn im Rahmen des Bildungsganges
     *                                      mehrere Abschlüsse möglich sind.
     */
    constructor(name, ordinal, id, istBK, schulformenKuerzel, istAuslaufend, istAusgelaufen, beschreibung, bkAnlage, bkTyp, bkIndex, istVZ, bkAbschlussBerufsbildend, bkAbschlussAllgemeinbildend) {
        super();
        this.__name = name;
        this.__ordinal = ordinal;
        Schulgliederung.all_values_by_ordinal.push(this);
        Schulgliederung.all_values_by_name.set(name, this);
        this.id = id;
        this.istBK = istBK;
        this.schulformenKuerzel = schulformenKuerzel;
        this.istAuslaufend = istAuslaufend;
        this.istAusgelaufen = istAusgelaufen;
        this.beschreibung = beschreibung;
        this.bkAnlage = bkAnlage;
        this.bkTyp = bkTyp;
        this.bkIndex = bkIndex;
        this.istVZ = istVZ;
        this.bkAbschlussBerufsbildend = bkAbschlussBerufsbildend;
        this.bkAbschlussAllgemeinbildend = bkAbschlussAllgemeinbildend;
        this.gueltigVon = null;
        this.gueltigBis = null;
    }
    /**
     * Gibt eine Map von den Kürzels der Schulgliederungen auf die zugehörigen Schulgliederungen
     * zurück. Sollte diese noch nicht initialisiert sein, so wird sie initielisiert.
     *
     * @return die Map von den Kürzels der Schulgliederungen auf die zugehörigen Schulgliederungen
     */
    static getMapSchulgliederungByKuerzel() {
        if (Schulgliederung._map.size() === 0)
            for (let s of Schulgliederung.values())
                Schulgliederung._map.put(s.id, s);
        return Schulgliederung._map;
    }
    /**
     * Liefert die Schulgliederung anhand des übergebenen Kürzels zurpck.
     *
     * @param kuerzel   das Kürzel der Schulgliederung
     *
     * @return die Schulgliederung oder null, falls das Kürzel ungültig ist
     */
    static getByKuerzel(kuerzel) {
        return Schulgliederung.getMapSchulgliederungByKuerzel().get(kuerzel);
    }
    /**
     * Liefert alle Schulformen zurück, bei welchen die Schulgliederung vorkommt.
     *
     * @return eine Liste der Schulformen
     */
    getSchulformen() {
        if (this.schulformen === null) {
            this.schulformen = new Vector_1.Vector();
            for (let i = 0; i < this.schulformenKuerzel.size(); i++) {
                let sfKuerzel = this.schulformenKuerzel.get(i);
                let schulform = Schulform_1.Schulform.getByKuerzel(sfKuerzel);
                if (schulform !== null)
                    this.schulformen.add(schulform);
            }
        }
        return this.schulformen;
    }
    /**
     * Liefert alle zulässigen Gliederungen für die angegeben Schulform.
     *
     * @param schulform   die Schulform
     *
     * @return die bei der Schulform zulässigen Gliederungen
     */
    static get(schulform) {
        let result = new Vector_1.Vector();
        if (schulform === null)
            return result;
        let gliederungen = Schulgliederung.values();
        for (let i = 0; i < gliederungen.length; i++) {
            let gliederung = gliederungen[i];
            if (gliederung.hasSchulform(schulform))
                result.add(gliederung);
        }
        return result;
    }
    /**
     * Prüft anhand des Schulform-Kürzels, ob die Schulform diese Gliederung
     * hat oder nicht.
     *
     * @param kuerzel   das Kürzel der Schulform
     *
     * @return true, falls die Gliederung bei der Schulform existiert und ansonsten false
     */
    hasSchulformByKuerzel(kuerzel) {
        if ((kuerzel === null) || JavaObject_1.JavaObject.equalsTranspiler("", (kuerzel)))
            return false;
        if (this.schulformenKuerzel !== null) {
            for (let i = 0; i < this.schulformenKuerzel.size(); i++) {
                let sfKuerzel = this.schulformenKuerzel.get(i);
                if (JavaObject_1.JavaObject.equalsTranspiler(sfKuerzel, (kuerzel)))
                    return true;
            }
        }
        return false;
    }
    /**
     * Prüft, ob die Schulform diese Gliederung hat oder nicht.
     *
     * @param schulform   die Schulform
     *
     * @return true, falls die Gliederung bei der Schulform existiert und ansonsten false
     */
    hasSchulform(schulform) {
        if (schulform === null)
            return false;
        if (this.schulformenKuerzel !== null) {
            for (let i = 0; i < this.schulformenKuerzel.size(); i++) {
                let sfKuerzel = this.schulformenKuerzel.get(i);
                if (JavaObject_1.JavaObject.equalsTranspiler(sfKuerzel, (schulform.kuerzel)))
                    return true;
            }
        }
        return false;
    }
    /**
     * Gibt zurück, ob es sich um einen 8-jährigen gymnasialen Bildungsgang
     * handelt oder nicht.
     *
     * @return true, falls es sich um einen 8-jährigen gymnasialen Bildungsgang
     *         handelt, sonst false
     */
    istG8() {
        return (this === Schulgliederung.GY8) || (this === Schulgliederung.Y8);
    }
    /**
     * Gibt die Standard-Gliederung der angegebenen Schulform zurück.
     *
     * @param sf        die Schulform
     *
     * @return die Schulgliederung, falls die Schulform gültig ist und ansonsten null
     */
    static getDefault(sf) {
        if (sf === null)
            return null;
        if ((sf === Schulform_1.Schulform.GY) || (sf === Schulform_1.Schulform.SK) || (sf === Schulform_1.Schulform.GM) || (sf === Schulform_1.Schulform.G) || (sf === Schulform_1.Schulform.S) || (sf === Schulform_1.Schulform.PS) || (sf === Schulform_1.Schulform.V) || (sf === Schulform_1.Schulform.FW) || (sf === Schulform_1.Schulform.H) || (sf === Schulform_1.Schulform.R) || (sf === Schulform_1.Schulform.GE) || (sf === Schulform_1.Schulform.SR) || (sf === Schulform_1.Schulform.SG))
            return Schulgliederung.DEFAULT;
        return null;
    }
    /**
     * Gibt die Gliederung der angegebenen Schulform mit dem übergegebenen Kürzel zurück.
     * Dabei setzt sich das zu prüfende Kürzel aus Anlage und Typ zusammen.
     *
     * @param sf        die Schulform
     * @param kuerzel   Anlage und Typ als String aneinandergehängt
     *
     * @return die Schulgliederung, falls die Parameter gültige Werte sind und ansonsten null
     */
    static getBySchulformAndKuerzel(sf, kuerzel) {
        if (sf === null)
            return null;
        if ((kuerzel === null) || JavaObject_1.JavaObject.equalsTranspiler("", (kuerzel)))
            return Schulgliederung.getDefault(sf);
        let gliederungen = Schulgliederung.get(sf);
        for (let i = 0; i < gliederungen.size(); i++) {
            let sg = gliederungen.get(i);
            if (JavaString_1.JavaString.equalsIgnoreCase((sg.id), kuerzel))
                return sg;
        }
        return null;
    }
    /**
     * 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 Schulgliederung))
            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.Schulgliederung'].includes(name);
    }
}
exports.Schulgliederung = Schulgliederung;
function cast_de_nrw_schule_svws_core_types_statkue_Schulgliederung(obj) {
    return obj;
}
exports.cast_de_nrw_schule_svws_core_types_statkue_Schulgliederung = cast_de_nrw_schule_svws_core_types_statkue_Schulgliederung;
//# sourceMappingURL=Schulgliederung.js.map