"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.cast_de_nrw_schule_svws_core_abschluss_gost_belegpruefung_Latinum = exports.Latinum = void 0;
const SprachendatenManager_1 = require("../../../../core/SprachendatenManager");
const GostHalbjahr_1 = require("../../../../core/types/gost/GostHalbjahr");
const GostBelegpruefung_1 = require("../../../../core/abschluss/gost/GostBelegpruefung");
const GostBelegungsfehler_1 = require("../../../../core/abschluss/gost/GostBelegungsfehler");
class Latinum extends GostBelegpruefung_1.GostBelegpruefung {
    latein = null;
    /**
     * Erstellt eine neue Belegprüfung in Bezug auf den Erwerb des Latinums.
     *
     * @param manager         der Daten-Manager für die Abiturdaten
     * @param pruefungs_art   die Art der durchzuführenden Prüfung (z.B. EF.1 oder GESAMT)
     */
    constructor(manager, pruefungs_art) {
        super(manager, pruefungs_art);
    }
    init() {
        this.latein = this.manager.getSprachbelegung("L");
    }
    pruefeEF1() {
        if (SprachendatenManager_1.SprachendatenManager.hatSprachbelegungInSekI(this.manager.getSprachendaten(), "L") && (!this.manager.pruefeBelegung(this.latein, GostHalbjahr_1.GostHalbjahr.EF1)))
            this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.L_10_INFO);
    }
    pruefeGesamt() {
        if (!SprachendatenManager_1.SprachendatenManager.hatSprachbelegungInSekI(this.manager.getSprachendaten(), "L")) {
            return;
        }
        if (SprachendatenManager_1.SprachendatenManager.hatSprachbelegungInSekIMitDauer(this.manager.getSprachendaten(), "L", 4)) {
            if (!this.manager.pruefeBelegung(this.latein, GostHalbjahr_1.GostHalbjahr.EF1, GostHalbjahr_1.GostHalbjahr.EF2)) {
                this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.L_10_INFO);
            }
            return;
        }
        if (SprachendatenManager_1.SprachendatenManager.hatSprachbelegungInSekIMitDauer(this.manager.getSprachendaten(), "L", 2)) {
            if (!this.manager.pruefeBelegung(this.latein, GostHalbjahr_1.GostHalbjahr.EF1, GostHalbjahr_1.GostHalbjahr.EF2, GostHalbjahr_1.GostHalbjahr.Q11, GostHalbjahr_1.GostHalbjahr.Q12, GostHalbjahr_1.GostHalbjahr.Q21, GostHalbjahr_1.GostHalbjahr.Q22))
                this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.L_11_INFO);
        }
    }
    isTranspiledInstanceOf(name) {
        return ['de.nrw.schule.svws.core.abschluss.gost.belegpruefung.Latinum', 'de.nrw.schule.svws.core.abschluss.gost.GostBelegpruefung'].includes(name);
    }
}
exports.Latinum = Latinum;
function cast_de_nrw_schule_svws_core_abschluss_gost_belegpruefung_Latinum(obj) {
    return obj;
}
exports.cast_de_nrw_schule_svws_core_abschluss_gost_belegpruefung_Latinum = cast_de_nrw_schule_svws_core_abschluss_gost_belegpruefung_Latinum;
//# sourceMappingURL=Latinum.js.map