123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.cast_de_nrw_schule_svws_core_abschluss_AbschlussManager = exports.AbschlussManager = void 0;
- const JavaObject_1 = require("../../java/lang/JavaObject");
- const GEAbschlussFach_1 = require("../../core/data/abschluss/GEAbschlussFach");
- const AbschlussErgebnis_1 = require("../../core/data/abschluss/AbschlussErgebnis");
- const StringBuilder_1 = require("../../java/lang/StringBuilder");
- const Abschluss_1 = require("../../core/types/Abschluss");
- const GELeistungsdifferenzierteKursart_1 = require("../../core/types/ge/GELeistungsdifferenzierteKursart");
- const Vector_1 = require("../../java/util/Vector");
- const HashSet_1 = require("../../java/util/HashSet");
- class AbschlussManager extends JavaObject_1.JavaObject {
- constructor() {
- super();
- }
- /**
- * Erzeugt ein Ergebnis der Abschlussberechnung unter Angabe, ob dieser erworben
- * wurde. Die Liste der Nachprüfungsfächer ist leer und ein Log ist nicht zugeordnet.
- * Sollten Nachprüfungsmöglichkeiten bestehen so ist die Methode
- * {@link AbschlussManager#getErgebnisNachpruefung} zu nutzen.
- * und ob dieser erworben wurde.
- *
- * @param abschluss der Abschluss für den das Ergebnis erzeugt wird
- * @param erworben true, falls der Abschluss erworben wurde, sonst false
- *
- * @return das Ergebnis der Abschlussberechnung
- */
- static getErgebnis(abschluss, erworben) {
- let ergebnis = new AbschlussErgebnis_1.AbschlussErgebnis();
- ergebnis.abschluss = abschluss === null ? null : abschluss.toString();
- ergebnis.erworben = erworben;
- ergebnis.npFaecher = null;
- ergebnis.log = null;
- return ergebnis;
- }
- /**
- * Erzeugt ein Ergebnis der Abschlussberechnung, wo der Abschluss nicht erreicht wurde, aber ggf.
- * noch durch Nachprüfungen erreicht werden kann. Ein log wird nicht zugeordnet.
- *
- * @param abschluss der Abschluss für den das Ergebnis erzeugt wird
- * @param np_faecher eine Liste von Nachprüfungsfächern, falls eine Nachprüfung möglich ist,
- * ansonsten null oder eine leere Liste
- *
- * @return das Ergebnis der Abschlussberechnung
- */
- static getErgebnisNachpruefung(abschluss, np_faecher) {
- let ergebnis = new AbschlussErgebnis_1.AbschlussErgebnis();
- ergebnis.abschluss = abschluss === null ? null : abschluss.toString();
- ergebnis.erworben = false;
- if ((np_faecher === null) || (np_faecher.size() === 0))
- ergebnis.npFaecher = null;
- else
- ergebnis.npFaecher = np_faecher;
- ergebnis.log = null;
- return ergebnis;
- }
- /**
- * Gibt an, ob für einen Abschluss eine Nachprüfungsmöglichkeit besteht.
- *
- * @param ergebnis das Abschluss-Ergebnis bei dem auf eine Nachprüfungsmöglichkeit
- * geprüft werden soll.
- *
- * @return true, falls eine Nachprüfungsmöglichkeit besteht, sonst false
- */
- static hatNachpruefungsmoeglichkeit(ergebnis) {
- return (ergebnis.npFaecher !== null) && ergebnis.npFaecher.size() > 0;
- }
- /**
- * Gibt die Nachprüfungsfächer als Komma-separierten String zurück.
- *
- * @param ergebnis das Abschluss-Ergebnis bei dem die Nachprüfungsmöglichkeiten
- * ausgegeben werden sollen
- *
- * @return die Nachprüfungsfächer als Komma-separierten String
- */
- static getNPFaecherString(ergebnis) {
- if (ergebnis.npFaecher === null)
- return "";
- let sb = new StringBuilder_1.StringBuilder();
- for (let fach of ergebnis.npFaecher) {
- if (sb.length() > 0)
- sb.append(", ");
- sb.append(fach);
- }
- return sb.toString();
- }
- /**
- * Vergleicht die beiden Abschlüsse, ob sie identisch sind. Ein
- * Übergabewert null wird als {@link Abschluss#OHNE_ABSCHLUSS}
- * interpretiert.
- *
- * @param a der eine Abschluss
- * @param b der andere Abschluss
- *
- * @return true, falls sie identisch sind und ansonsten false
- */
- static equalsAbschluesse(a, b) {
- if ((a === null) || (Abschluss_1.Abschluss.OHNE_ABSCHLUSS.is(a)))
- return (b === null) || (Abschluss_1.Abschluss.OHNE_ABSCHLUSS.is(b));
- return JavaObject_1.JavaObject.equalsTranspiler(a, (b));
- }
- /**
- * Gibt den Abschluss zurück. Im Falle das kein Abschluss angegeben ist
- * wird Abschluss.OHNE_ABSCHLUSS zurückgegeben.
- *
- * @param ergebnis das Ergebnis
- *
- * @return der Abschluss
- */
- static getAbschluss(ergebnis) {
- return ergebnis.abschluss === null ? Abschluss_1.Abschluss.OHNE_ABSCHLUSS.toString() : ergebnis.abschluss;
- }
- /**
- * Die Methode dient dem Erzeugen eines Faches für die Abschlussberechnung.
- *
- * @param kuerzel das Kürzel des Faches
- * @param bezeichnung die Bezeichnung des Faches
- * @param note die Note, die in dem Fach erteilt wurde
- * @param kursart gibt die Kursart Faches an: leistungsdifferenzierter (E-Kurs, G-Kurs) oder sonstiger Kurs
- * @param istFremdsprache gibt an, ob es sich bei dem Fach um eine Fremdsprache handelt oder nicht
- *
- * @return das Abschlussfach
- */
- static erstelleAbschlussFach(kuerzel, bezeichnung, note, kursart, istFremdsprache) {
- let fach = new GEAbschlussFach_1.GEAbschlussFach();
- fach.kuerzel = kuerzel;
- fach.bezeichnung = (bezeichnung === null || JavaObject_1.JavaObject.equalsTranspiler("", (bezeichnung))) ? "---" : bezeichnung;
- fach.note = note;
- fach.kursart = kursart.kuerzel;
- fach.istFremdsprache = istFremdsprache === null ? false : istFremdsprache;
- return fach;
- }
- /**
- * Liefert eine List mit den Fachkürzeln aus der übergebenen Liste mit Abschlussfächern.
- *
- * @param faecher die Liste mit Abschlussfächern
- *
- * @return die Liste mit den Fachkürzeln
- */
- static getKuerzel(faecher) {
- let result = new Vector_1.Vector();
- for (let i = 0; i < faecher.size(); i++) {
- let fach = faecher.get(i);
- if ((fach === null) || fach.kuerzel === null)
- continue;
- if (result.contains(fach.kuerzel))
- continue;
- result.add(fach.kuerzel);
- }
- return result;
- }
- /**
- * Prüft, ob vier leistungsdifferenzierte Fächer belegt wurden. Dabei wird nicht geprüft, ob
- * es sich um G oder E-Kurse handelt.
- *
- * @param abschluss_faecher die Abschlussfächer
- *
- * @return true, falls vier leistungsdifferenzierte Fächer belegt wurden, sonst false
- */
- static pruefeHat4LeistungsdifferenzierteFaecher(abschluss_faecher) {
- if (abschluss_faecher.faecher === null)
- return false;
- let count = 0;
- let faecher = abschluss_faecher.faecher;
- for (let fach of faecher) {
- if (fach === null)
- continue;
- let kursart = GELeistungsdifferenzierteKursart_1.GELeistungsdifferenzierteKursart.from(fach.kursart);
- if ((kursart === GELeistungsdifferenzierteKursart_1.GELeistungsdifferenzierteKursart.E) || (kursart === GELeistungsdifferenzierteKursart_1.GELeistungsdifferenzierteKursart.G))
- count++;
- }
- return (count === 4);
- }
- /**
- * Prüft, ob Duplikate bei den Kürzeln der Fächer vorkommen. Dies darf zur korrekten
- * Ausführung des Abschlussalgorithmus nicht vorkommen.
- *
- * @param abschluss_faecher die Abschlussfächer
- *
- * @return true, falls keine Duplikate vorkommen, sonst false
- */
- static pruefeKuerzelDuplikate(abschluss_faecher) {
- if (abschluss_faecher.faecher === null)
- return true;
- let kuerzel = new HashSet_1.HashSet();
- let faecher = abschluss_faecher.faecher;
- for (let fach of faecher) {
- if ((fach === null) || (fach.kuerzel === null))
- continue;
- if (!kuerzel.add(fach.kuerzel))
- return false;
- }
- return true;
- }
- isTranspiledInstanceOf(name) {
- return ['de.nrw.schule.svws.core.abschluss.AbschlussManager'].includes(name);
- }
- }
- exports.AbschlussManager = AbschlussManager;
- function cast_de_nrw_schule_svws_core_abschluss_AbschlussManager(obj) {
- return obj;
- }
- exports.cast_de_nrw_schule_svws_core_abschluss_AbschlussManager = cast_de_nrw_schule_svws_core_abschluss_AbschlussManager;
- //# sourceMappingURL=AbschlussManager.js.map
|