123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.cast_de_nrw_schule_svws_core_kursblockung_KursblockungDynFachart = exports.KursblockungDynFachart = void 0;
- const JavaObject_1 = require("../../java/lang/JavaObject");
- class KursblockungDynFachart extends JavaObject_1.JavaObject {
- nr;
- representation;
- kursArr;
- schuelerMax = 0;
- kurseMax = 0;
- schuelerAnzNow = 0;
- statistik;
- /**
- * @param pNr Eine laufende Nummer (ID) für alle Facharten.
- * @param pRepresentation Eine String-Darstellung der Fachart, z.B. 'D;LK'.
- * @param pStatistik Dem Statistik-Objekt wird eine Veränderung der
- * Kursdifferenz mitgeteilt.
- */
- constructor(pNr, pRepresentation, pStatistik) {
- super();
- this.nr = pNr;
- this.representation = pRepresentation;
- this.statistik = pStatistik;
- this.kursArr = Array(0).fill(null);
- this.kurseMax = 0;
- this.schuelerMax = 0;
- this.schuelerAnzNow = 0;
- }
- /**
- * Durch das Überschreiben dieser Methode, liefert dieses Objekt eine
- * automatische String-Darstellung, beispielsweise 'D;LK'.
- */
- toString() {
- return this.representation;
- }
- /**
- * Liefert die Nummer dieser Fachart.
- *
- * @return Die Nummer dieser Fachart.
- */
- gibNr() {
- return this.nr;
- }
- /**
- * Liefert die maximale Anzahl ({@link #schuelerMax}) an SuS, die dieser Fachart
- * zugeordnet sein können. Das ist die Anzahl der Fachwahlen.
- *
- * @return Die Anzahl der SuS, die diese Fachart gewählt haben.
- */
- gibSchuelerMax() {
- return this.schuelerMax;
- }
- /**
- * Liefert die aktuelle Anzahl ({@link #schuelerAnzNow}) an SuS, die dieser
- * Fachart zugeordnet sind.
- *
- * @return Die Anzahl der SuS, die diese Fachart aktuell zugeordnet sind.
- */
- gibSchuelerZordnungen() {
- return this.schuelerAnzNow;
- }
- /**
- * Liefert die Anzahl der Kurse die dieser Fachart zugeordnet sind.
- *
- * @return Die Anzahl der Kurse die dieser Fachart zugeordnet sind.
- */
- gibKurseMax() {
- return this.kurseMax;
- }
- /**
- * Liefert die aktuell größte Kursdifferenz.
- *
- * @return Die aktuell größte Kursdifferenz.
- */
- gibKursdifferenz() {
- return this.kursArr[this.kursArr.length - 1].gibSchuelerAnzahl() - this.kursArr[0].gibSchuelerAnzahl();
- }
- /**
- * Liefert das Array aller Kurse dieser Fachart.
- *
- * @return Das Array aller Kurse dieser Fachart.
- */
- gibKurse() {
- return this.kursArr;
- }
- /**
- * Ordnet alle Kurse der Fachart zu. Die Kurse haben noch keine SuS und sind
- * somit automatisch sortiert.
- *
- * @param pKursArr Alle Kurse der Fachart.
- */
- aktionSetKurse(pKursArr) {
- this.kursArr = pKursArr;
- }
- /**
- * Erhöht die Anzahl ({@link #schuelerMax}) an SuS, die diese Fachart gewählt
- * haben um 1.
- */
- aktionMaxSchuelerErhoehen() {
- this.schuelerMax++;
- }
- /**
- * Erhöht die Anzahl ({@link #kurseMax}) an Kursen, die zu dieser Fachart
- * gehören.
- */
- aktionMaxKurseErhoehen() {
- this.kurseMax++;
- }
- /**
- * Muss aufgerufen werden, bevor die Schüleranzahl eines Kurses verändert wird.
- */
- aktionKursdifferenzEntfernen() {
- this.statistik.aktionKursdifferenzEntfernen(this.gibKursdifferenz());
- }
- /**
- * Muss aufgerufen werden, nachdem die Schüleranzahl eines Kurses verändert
- * wird.
- */
- aktionKursdifferenzHinzufuegen() {
- this.statistik.aktionKursdifferenzHinzufuegen(this.gibKursdifferenz());
- }
- /**
- * Erhöht die Anzahl ({@link #schuelerAnzNow}) an Schülern, die dieser Fachart
- * momentan zugeordnet sind um 1. Die Aufru
- */
- aktionSchuelerWurdeHinzugefuegt() {
- this.schuelerAnzNow++;
- for (let i = 1; i < this.kursArr.length; i++) {
- let kursL = this.kursArr[i - 1];
- let kursR = this.kursArr[i];
- if (kursL.gibSchuelerAnzahl() > kursR.gibSchuelerAnzahl()) {
- this.kursArr[i - 1] = kursR;
- this.kursArr[i] = kursL;
- }
- }
- }
- /**
- * Verringert die Anzahl ({@link #schuelerAnzNow}) an SuS, die dieser Fachart
- * momentan zugeordnet sind um 1.
- */
- aktionSchuelerWurdeEntfernt() {
- this.schuelerAnzNow--;
- for (let i = this.kursArr.length - 1; i >= 1; i--) {
- let kursL = this.kursArr[i - 1];
- let kursR = this.kursArr[i];
- if (kursL.gibSchuelerAnzahl() > kursR.gibSchuelerAnzahl()) {
- this.kursArr[i - 1] = kursR;
- this.kursArr[i] = kursL;
- }
- }
- }
- /**
- * Debug Ausgabe. Nur für Testzwecke.
- */
- debug() {
- for (let i = 0; i < this.kursArr.length; i++) {
- console.log(JSON.stringify(" " + this.kursArr[i] + " --> " + this.kursArr[i].gibSchuelerAnzahl() + " SuS."));
- }
- }
- /**
- * Liefert TRUE, falls mindestens ein Kurs dieser Fachart ein Multikur ist.
- *
- * @return TRUE, falls mindestens ein Kurs dieser Fachart ein Multikur ist.
- */
- gibHatMultikurs() {
- for (let kurs of this.kursArr) {
- if (kurs.gibSchienenAnzahl() > 1) {
- return true;
- }
- }
- return false;
- }
- isTranspiledInstanceOf(name) {
- return ['de.nrw.schule.svws.core.kursblockung.KursblockungDynFachart'].includes(name);
- }
- }
- exports.KursblockungDynFachart = KursblockungDynFachart;
- function cast_de_nrw_schule_svws_core_kursblockung_KursblockungDynFachart(obj) {
- return obj;
- }
- exports.cast_de_nrw_schule_svws_core_kursblockung_KursblockungDynFachart = cast_de_nrw_schule_svws_core_kursblockung_KursblockungDynFachart;
- //# sourceMappingURL=KursblockungDynFachart.js.map
|