"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.cast_de_nrw_schule_svws_core_types_SprachBelegungSekI = exports.SprachBelegungSekI = void 0;
const JavaObject_1 = require("../../java/lang/JavaObject");
const JavaInteger_1 = require("../../java/lang/JavaInteger");
const JavaString_1 = require("../../java/lang/JavaString");
class SprachBelegungSekI extends JavaObject_1.JavaObject {
    static NICHT_BELEGT = new SprachBelegungSekI(0);
    static MIND_2_JAHRE = new SprachBelegungSekI(2);
    static MIND_4_JAHRE = new SprachBelegungSekI(4);
    static AB_JAHRGANG_5 = new SprachBelegungSekI(6);
    dauer;
    /**
     * Erstellt einen neuen enum-Wert mit der angegebenen Dauer der Sprachbelegung.
     *
     * @param dauer   die Dauer der Sprachbelegung in der Sek I
     */
    constructor(dauer) {
        super();
        this.dauer = dauer;
    }
    /**
     * Ermittelt die Spachbelegung in der Sek I anhand des übergebenen Jahrgangs.
     * WICHTIG: Sollte ein Schüler sich im G8-Bildungsgang bewegen, so wird die Dauer
     * mit 6 Jahren hier nicht korrekt zugeordnet.
     *
     * @param ASDJahrgang der Jahrgang in welchem mit der Sprache begonnen wurde
     *
     * @return die Sprachbelegung in der Sek I
     */
    static getByASDJahrgang(ASDJahrgang) {
        if (ASDJahrgang === null)
            return SprachBelegungSekI.NICHT_BELEGT;
        if (JavaString_1.JavaString.compareTo(ASDJahrgang, "05") <= 0)
            return SprachBelegungSekI.AB_JAHRGANG_5;
        if (JavaString_1.JavaString.compareTo(ASDJahrgang, "07") <= 0)
            return SprachBelegungSekI.MIND_4_JAHRE;
        if (JavaString_1.JavaString.compareTo(ASDJahrgang, "09") <= 0)
            return SprachBelegungSekI.MIND_2_JAHRE;
        return SprachBelegungSekI.NICHT_BELEGT;
    }
    /**
     * Ermittelt die Spachbelegung in der Sek I anhand der übergebenen Dauer der Belegung in der Sek I.
     * WICHTIG: Sollte ein Schüler sich im G8-Bildungsgang bewegen, so wird die Dauer
     * mit 6 Jahren hier nicht korrekt zugeordnet.
     *
     * @param dauer   die Dauer in vollen Jahren bei der Sprachbelegung in der Sek I
     *
     * @return die Sprachbelegung in der Sek I
     */
    static getByDauer(dauer) {
        if (dauer <= 0)
            return SprachBelegungSekI.NICHT_BELEGT;
        if (dauer <= 3)
            return SprachBelegungSekI.MIND_2_JAHRE;
        if (dauer <= 4)
            return SprachBelegungSekI.MIND_4_JAHRE;
        return SprachBelegungSekI.AB_JAHRGANG_5;
    }
    compareTo(other) {
        if (other === null)
            return 1;
        return JavaInteger_1.JavaInteger.compare(this.dauer, other.dauer);
    }
    isTranspiledInstanceOf(name) {
        return ['java.lang.Comparable', 'de.nrw.schule.svws.core.types.SprachBelegungSekI'].includes(name);
    }
}
exports.SprachBelegungSekI = SprachBelegungSekI;
function cast_de_nrw_schule_svws_core_types_SprachBelegungSekI(obj) {
    return obj;
}
exports.cast_de_nrw_schule_svws_core_types_SprachBelegungSekI = cast_de_nrw_schule_svws_core_types_SprachBelegungSekI;
//# sourceMappingURL=SprachBelegungSekI.js.map