123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.cast_de_nrw_schule_svws_core_abschluss_ge_AbschlussFaecherGruppe = exports.AbschlussFaecherGruppe = void 0;
- const JavaObject_1 = require("../../../java/lang/JavaObject");
- const StringBuilder_1 = require("../../../java/lang/StringBuilder");
- const Vector_1 = require("../../../java/util/Vector");
- const GELeistungsdifferenzierteKursart_1 = require("../../../core/types/ge/GELeistungsdifferenzierteKursart");
- const AbschlussManager_1 = require("../../../core/abschluss/AbschlussManager");
- class AbschlussFaecherGruppe extends JavaObject_1.JavaObject {
- faecher = new Vector_1.Vector();
- /**
- * Erzeugt eine Fächergruppe aus den angegebenen Fächern und den vorgegebenen Kriterien.
- *
- * @param faecherAlle eine Liste aller vorhandenen Leistungen
- * @param faecherNutzen nur die gelisteten Fächer nutzen, null bedeutet grundsätzlich alle benoteten Fächer nutzen (außer den gefilterten)
- * @param faecherFiltern null bedeutet keinen Filter verwenden, ansonsten werden die gelisteten Fächer gefiltert
- */
- constructor(faecherAlle, faecherNutzen, faecherFiltern) {
- super();
- if (faecherAlle === null)
- return;
- for (let i = 0; i < faecherAlle.size(); i++) {
- let fach = faecherAlle.get(i);
- if (fach.kuerzel === null)
- continue;
- if ((faecherFiltern !== null) && faecherFiltern.contains(fach.kuerzel))
- continue;
- if ((faecherNutzen !== null) && !faecherNutzen.contains(fach.kuerzel))
- continue;
- this.faecher.add(AbschlussManager_1.AbschlussManager.erstelleAbschlussFach(fach.kuerzel, fach.bezeichnung, fach.note, GELeistungsdifferenzierteKursart_1.GELeistungsdifferenzierteKursart.from(fach.kursart), fach.istFremdsprache));
- }
- }
- /**
- * Prüft, ob die gelisteten Fächer in der Fächergruppe sind und nur diese.
- *
- * @param faecherAbgleich die Fächer, welche in der Fächergruppe sein sollen.
- *
- * @return true, falls die angegebenen Fächer und nur diese in der Fächergruppe sind, ansonsten false.
- */
- istVollstaendig(faecherAbgleich) {
- if (faecherAbgleich === null)
- return true;
- if (this.isEmpty())
- return false;
- for (let kuerzel of faecherAbgleich) {
- if (!this.contains(kuerzel))
- return false;
- }
- for (let i = 0; i < this.faecher.size(); i++) {
- let fach = this.faecher.get(i);
- if (!faecherAbgleich.contains(fach.kuerzel))
- return false;
- }
- return true;
- }
- /**
- * Gibt zurück, ob die Fächergruppe leer ist oder mindestens ein Fach beinhaltet.
- *
- * @return true, falls die Fächergruppe leer ist, ansonsten false
- */
- isEmpty() {
- return (this.faecher === null) || (this.faecher.isEmpty());
- }
- /**
- * Prüft, ob das Fach mit dem angegebenen Fachkürzel in der Fächergruppe enthalten ist
- * oder nicht.
- *
- * @param kuerzel das Kürzel des Faches, welches geprüft werden soll.
- *
- * @return true, falls das Fach vorhanden ist, und ansonsten false
- */
- contains(kuerzel) {
- if (kuerzel === null)
- return false;
- for (let i = 0; i < this.faecher.size(); i++) {
- let fach = this.faecher.get(i);
- if ((fach !== null) && (JavaObject_1.JavaObject.equalsTranspiler(fach.kuerzel, (kuerzel))))
- return true;
- }
- return false;
- }
- /**
- * Entfernt alle Fächer aus der Fächergruppe, die dem übergebenen Filter entsprechen.
- *
- * @param filter die Funktion, um die zu entfernenden Fächer zu bestimmen
- *
- * @return die Liste der tatsächlich entfernten Fächer
- */
- entferneFaecher(filter) {
- let selected = new Vector_1.Vector();
- for (let i = 0; i < this.faecher.size(); i++) {
- let fach = this.faecher.get(i);
- if (filter.test(fach))
- selected.add(fach);
- }
- this.faecher.removeAll(selected);
- return selected;
- }
- /**
- * Bestimmt das Fach, welches dem übergebenen Filter entspricht. Entsprechen
- * mehrere Fächer dem Filterkriterium, so wird nur das erste Fach
- * der internen Liste zurückgegeben.
- *
- * @param filter die Funktion, die das Kriterium für das gesuchte Fach angibt.
- *
- * @return das Fach, sofern eines gefunden wurde, ansonsten false
- */
- getFach(filter) {
- for (let i = 0; i < this.faecher.size(); i++) {
- let fach = this.faecher.get(i);
- if (filter.test(fach))
- return fach;
- }
- return null;
- }
- /**
- * Bestimmt alle Fächer, welche dem übergebenen Filterkriterium entsprechen.
- *
- * @param filter die Funktion, die das Kriterium für die gesuchten Fächer angibt.
- *
- * @return eine Liste der Fächer, die dem Filterkriterium entsprechen
- */
- getFaecher(filter) {
- let result = new Vector_1.Vector();
- for (let i = 0; i < this.faecher.size(); i++) {
- let fach = this.faecher.get(i);
- if (filter.test(fach))
- result.add(fach);
- }
- return result;
- }
- /**
- * Gibt die Anzahl der Fächer zurück, welche dem übergebenen Filterkriterium entsprechen.
- *
- * @param filter die Funktion, die das Kriterium für die gesuchten Fächer angibt.
- *
- * @return die Anzahl der Fächer
- */
- getFaecherAnzahl(filter) {
- let count = 0;
- for (let i = 0; i < this.faecher.size(); i++) {
- let fach = this.faecher.get(i);
- if (filter.test(fach))
- count++;
- }
- return count;
- }
- /**
- * Bestimmt die Kürzel aller Fächer, welche dem übergebenen Filterkriterium entsprechen.
- *
- * @param filter die Funktion, die das Kriterium für die gesuchten Fächer angibt.
- *
- * @return eine Liste der Kürzel der Fächer, die dem Filterkriterium entsprechen
- */
- getKuerzel(filter) {
- let result = new Vector_1.Vector();
- for (let i = 0; i < this.faecher.size(); i++) {
- let fach = this.faecher.get(i);
- if (filter.test(fach) && (fach.kuerzel !== null))
- result.add(fach.kuerzel);
- }
- return result;
- }
- /**
- * Erstellt eine Zeichenkette mit einer Komma-separierten Liste der Kürzel aller Fächer,
- * welche dem übergebenen Filterkriterium entsprechen.
- *
- * @param filter die Funktion, die das Kriterium für die gesuchten Fächer angibt.
- *
- * @return die Zeichenkette mit einer Komma-separierten Liste der Fächerkürzel
- */
- getKuerzelListe(filter) {
- let sb = new StringBuilder_1.StringBuilder();
- for (let i = 0; i < this.faecher.size(); i++) {
- let fach = this.faecher.get(i);
- if (filter.test(fach)) {
- if (sb.length() > 0)
- sb.append(", ");
- sb.append(fach.kuerzel);
- }
- }
- return sb.toString();
- }
- /**
- * Gibt eine Komma-separierte Liste, der Abschlussfächer aus. Dabei wird
- * die toString Methode der Klasse AbschlussFach verwendet.
- */
- toString() {
- let sb = new StringBuilder_1.StringBuilder();
- for (let i = 0; i < this.faecher.size(); i++) {
- let fach = this.faecher.get(i);
- if (sb.length() > 0)
- sb.append(", ");
- let diffkursinfo = "";
- if ((fach.kursart === null) || (fach.kuerzel === null))
- continue;
- if (!GELeistungsdifferenzierteKursart_1.GELeistungsdifferenzierteKursart.Sonstige.hat(fach.kursart))
- diffkursinfo += fach.kursart + ",";
- sb.append(fach.kuerzel + "(" + diffkursinfo.valueOf() + fach.note + ")");
- }
- return sb.toString();
- }
- isTranspiledInstanceOf(name) {
- return ['de.nrw.schule.svws.core.abschluss.ge.AbschlussFaecherGruppe'].includes(name);
- }
- }
- exports.AbschlussFaecherGruppe = AbschlussFaecherGruppe;
- function cast_de_nrw_schule_svws_core_abschluss_ge_AbschlussFaecherGruppe(obj) {
- return obj;
- }
- exports.cast_de_nrw_schule_svws_core_abschluss_ge_AbschlussFaecherGruppe = cast_de_nrw_schule_svws_core_abschluss_ge_AbschlussFaecherGruppe;
- //# sourceMappingURL=AbschlussFaecherGruppe.js.map
|