"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.cast_de_nrw_schule_svws_core_data_gost_AbiturFachbelegungHalbjahr = exports.AbiturFachbelegungHalbjahr = void 0;
const JavaObject_1 = require("../../../java/lang/JavaObject");
class AbiturFachbelegungHalbjahr extends JavaObject_1.JavaObject {
    halbjahrKuerzel = "";
    kursartKuerzel = "";
    schriftlich = null;
    biliSprache = null;
    lehrer = null;
    wochenstunden = 0;
    fehlstundenGesamt = 0;
    fehlstundenUnentschuldigt = 0;
    notenkuerzel = null;
    block1gewertet = null;
    block1kursAufZeugnis = null;
    constructor() {
        super();
    }
    isTranspiledInstanceOf(name) {
        return ['de.nrw.schule.svws.core.data.gost.AbiturFachbelegungHalbjahr'].includes(name);
    }
    static transpilerFromJSON(json) {
        const obj = JSON.parse(json);
        const result = new AbiturFachbelegungHalbjahr();
        if (typeof obj.halbjahrKuerzel === "undefined")
            throw new Error('invalid json format, missing attribute halbjahrKuerzel');
        result.halbjahrKuerzel = obj.halbjahrKuerzel;
        if (typeof obj.kursartKuerzel === "undefined")
            throw new Error('invalid json format, missing attribute kursartKuerzel');
        result.kursartKuerzel = obj.kursartKuerzel;
        result.schriftlich = typeof obj.schriftlich === "undefined" ? null : obj.schriftlich;
        result.biliSprache = typeof obj.biliSprache === "undefined" ? null : obj.biliSprache;
        result.lehrer = typeof obj.lehrer === "undefined" ? null : obj.lehrer;
        if (typeof obj.wochenstunden === "undefined")
            throw new Error('invalid json format, missing attribute wochenstunden');
        result.wochenstunden = obj.wochenstunden;
        if (typeof obj.fehlstundenGesamt === "undefined")
            throw new Error('invalid json format, missing attribute fehlstundenGesamt');
        result.fehlstundenGesamt = obj.fehlstundenGesamt;
        if (typeof obj.fehlstundenUnentschuldigt === "undefined")
            throw new Error('invalid json format, missing attribute fehlstundenUnentschuldigt');
        result.fehlstundenUnentschuldigt = obj.fehlstundenUnentschuldigt;
        result.notenkuerzel = typeof obj.notenkuerzel === "undefined" ? null : obj.notenkuerzel;
        result.block1gewertet = typeof obj.block1gewertet === "undefined" ? null : obj.block1gewertet;
        result.block1kursAufZeugnis = typeof obj.block1kursAufZeugnis === "undefined" ? null : obj.block1kursAufZeugnis;
        return result;
    }
    static transpilerToJSON(obj) {
        let result = '{';
        result += '"halbjahrKuerzel" : ' + '"' + obj.halbjahrKuerzel.valueOf() + '"' + ',';
        result += '"kursartKuerzel" : ' + '"' + obj.kursartKuerzel.valueOf() + '"' + ',';
        result += '"schriftlich" : ' + ((!obj.schriftlich) ? 'null' : obj.schriftlich.valueOf()) + ',';
        result += '"biliSprache" : ' + ((!obj.biliSprache) ? 'null' : '"' + obj.biliSprache.valueOf() + '"') + ',';
        result += '"lehrer" : ' + ((!obj.lehrer) ? 'null' : obj.lehrer.valueOf()) + ',';
        result += '"wochenstunden" : ' + obj.wochenstunden + ',';
        result += '"fehlstundenGesamt" : ' + obj.fehlstundenGesamt + ',';
        result += '"fehlstundenUnentschuldigt" : ' + obj.fehlstundenUnentschuldigt + ',';
        result += '"notenkuerzel" : ' + ((!obj.notenkuerzel) ? 'null' : '"' + obj.notenkuerzel.valueOf() + '"') + ',';
        result += '"block1gewertet" : ' + ((!obj.block1gewertet) ? 'null' : obj.block1gewertet.valueOf()) + ',';
        result += '"block1kursAufZeugnis" : ' + ((!obj.block1kursAufZeugnis) ? 'null' : obj.block1kursAufZeugnis.valueOf()) + ',';
        result = result.slice(0, -1);
        result += '}';
        return result;
    }
    static transpilerToJSONPatch(obj) {
        let result = '{';
        if (typeof obj.halbjahrKuerzel !== "undefined") {
            result += '"halbjahrKuerzel" : ' + '"' + obj.halbjahrKuerzel.valueOf() + '"' + ',';
        }
        if (typeof obj.kursartKuerzel !== "undefined") {
            result += '"kursartKuerzel" : ' + '"' + obj.kursartKuerzel.valueOf() + '"' + ',';
        }
        if (typeof obj.schriftlich !== "undefined") {
            result += '"schriftlich" : ' + ((!obj.schriftlich) ? 'null' : obj.schriftlich.valueOf()) + ',';
        }
        if (typeof obj.biliSprache !== "undefined") {
            result += '"biliSprache" : ' + ((!obj.biliSprache) ? 'null' : '"' + obj.biliSprache.valueOf() + '"') + ',';
        }
        if (typeof obj.lehrer !== "undefined") {
            result += '"lehrer" : ' + ((!obj.lehrer) ? 'null' : obj.lehrer.valueOf()) + ',';
        }
        if (typeof obj.wochenstunden !== "undefined") {
            result += '"wochenstunden" : ' + obj.wochenstunden + ',';
        }
        if (typeof obj.fehlstundenGesamt !== "undefined") {
            result += '"fehlstundenGesamt" : ' + obj.fehlstundenGesamt + ',';
        }
        if (typeof obj.fehlstundenUnentschuldigt !== "undefined") {
            result += '"fehlstundenUnentschuldigt" : ' + obj.fehlstundenUnentschuldigt + ',';
        }
        if (typeof obj.notenkuerzel !== "undefined") {
            result += '"notenkuerzel" : ' + ((!obj.notenkuerzel) ? 'null' : '"' + obj.notenkuerzel.valueOf() + '"') + ',';
        }
        if (typeof obj.block1gewertet !== "undefined") {
            result += '"block1gewertet" : ' + ((!obj.block1gewertet) ? 'null' : obj.block1gewertet.valueOf()) + ',';
        }
        if (typeof obj.block1kursAufZeugnis !== "undefined") {
            result += '"block1kursAufZeugnis" : ' + ((!obj.block1kursAufZeugnis) ? 'null' : obj.block1kursAufZeugnis.valueOf()) + ',';
        }
        result = result.slice(0, -1);
        result += '}';
        return result;
    }
}
exports.AbiturFachbelegungHalbjahr = AbiturFachbelegungHalbjahr;
function cast_de_nrw_schule_svws_core_data_gost_AbiturFachbelegungHalbjahr(obj) {
    return obj;
}
exports.cast_de_nrw_schule_svws_core_data_gost_AbiturFachbelegungHalbjahr = cast_de_nrw_schule_svws_core_data_gost_AbiturFachbelegungHalbjahr;
//# sourceMappingURL=AbiturFachbelegungHalbjahr.js.map