"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.cast_de_nrw_schule_svws_core_data_gost_GostFach = exports.GostFach = void 0;
const JavaObject_1 = require("../../../java/lang/JavaObject");
class GostFach extends JavaObject_1.JavaObject {
    id = -1;
    kuerzel = "";
    kuerzelAnzeige = null;
    bezeichnung = null;
    sortierung = 32000;
    istFremdsprache = false;
    istFremdSpracheNeuEinsetzend = false;
    biliSprache = null;
    istMoeglichAbiLK = false;
    istMoeglichAbiGK = false;
    istMoeglichEF1 = false;
    istMoeglichEF2 = false;
    istMoeglichQ11 = false;
    istMoeglichQ12 = false;
    istMoeglichQ21 = false;
    istMoeglichQ22 = false;
    wochenstundenEF1 = 3;
    wochenstundenEF2 = 3;
    wochenstundenQualifikationsphase = 3;
    mussSchriftlichEF1 = false;
    mussSchriftlichEF2 = false;
    projektKursLeitfach1ID = null;
    projektKursLeitfach1Kuerzel = null;
    projektKursLeitfach2ID = null;
    projektKursLeitfach2Kuerzel = null;
    constructor() {
        super();
    }
    isTranspiledInstanceOf(name) {
        return ['de.nrw.schule.svws.core.data.gost.GostFach'].includes(name);
    }
    static transpilerFromJSON(json) {
        const obj = JSON.parse(json);
        const result = new GostFach();
        if (typeof obj.id === "undefined")
            throw new Error('invalid json format, missing attribute id');
        result.id = obj.id;
        if (typeof obj.kuerzel === "undefined")
            throw new Error('invalid json format, missing attribute kuerzel');
        result.kuerzel = obj.kuerzel;
        result.kuerzelAnzeige = typeof obj.kuerzelAnzeige === "undefined" ? null : obj.kuerzelAnzeige;
        result.bezeichnung = typeof obj.bezeichnung === "undefined" ? null : obj.bezeichnung;
        if (typeof obj.sortierung === "undefined")
            throw new Error('invalid json format, missing attribute sortierung');
        result.sortierung = obj.sortierung;
        if (typeof obj.istFremdsprache === "undefined")
            throw new Error('invalid json format, missing attribute istFremdsprache');
        result.istFremdsprache = obj.istFremdsprache;
        if (typeof obj.istFremdSpracheNeuEinsetzend === "undefined")
            throw new Error('invalid json format, missing attribute istFremdSpracheNeuEinsetzend');
        result.istFremdSpracheNeuEinsetzend = obj.istFremdSpracheNeuEinsetzend;
        result.biliSprache = typeof obj.biliSprache === "undefined" ? null : obj.biliSprache;
        if (typeof obj.istMoeglichAbiLK === "undefined")
            throw new Error('invalid json format, missing attribute istMoeglichAbiLK');
        result.istMoeglichAbiLK = obj.istMoeglichAbiLK;
        if (typeof obj.istMoeglichAbiGK === "undefined")
            throw new Error('invalid json format, missing attribute istMoeglichAbiGK');
        result.istMoeglichAbiGK = obj.istMoeglichAbiGK;
        if (typeof obj.istMoeglichEF1 === "undefined")
            throw new Error('invalid json format, missing attribute istMoeglichEF1');
        result.istMoeglichEF1 = obj.istMoeglichEF1;
        if (typeof obj.istMoeglichEF2 === "undefined")
            throw new Error('invalid json format, missing attribute istMoeglichEF2');
        result.istMoeglichEF2 = obj.istMoeglichEF2;
        if (typeof obj.istMoeglichQ11 === "undefined")
            throw new Error('invalid json format, missing attribute istMoeglichQ11');
        result.istMoeglichQ11 = obj.istMoeglichQ11;
        if (typeof obj.istMoeglichQ12 === "undefined")
            throw new Error('invalid json format, missing attribute istMoeglichQ12');
        result.istMoeglichQ12 = obj.istMoeglichQ12;
        if (typeof obj.istMoeglichQ21 === "undefined")
            throw new Error('invalid json format, missing attribute istMoeglichQ21');
        result.istMoeglichQ21 = obj.istMoeglichQ21;
        if (typeof obj.istMoeglichQ22 === "undefined")
            throw new Error('invalid json format, missing attribute istMoeglichQ22');
        result.istMoeglichQ22 = obj.istMoeglichQ22;
        if (typeof obj.wochenstundenEF1 === "undefined")
            throw new Error('invalid json format, missing attribute wochenstundenEF1');
        result.wochenstundenEF1 = obj.wochenstundenEF1;
        if (typeof obj.wochenstundenEF2 === "undefined")
            throw new Error('invalid json format, missing attribute wochenstundenEF2');
        result.wochenstundenEF2 = obj.wochenstundenEF2;
        if (typeof obj.wochenstundenQualifikationsphase === "undefined")
            throw new Error('invalid json format, missing attribute wochenstundenQualifikationsphase');
        result.wochenstundenQualifikationsphase = obj.wochenstundenQualifikationsphase;
        if (typeof obj.mussSchriftlichEF1 === "undefined")
            throw new Error('invalid json format, missing attribute mussSchriftlichEF1');
        result.mussSchriftlichEF1 = obj.mussSchriftlichEF1;
        if (typeof obj.mussSchriftlichEF2 === "undefined")
            throw new Error('invalid json format, missing attribute mussSchriftlichEF2');
        result.mussSchriftlichEF2 = obj.mussSchriftlichEF2;
        result.projektKursLeitfach1ID = typeof obj.projektKursLeitfach1ID === "undefined" ? null : obj.projektKursLeitfach1ID;
        result.projektKursLeitfach1Kuerzel = typeof obj.projektKursLeitfach1Kuerzel === "undefined" ? null : obj.projektKursLeitfach1Kuerzel;
        result.projektKursLeitfach2ID = typeof obj.projektKursLeitfach2ID === "undefined" ? null : obj.projektKursLeitfach2ID;
        result.projektKursLeitfach2Kuerzel = typeof obj.projektKursLeitfach2Kuerzel === "undefined" ? null : obj.projektKursLeitfach2Kuerzel;
        return result;
    }
    static transpilerToJSON(obj) {
        let result = '{';
        result += '"id" : ' + obj.id + ',';
        result += '"kuerzel" : ' + '"' + obj.kuerzel.valueOf() + '"' + ',';
        result += '"kuerzelAnzeige" : ' + ((!obj.kuerzelAnzeige) ? 'null' : '"' + obj.kuerzelAnzeige.valueOf() + '"') + ',';
        result += '"bezeichnung" : ' + ((!obj.bezeichnung) ? 'null' : '"' + obj.bezeichnung.valueOf() + '"') + ',';
        result += '"sortierung" : ' + obj.sortierung + ',';
        result += '"istFremdsprache" : ' + obj.istFremdsprache + ',';
        result += '"istFremdSpracheNeuEinsetzend" : ' + obj.istFremdSpracheNeuEinsetzend + ',';
        result += '"biliSprache" : ' + ((!obj.biliSprache) ? 'null' : '"' + obj.biliSprache.valueOf() + '"') + ',';
        result += '"istMoeglichAbiLK" : ' + obj.istMoeglichAbiLK + ',';
        result += '"istMoeglichAbiGK" : ' + obj.istMoeglichAbiGK + ',';
        result += '"istMoeglichEF1" : ' + obj.istMoeglichEF1 + ',';
        result += '"istMoeglichEF2" : ' + obj.istMoeglichEF2 + ',';
        result += '"istMoeglichQ11" : ' + obj.istMoeglichQ11 + ',';
        result += '"istMoeglichQ12" : ' + obj.istMoeglichQ12 + ',';
        result += '"istMoeglichQ21" : ' + obj.istMoeglichQ21 + ',';
        result += '"istMoeglichQ22" : ' + obj.istMoeglichQ22 + ',';
        result += '"wochenstundenEF1" : ' + obj.wochenstundenEF1 + ',';
        result += '"wochenstundenEF2" : ' + obj.wochenstundenEF2 + ',';
        result += '"wochenstundenQualifikationsphase" : ' + obj.wochenstundenQualifikationsphase + ',';
        result += '"mussSchriftlichEF1" : ' + obj.mussSchriftlichEF1 + ',';
        result += '"mussSchriftlichEF2" : ' + obj.mussSchriftlichEF2 + ',';
        result += '"projektKursLeitfach1ID" : ' + ((!obj.projektKursLeitfach1ID) ? 'null' : obj.projektKursLeitfach1ID.valueOf()) + ',';
        result += '"projektKursLeitfach1Kuerzel" : ' + ((!obj.projektKursLeitfach1Kuerzel) ? 'null' : '"' + obj.projektKursLeitfach1Kuerzel.valueOf() + '"') + ',';
        result += '"projektKursLeitfach2ID" : ' + ((!obj.projektKursLeitfach2ID) ? 'null' : obj.projektKursLeitfach2ID.valueOf()) + ',';
        result += '"projektKursLeitfach2Kuerzel" : ' + ((!obj.projektKursLeitfach2Kuerzel) ? 'null' : '"' + obj.projektKursLeitfach2Kuerzel.valueOf() + '"') + ',';
        result = result.slice(0, -1);
        result += '}';
        return result;
    }
    static transpilerToJSONPatch(obj) {
        let result = '{';
        if (typeof obj.id !== "undefined") {
            result += '"id" : ' + obj.id + ',';
        }
        if (typeof obj.kuerzel !== "undefined") {
            result += '"kuerzel" : ' + '"' + obj.kuerzel.valueOf() + '"' + ',';
        }
        if (typeof obj.kuerzelAnzeige !== "undefined") {
            result += '"kuerzelAnzeige" : ' + ((!obj.kuerzelAnzeige) ? 'null' : '"' + obj.kuerzelAnzeige.valueOf() + '"') + ',';
        }
        if (typeof obj.bezeichnung !== "undefined") {
            result += '"bezeichnung" : ' + ((!obj.bezeichnung) ? 'null' : '"' + obj.bezeichnung.valueOf() + '"') + ',';
        }
        if (typeof obj.sortierung !== "undefined") {
            result += '"sortierung" : ' + obj.sortierung + ',';
        }
        if (typeof obj.istFremdsprache !== "undefined") {
            result += '"istFremdsprache" : ' + obj.istFremdsprache + ',';
        }
        if (typeof obj.istFremdSpracheNeuEinsetzend !== "undefined") {
            result += '"istFremdSpracheNeuEinsetzend" : ' + obj.istFremdSpracheNeuEinsetzend + ',';
        }
        if (typeof obj.biliSprache !== "undefined") {
            result += '"biliSprache" : ' + ((!obj.biliSprache) ? 'null' : '"' + obj.biliSprache.valueOf() + '"') + ',';
        }
        if (typeof obj.istMoeglichAbiLK !== "undefined") {
            result += '"istMoeglichAbiLK" : ' + obj.istMoeglichAbiLK + ',';
        }
        if (typeof obj.istMoeglichAbiGK !== "undefined") {
            result += '"istMoeglichAbiGK" : ' + obj.istMoeglichAbiGK + ',';
        }
        if (typeof obj.istMoeglichEF1 !== "undefined") {
            result += '"istMoeglichEF1" : ' + obj.istMoeglichEF1 + ',';
        }
        if (typeof obj.istMoeglichEF2 !== "undefined") {
            result += '"istMoeglichEF2" : ' + obj.istMoeglichEF2 + ',';
        }
        if (typeof obj.istMoeglichQ11 !== "undefined") {
            result += '"istMoeglichQ11" : ' + obj.istMoeglichQ11 + ',';
        }
        if (typeof obj.istMoeglichQ12 !== "undefined") {
            result += '"istMoeglichQ12" : ' + obj.istMoeglichQ12 + ',';
        }
        if (typeof obj.istMoeglichQ21 !== "undefined") {
            result += '"istMoeglichQ21" : ' + obj.istMoeglichQ21 + ',';
        }
        if (typeof obj.istMoeglichQ22 !== "undefined") {
            result += '"istMoeglichQ22" : ' + obj.istMoeglichQ22 + ',';
        }
        if (typeof obj.wochenstundenEF1 !== "undefined") {
            result += '"wochenstundenEF1" : ' + obj.wochenstundenEF1 + ',';
        }
        if (typeof obj.wochenstundenEF2 !== "undefined") {
            result += '"wochenstundenEF2" : ' + obj.wochenstundenEF2 + ',';
        }
        if (typeof obj.wochenstundenQualifikationsphase !== "undefined") {
            result += '"wochenstundenQualifikationsphase" : ' + obj.wochenstundenQualifikationsphase + ',';
        }
        if (typeof obj.mussSchriftlichEF1 !== "undefined") {
            result += '"mussSchriftlichEF1" : ' + obj.mussSchriftlichEF1 + ',';
        }
        if (typeof obj.mussSchriftlichEF2 !== "undefined") {
            result += '"mussSchriftlichEF2" : ' + obj.mussSchriftlichEF2 + ',';
        }
        if (typeof obj.projektKursLeitfach1ID !== "undefined") {
            result += '"projektKursLeitfach1ID" : ' + ((!obj.projektKursLeitfach1ID) ? 'null' : obj.projektKursLeitfach1ID.valueOf()) + ',';
        }
        if (typeof obj.projektKursLeitfach1Kuerzel !== "undefined") {
            result += '"projektKursLeitfach1Kuerzel" : ' + ((!obj.projektKursLeitfach1Kuerzel) ? 'null' : '"' + obj.projektKursLeitfach1Kuerzel.valueOf() + '"') + ',';
        }
        if (typeof obj.projektKursLeitfach2ID !== "undefined") {
            result += '"projektKursLeitfach2ID" : ' + ((!obj.projektKursLeitfach2ID) ? 'null' : obj.projektKursLeitfach2ID.valueOf()) + ',';
        }
        if (typeof obj.projektKursLeitfach2Kuerzel !== "undefined") {
            result += '"projektKursLeitfach2Kuerzel" : ' + ((!obj.projektKursLeitfach2Kuerzel) ? 'null' : '"' + obj.projektKursLeitfach2Kuerzel.valueOf() + '"') + ',';
        }
        result = result.slice(0, -1);
        result += '}';
        return result;
    }
}
exports.GostFach = GostFach;
function cast_de_nrw_schule_svws_core_data_gost_GostFach(obj) {
    return obj;
}
exports.cast_de_nrw_schule_svws_core_data_gost_GostFach = cast_de_nrw_schule_svws_core_data_gost_GostFach;
//# sourceMappingURL=GostFach.js.map