import { JavaObject } from '../../../java/lang/JavaObject'; import { GostBlockungsergebnisBewertung } from '../../../core/data/gost/GostBlockungsergebnisBewertung'; import { GostKursart } from '../../../core/types/gost/GostKursart'; import type { List } from '../../../java/util/List'; import { GostBlockungKurs } from '../../../core/data/gost/GostBlockungKurs'; import { GostFachwahl } from '../../../core/data/gost/GostFachwahl'; import { GostBlockungsergebnisKursSchuelerZuordnungUpdate } from '../../../core/data/gost/GostBlockungsergebnisKursSchuelerZuordnungUpdate'; import { Schueler } from '../../../asd/data/schueler/Schueler'; import { Class } from '../../../java/lang/Class'; import type { JavaMap } from '../../../java/util/JavaMap'; import { GostBlockungsergebnisSchiene } from '../../../core/data/gost/GostBlockungsergebnisSchiene'; import { GostBlockungsergebnisKursSchuelerZuordnung } from '../../../core/data/gost/GostBlockungsergebnisKursSchuelerZuordnung'; import type { JavaSet } from '../../../java/util/JavaSet'; import { GostBlockungsergebnisKurs } from '../../../core/data/gost/GostBlockungsergebnisKurs'; import { Logger } from '../../../core/logger/Logger'; import { GostBlockungsergebnisKursSchienenZuordnung } from '../../../core/data/gost/GostBlockungsergebnisKursSchienenZuordnung'; import { GostBlockungsergebnisKursSchienenZuordnungUpdate } from '../../../core/data/gost/GostBlockungsergebnisKursSchienenZuordnungUpdate'; import { GostSchriftlichkeit } from '../../../core/types/gost/GostSchriftlichkeit'; import { Geschlecht } from '../../../asd/types/Geschlecht'; import { Pair } from '../../../asd/adt/Pair'; import { GostFach } from '../../../core/data/gost/GostFach'; import { GostBlockungsdatenManager } from '../../../core/utils/gost/GostBlockungsdatenManager'; import { GostBlockungsergebnis } from '../../../core/data/gost/GostBlockungsergebnis'; import { GostBlockungRegelUpdate } from '../../../core/data/gost/GostBlockungRegelUpdate'; import { GostBlockungSchiene } from '../../../core/data/gost/GostBlockungSchiene'; export declare class GostBlockungsergebnisManager extends JavaObject { /** * Der Blockungsdaten-Manager ist das Elternteil dieses Objektes. */ private readonly _parent; /** * Das Blockungsergebnis ist das zugehörige Eltern-Datenobjekt. */ private _ergebnis; /** * Liste aller Fehlermeldungen. */ private _fehlermeldungen; /** * Set aller Schienen-IDs. */ private _schienenIDset; /** * Set aller Schienen-Nummern. */ private _schienenNRset; /** * Set aller Kurs-IDs. */ private _kursIDset; /** * Set aller Fach-IDs. */ private _fachIDset; /** * Set aller Schüler-IDs. */ private _schuelerIDset; /** * Map von Schienen-ID nach {@link GostBlockungsergebnisSchiene}. */ private _schienenID_to_schiene; /** * Map von Schienen-NR nach {@link GostBlockungsergebnisSchiene}. */ private _schienenNR_to_schiene; /** * Map von Kurs-ID nach {@link GostBlockungsergebnisKurs}. */ private _kursID_to_kurs; /** * Map von Schueler-ID nach {@link Schueler}. */ private _schuelerID_to_schueler; /** * Map von Schienen-ID nach Long-Set (von Kursen). */ private _schienenID_to_kursIDSet; /** * Map von Schueler-ID nach {@link GostBlockungsergebnisKurs}-Set (Kurse des Schüler, die aufgrund der aktuellen Fachwahlen ungültig sind). */ private _schuelerID_to_ungueltigeKurseSet; /** * Map von Kurs-ID nach Long-Set (von Schülern). */ private _kursID_to_schuelerIDSet; /** * Map von Fach-ID nach {@link GostBlockungsergebnisKurs}-List. */ private _fachID_to_kurseList; /** * Map von Kurs-ID nach {@link GostBlockungsergebnisSchiene}-Set. */ private _kursID_to_schienenSet; /** * Map von Kurs-ID nach Integer (Anzahl an externen SuS). */ private _kursID_to_dummySuS; /** * Map von Fachart-ID nach {@link GostBlockungsergebnisKurs}-List (Alle Kurse der selben Fachart). */ private _fachartID_to_kurseList; /** * Map von Schüler-ID nach {@link GostBlockungsergebnisKurs}-Set. */ private _schuelerID_to_kurseSet; /** * Menge aller Fachart-IDs sortiert nach der aktuellen Sortiervariante. */ private _fachartIDList_sortiert; /** * Map von Fachart-ID nach Integer (Kursdifferenz der Fachart). */ private _fachartID_to_kursdifferenz; /** * Map von Schienen-ID nach Integer (Anzahl an Kollisionen in der Schiene). */ private _schienenID_to_kollisionen; /** * Map von Schienen-ID nach Integer (Anzahl der SuS in der Schiene). */ private _schienenID_to_susAnzahl; /** * Map von Schüler-ID nach Map von Schienen-ID nach {@link GostBlockungsergebnisKurs}-Set (Alle Kurse des Schülers in der Schiene). */ private _schuelerID_schienenID_to_kurseSet; /** * Map von Schienen-ID nach Map von Fachart-ID nach {@link GostBlockungsergebnisKurs}-List (Alle Kurse pro Schiene und Fachart). */ private _schienenID_fachartID_to_kurseList; /** * Map von Kursdifferenz nach String-List (Facharten mit dieser Kursdifferenzen). */ private _kursdifferenz_to_fachartenList; /** * Map von Schüler-ID Integer (Summe aller Kollisionen des Schülers). */ private _schuelerID_to_kollisionen; /** * Map von Schüler-ID nach Map von Fach-ID nach {@link GostBlockungsergebnisKurs} (Die zugeordnete Wahl des Schülers in dem Fach, auch NULL möglich). */ private _schuelerID_fachID_to_kurs_or_null; /** * Von Regel-ID Regel-TYP nach List (alle Regelverletzungen des Typs als String-Menge). */ private _regelTyp_to_verletzungList; /** * Von Regel-ID nach String (Beschreibung der Regelverletzung). */ private _regelID_to_verletzungString; /** * Textuelle Darstellung aller Regelverletzungen der definierten Regeln. */ private _regelverletzungen_tooltip1_regeln; /** * Textuelle Darstellung aller Regelverletzungen der Wahlkonflikte. */ private _regelverletzungen_tooltip2_wahlkonflikte; /** * Textuelle Darstellung aller Regelverletzungen der Kursdifferenzen. */ private _regelverletzungen_tooltip3_kursdifferenzen; /** * Textuelle Darstellung aller Regelverletzungen der Fächerparallelität. */ private _regelverletzungen_tooltip4_faecherparallelitaet; /** * Entscheidet, welcher Comparator verwendet wird mit 1 = (KURSART, FACH) andernfalls (FACH, KURSART). */ private _fachartmenge_sortierung; /** * Comparator für die Facharten nach (KURSART, FACH). */ private readonly _fachartComparator_kursart_fach; /** * Comparator für die Facharten nach (FACH, KURSART). */ private readonly _fachartComparator_fach_kursart; /** * Ein Comparator für Kurse der Blockung (KURSART, FACH, KURSNUMMER) */ private readonly _kursComparator_kursart_fach_kursnummer; /** * Ein Comparator für Kurse der Blockung (FACH, KURSART, KURSNUMMER). */ private readonly _kursComparator_fach_kursart_kursnummer; private _bewertung3_KD_nur_LK; private _bewertung3_KD_nur_GK; private _bewertung3_KD_nur_REST; /** * Erstellt einen leeren GostBlockungsergebnisManager in Bezug auf GostBlockungsdatenManager. Die ID des leeren * Ergebnisses ist -1 und muss noch gesetzt werden. * * @param pParent Das Eltern-Objekt. (Daten-Manager für die grundlegenden Definitionen der * Blockung) * @param pGostBlockungsergebnisID Die ID des Blockungsergebnisses. */ constructor(pParent: GostBlockungsdatenManager, pGostBlockungsergebnisID: number); /** * Erstellt einen neuen Manager mit den Daten aus dem übergebenen Ergebnis. * * @param pParent Das Eltern-Objekt. (Daten-Manager für die grundlegenden Definitionen der Blockung) * @param pErgebnis Das Ergebnis, welches kopiert wird. */ constructor(pParent: GostBlockungsdatenManager, pErgebnis: GostBlockungsergebnis); /** * Baut alle Datenstrukturen neu auf. */ stateRevalidateEverything(): void; private stateClear; private stateClearErgebnisBewertung1; private stateClearErgebnisTooltip1; private stateClearErgebnisBewertung2; private stateClearErgebnisTooltip2; private stateClearErgebnisBewertung3; private stateClearErgebnisTooltip3; private stateClearErgebnisBewertung4; private stateClearErgebnisTooltip4; private stateClearErgebnisTooltip4proSchiene; private stateClearErgebnisTooltip4proSchieneUndFachart; private update_0_schienenIDset_schienenNRset; private update_0_kursIDset; private update_0_fachIDset; private update_0_schuelerIDset; /** * Wichtig: Die Methode muss auf gelöschte und hinzugefügt Schienen reagieren * und die eigene Datenstruktur anpassen. */ private update_0_schienenID_to_schiene_schienenNR_to_schiene; /** * Um Bugs zu verhindern, muss die DTO-Datenstruktor hier korrigiert werden, * denn Multi-Schienen-Kurse existieren in der jeweiligen Schiene als Kopie. * Alle Kopien müssen durch das selbe Kurs-Objekt ersetzt werden. */ private update_0_kursID_to_kurs; private update_0_schuelerID_to_schueler; private update_0_schienenID_to_kursIDSet; private update_1_kursID_to_schuelerIDSet_schuelerID_to_ungueltigeKurseSet; private update_1_kursID_to_dummySuS; private update_1_fachID_to_kurseList; private update_1_kursID_to_schienenSet; private update_1_fachartID_to_kurseList; private update_2_schuelerID_to_kurseSet; private update_2_fachartIDList_sortiert; private update_2_fachartID_to_kursdifferenz; private update_2_schienenID_to_kollisionen; private update_2_schienenID_to_susAnzahl; private update_2_schuelerID_schienenID_to_kurseSet; private update_2_schienenID_fachartID_to_kurseList; private update_3_kursdifferenz_to_fachartenList; private update_3_schuelerID_to_kollisionen; private update_3_schuelerID_fachID_to_kurs_or_null; private stateRegelvalidierung1_kursart_sperren_in_schiene_von_bis; private stateRegelvalidierung2_kurs_fixieren_in_schiene; private stateRegelvalidierung3_kurs_sperren_in_schiene; private stateRegelvalidierung4_schueler_fixieren_in_kurs; private stateRegelvalidierung5_schueler_verbieten_in_kurs; private stateRegelvalidierung6_kursart_allein_in_schiene_von_bis; private stateRegelvalidierung7_kurs_verbieten_mit_kurs; private stateRegelvalidierung8_kurs_zusammen_mit_kurs; private stateRegelvalidierung10_lehrkraefte_beachten; private stateRegelvalidierung11_schueler_zusammen_mit_schueler_in_fach; private stateRegelvalidierung12_schueler_verbieten_mit_schueler_in_fach; private stateRegelvalidierung13_schueler_zusammen_mit_schueler; private stateRegelvalidierung14_schueler_verbieten_mit_schueler; private stateRegelvalidierung15_kurs_maximale_schueleranzahl; private stateRegelvalidierung18_fach_kursart_maxProSchiene; /** * Fügt den Schüler dem Kurs hinzu und revalidiert nicht den Zustand.
* Hinweis: Ist die Wahl des Kurses für diesen Schüler ungültig, wird der Schüler nicht hinzugefügt. * Stattdessen wird die ungültige Wahl in einer Map gespeichert. * * @param idSchueler Die Datenbank-ID des Schülers. * @param idKurs Die Datenbank-ID des Kurses. */ private stateSchuelerKursHinzufuegenOhneRevalidierung; /** * Entfernt den Schüler aus dem Kurs und revalidiert nicht den Zustand.
* Hinweis: Ist die Wahl des Kurses für diesen Schüler ungültig, so wird der Schüler aus der zuvor gespeichert * Zuordnung aller ungültigen Wahlen gelöscht. * * @param idSchueler Die Datenbank-ID des Schülers. * @param idKurs Die Datenbank-ID des Kurses. */ private stateSchuelerKursEntfernenOhneRevalidierung; /** * Fügt den Kurs der Schiene hinzu und revalidiert nicht den Zustand. * * @param idKurs Die Datenbank-ID des Kurses. * @param idSchiene Die Datenbank-ID der Schiene. */ private stateKursSchieneHinzufuegenOhneRegelvalidierung; /** * Entfernt den Kurs aus der Schiene. * * @param idKurs Die Datenbank-ID des Kurses. * @param idSchiene Die Datenbank-ID der Schiene. */ private stateKursSchieneEntfernenOhneRegelvalidierung; /** * Liefert die Anzahl an externen SuS. * * @return die Anzahl an externen SuS. */ getAnzahlSchuelerExterne(): number; /** * Liefert die Anzahl an E-Schienen. * * @return die Anzahl an E-Schienen. */ getAnzahlSchienen(): number; /** * Liefert die Anzahl an Dummy-SuS. * * @return die Anzahl an Dummy-SuS. */ getAnzahlSchuelerDummy(): number; /** * Liefert die Datenbank-ID der Blockungs. Das ist die ID des Elternteils. * * @return die Datenbank-ID der Blockungs. Das ist die ID des Elternteils. */ getBlockungsdatenID(): number; /** * Liefert das Blockungsergebnis, potentiell auch mit Schüler-Kurs-Zuordnungen, die nicht zu den Fachwahlen passen. * * @return das Blockungsergebnis, potentiell auch mit Schüler-Kurs-Zuordnungen, die nicht zu den Fachwahlen passen. */ getErgebnis(): GostBlockungsergebnis; /** * Liefert die Menge (meistens eine) aller Fehlermeldungen. *
Falls die Liste nicht leer ist, sollte die GUI den Benutzer warnen, dass die Blockung nicht vollständig geladen wurde! * * @return die Menge (meistens eine) aller Fehlermeldungen. */ getFehlermeldungen(): List; /** * Liefert den zugehörigen Daten-Manager für diesen Ergebnis-Manager. * * @return den zugehörigen Daten-Manager für diesen Ergebnis-Manager. */ getParent(): GostBlockungsdatenManager; /** * Liefert eine Güte eines Bewertungskriteriums im Bereich [0;1], mit 0=optimal. * * @param value der Wert des Bewertungskriteriums * * @return die Güte des Bewertungskriteriums im Bereich [0;1], mit 0=optimal. */ private static getOfBewertungFarbcodeStatic; /** * Liefert den Wert des 1. Bewertungskriteriums. Darin enthalten sind:
* - Die Anzahl der Regelverletzungen.
* - Die Anzahl der nicht genügend gesetzten Kurse.
* * @param bewertung die Bewertung vom Ergebnis * * @return Den Wert des 1. Bewertungskriteriums. */ static getOfBewertung1WertStatic(bewertung: GostBlockungsergebnisBewertung): number; /** * Liefert den Wert des 1. Bewertungskriteriums. Darin enthalten sind:
* - Die Anzahl der Regelverletzungen.
* - Die Anzahl der nicht genügend gesetzten Kurse.
* * @return Den Wert des 1. Bewertungskriteriums. */ getOfBewertung1Wert(): number; /** * Liefert eine Güte des 1. Bewertungskriteriums im Bereich [0;1], mit 0=optimal. Darin enthalten sind:
* - Die Anzahl der Regelverletzungen.
* - Die Anzahl der nicht genügend gesetzten Kurse.
* * @param bewertung die Bewertung vom Ergebnis * * @return Eine Güte des 1. Bewertungskriteriums im Bereich [0;1], mit 0=optimal. */ private static getOfBewertung1FarbcodeStatic; /** * Liefert eine Güte des 1. Bewertungskriteriums im Bereich [0;1], mit 0=optimal. Darin enthalten sind:
* - Die Anzahl der Regelverletzungen.
* - Die Anzahl der nicht genügend gesetzten Kurse.
* * @return Eine Güte des 1. Bewertungskriteriums im Bereich [0;1], mit 0=optimal. */ getOfBewertung1Farbcode(): number; /** * Liefert den Wert des 2. Bewertungskriteriums. Darin enthalten sind:
* - Die Anzahl der nicht zugeordneten Schülerfachwahlen.
* - Die Anzahl der Schülerkollisionen.
* * @param bewertung die Bewertung vom Ergebnis * * @return Den Wert des 2. Bewertungskriteriums. */ private static getOfBewertung2WertStatic; /** * Liefert den Wert des 2. Bewertungskriteriums. Darin enthalten sind:
* - Die Anzahl der nicht zugeordneten Schülerfachwahlen.
* - Die Anzahl der Schülerkollisionen.
* * @return Den Wert des 2. Bewertungskriteriums. */ getOfBewertung2Wert(): number; /** * Liefert eine Güte des 2. Bewertungskriteriums im Bereich [0;1], mit 0=optimal. Darin enthalten sind:
* - Die Anzahl der nicht zugeordneten Schülerfachwahlen.
* - Die Anzahl der Schülerkollisionen.
* * @param bewertung die Bewertung vom Ergebnis * * @return Eine Güte des 2. Bewertungskriteriums im Bereich [0;1], mit 0=optimal. */ private static getOfBewertung2FarbcodeStatic; /** * Liefert eine Güte des 2. Bewertungskriteriums im Bereich [0;1], mit 0=optimal. Darin enthalten sind:
* - Die Anzahl der nicht zugeordneten Schülerfachwahlen.
* - Die Anzahl der Schülerkollisionen.
* * @return Eine Güte des 2. Bewertungskriteriums im Bereich [0;1], mit 0=optimal. */ getOfBewertung2Farbcode(): number; /** * Liefert den Wert des 3. Bewertungskriteriums (Kursdifferenz). * * @return den Wert des 3. Bewertungskriteriums (Kursdifferenz). */ getOfBewertung3Wert(): number; /** * Liefert eine Güte des 3. Bewertungskriteriums (Kursdifferenz) im Bereich [0;1], mit 0=optimal. * * @return eine Güte des 3. Bewertungskriteriums (Kursdifferenz) im Bereich [0;1], mit 0=optimal. */ getOfBewertung3Farbcode(): number; /** * Liefert den Wert des 3. Bewertungskriteriums (Kursdifferenz) nur bezogen auf die Kursart LK. * * @return den Wert des 3. Bewertungskriteriums (Kursdifferenz) nur bezogen auf die Kursart LK. */ getOfBewertung3Wert_nur_LK(): number; /** * Liefert eine Güte des 3. Bewertungskriteriums (Kursdifferenz, nur LK) im Bereich [0;1], mit 0=optimal. * * @return eine Güte des 3. Bewertungskriteriums (Kursdifferenz, nur LK) im Bereich [0;1], mit 0=optimal. */ getOfBewertung3Farbcode_nur_LK(): number; /** * Liefert den Wert des 3. Bewertungskriteriums (Kursdifferenz) nur bezogen auf die Kursart GK. * * @return den Wert des 3. Bewertungskriteriums (Kursdifferenz) nur bezogen auf die Kursart GK. */ getOfBewertung3Wert_nur_GK(): number; /** * Liefert eine Güte des 3. Bewertungskriteriums (Kursdifferenz, nur GK) im Bereich [0;1], mit 0=optimal. * * @return eine Güte des 3. Bewertungskriteriums (Kursdifferenz, nur GK) im Bereich [0;1], mit 0=optimal. */ getOfBewertung3Farbcode_nur_GK(): number; /** * Liefert den Wert des 3. Bewertungskriteriums (Kursdifferenz) nur bezogen auf Kursarten die nicht LK oder GK sind. * * @return den Wert des 3. Bewertungskriteriums (Kursdifferenz) nur bezogen auf Kursarten die nicht LK oder GK sind. */ getOfBewertung3Wert_nur_REST(): number; /** * Liefert eine Güte des 3. Bewertungskriteriums (Kursdifferenz, alles außer LK und GK) im Bereich [0;1], mit 0=optimal. * * @return eine Güte des 3. Bewertungskriteriums (Kursdifferenz, alles außer LK und GK) im Bereich [0;1], mit 0=optimal. */ getOfBewertung3Farbcode_nur_REST(): number; /** * Liefert den Wert des 3. Bewertungskriteriums als Histogramm (Array der Länge 10). *
Darin enthalten sind: *
- Das Histogramm der ersten 10 Kursdifferenzen (Kursdifferenz 0 bis Kursdifferenz 9). *
- Das Histogramm hat eine garantierte Länge von 10. * * @param bewertung Die Bewertung vom Ergebnis. * * @return den Wert des 3. Bewertungskriteriums als Histogramm (Array der Länge 10). */ private static getOfBewertung3HistogrammStatic; /** * Liefert den Wert des 3. Bewertungskriteriums als Histogramm (Array der Länge 10). *
- Das Histogramm der ersten 10 Kursdifferenzen (Kursdifferenz 0 bis Kursdifferenz 9). *
- Das Histogramm hat eine garantierte Länge von 10. * * @return den Wert des 3. Bewertungskriteriums als Histogramm (Array der Länge 10). */ private getOfBewertung3Histogramm; /** * Liefert den Wert des 4. Bewertungskriteriums. Darin enthalten sind:
* - Die Anzahl an Kursen mit gleicher Fachart (Fach, Kursart) in einer Schiene.
* Dieses Bewertungskriterium wird teilweise absichtlich verletzt, wenn z. B. Schienen erzeugt werden mit dem selben * Fach (Sport-Schiene). Nichtsdestotrotz möchte man häufig nicht die selben Fächer in einer Schiene, aufgrund von * Raumkapazitäten (Fachräume). * * @param bewertung die Bewertung vom Ergebnis * * @return Den Wert des 4. Bewertungskriteriums. */ private static getOfBewertung4WertStatic; /** * Liefert den Wert des 4. Bewertungskriteriums. Darin enthalten sind:
* - Die Anzahl an Kursen mit gleicher Fachart (Fach, Kursart) in einer Schiene.
* Dieses Bewertungskriterium wird teilweise absichtlich verletzt, wenn z. B. Schienen erzeugt werden mit dem selben * Fach (Sport-Schiene). Nichtsdestotrotz möchte man häufig nicht die selben Fächer in einer Schiene, aufgrund von * Raumkapazitäten (Fachräume). * * @return Den Wert des 4. Bewertungskriteriums. */ getOfBewertung4Wert(): number; /** * Liefert eine Güte des 4. Bewertungskriteriums im Bereich [0;1], mit 0=optimal. Darin enthalten sind:
* - Die Anzahl an Kursen mit gleicher Fachart (Fach, Kursart) in einer Schiene.
* Dieses Bewertungskriterium wird teilweise absichtlich verletzt, wenn z. B. Schienen erzeugt werden mit dem selben * Fach (Sport-Schiene). Nichtsdestotrotz möchte man häufig nicht die selben Fächer in einer Schiene, aufgrund von * Raumkapazitäten (Fachräume). * * @param bewertung die Bewertung vom Ergebnis * * @return Eine Güte des 4. Bewertungskriteriums im Bereich [0;1], mit 0=optimal. */ private static getOfBewertung4FarbcodeStatic; /** * Liefert eine Güte des 4. Bewertungskriteriums im Bereich [0;1], mit 0=optimal. Darin enthalten sind:
* - Die Anzahl an Kursen mit gleicher Fachart (Fach, Kursart) in einer Schiene.
* Dieses Bewertungskriterium wird teilweise absichtlich verletzt, wenn z. B. Schienen erzeugt werden mit dem selben * Fach (Sport-Schiene). Nichtsdestotrotz möchte man häufig nicht die selben Fächer in einer Schiene, aufgrund von * Raumkapazitäten (Fachräume). * * @return Eine Güte des 4. Bewertungskriteriums im Bereich [0;1], mit 0=optimal. */ getOfBewertung4Farbcode(): number; /** * Liefert die Anzahl nicht vollständig verteilter Kurse.
* Ein Multikurse der über mehrere Schienen geht und gar nicht zugeteilt wurde, wird mehrfach gezählt. * * @return die Anzahl nicht vollständig verteilter Kurse. */ getOfBewertungAnzahlNichtZugeordneterKurse(): number; /** * Liefert die Anzahl an Fachwahlen, die nicht zugeordnet wurden. * * @return die Anzahl an Fachwahlen, die nicht zugeordnet wurden. */ getOfBewertungAnzahlNichtzugeordneterFachwahlen(): number; /** * Ermittelt das {@link GostFach} für die angegebene ID. Delegiert den Aufruf an den Fächer-Manager des Eltern-Objektes {@link GostBlockungsdatenManager}.
* Wirft eine {@link DeveloperNotificationException} falls die ID unbekannt ist. * * @param idFach Die Datenbank-ID des Faches. * * @return Das {@link GostFach}-Objekt. * @throws DeveloperNotificationException falls die ID unbekannt ist. */ getFach(idFach: number): GostFach; /** * Liefert die Menge aller Kurse mit dem angegebenen Fach-ID.
* * @param idFach Die Datenbank-ID des Faches. * * @return die Menge aller Kurse mit dem angegebenen Fach-ID. * @throws DeveloperNotificationException falls die Fach-ID unbekannt ist. */ getOfFachKursmenge(idFach: number): List; /** * Liefert die Kursmenge, die zur Fachart gehört. Die Fachart-ID wird berechnet über: {@link GostKursart#getFachartID(long, int)}.
*
Hinweis: Die Kursmenge pro Fachart ist sortiert nach {@link #kursSetSortierungFachKursartNummer()} oder {@link #kursSetSortierungKursartFachNummer()}. *
Hinweis: Wirft eine {@link DeveloperNotificationException} falls die Fachart-ID unbekannt ist. * * @param idFachart Die Fachart-ID wird berechnet über: {@link GostKursart#getFachartID(long, int)}. * * @return die Kursmenge, die zur Fachart gehört. * @throws DeveloperNotificationException falls die Fachart-ID unbekannt ist. */ getOfFachartKursmenge(idFachart: number): List; /** * Liefert die Kursdifferenz der Fachart und beachtet dabei Dummy-SuS von Kursen. * Die Fachart-ID wird berechnet über: {@link GostKursart#getFachartID(long, int)}. * Die Methode beachtet auch Kurse mit Dummy-SuS.
* Wirft eine {@link DeveloperNotificationException} falls die Fachart-ID unbekannt ist. * * @param idFachart Die Fachart-ID wird berechnet über: {@link GostKursart#getFachartID(long, int)}. * * @return die Kursdifferenz der Fachart und beachtet dabei Dummy-SuS von Kursen. * @throws DeveloperNotificationException falls die Fachart-ID unbekannt ist. */ getOfFachartKursdifferenz(idFachart: number): number; /** * Liefert die Kursdifferenz der Fachart, übergeben als (Fach, Kursart). * Die Methode beachtet auch Kurse mit Dummy-SuS.
* Wirft eine {@link DeveloperNotificationException} falls die Fachart-ID unbekannt ist. * * @param idFach Die Datenbank-ID des Faches. * @param idKursart Die ID der Kursart. * * @return die Kursdifferenz der Fachart, übergeben als (Fach, Kursart). * @throws DeveloperNotificationException falls die Fachart-ID unbekannt ist. */ getOfFachOfKursartKursdifferenz(idFach: number, idKursart: number): number; /** * Liefert den Namen der Fachart, z. B. D-LK. * * @param idFachart Die ID der Fachart. * * @return den Namen der Fachart, z. B. D-LK. */ private getOfFachartName; /** * Liefert die Menge aller Facharten (Fach + Kursart) sortiert nach der aktuellen Sortiervariante. *
Hinweis: Die Sortierung lässt sich mit {@link #kursSetSortierungFachKursartNummer()} und {@link #kursSetSortierungKursartFachNummer()} ändern. * * @return die Menge aller Facharten (Fach + Kursart) sortiert nach der aktuellen Sortiervariante. */ private getOfFachartMengeSortiert; /** * Ändert die aktuelle Sortierung von Facharten und Kursen. *
Hinweis: Sortiert zuerst nach LK/GK, dann nach der Fachsortierung, zuletzt nach der Kursnummer. */ kursSetSortierungKursartFachNummer(): void; /** * Ändert die aktuelle Sortierung von Facharten und Kursen. *
Hinweis: Sortiert zuerst nach der Fachsortierung, dann nach LK/GK, zuletzt nach der Kursnummer. */ kursSetSortierungFachKursartNummer(): void; /** * Liefert das {@link Schueler}-Objekt zur übergebenen ID.
* Delegiert den Aufruf an das Eltern-Objekt {@link GostBlockungsdatenManager}. * * @param idSchueler Die Datenbank-ID des Schülers. * * @return das {@link Schueler}-Objekt zur übergebenen ID. * @throws DeveloperNotificationException falls die Schüler-ID unbekannt ist. */ private getSchuelerG; /** * Liefert einen Schüler-String im Format: 'Nachname, Vorname'. * * @param idSchueler Die Datenbank-ID des Schülers. * * @return einen Schüler-String im Format: 'Nachname, Vorname'. */ getOfSchuelerNameVorname(idSchueler: number): string; /** * Liefert die Menge aller Kurse, die dem Schüler zugeordnet sind.
* Wirft eine Exception, wenn der ID kein Schüler zugeordnet ist. * * @param idSchueler Die Datenbank-ID des Schülers. * * @return Die Menge aller Kurse, die dem Schüler zugeordnet sind. */ getOfSchuelerKursmenge(idSchueler: number): JavaSet; /** * Liefert die sortierte Menge aller Kurse, die dem Schüler zugeordnet sind. *
Hinweis: Die Sortierung wird mit {@link #kursSetSortierungFachKursartNummer()} und {@link #kursSetSortierungKursartFachNummer()} definiert. *
Wirft eine Exception, wenn der ID kein Schüler zugeordnet ist. * * @param idSchueler Die Datenbank-ID des Schülers. * * @return die sortierte Menge aller Kurse, die dem Schüler zugeordnet sind. */ private getOfSchuelerKursmengeSortiert; /** * Liefert die Menge aller Kurse des Schülers mit Kollisionen. * * @param idSchueler Die Datenbank-ID des Schülers. * * @return Die Menge aller Kurse des Schülers mit Kollisionen. */ getOfSchuelerKursmengeMitKollisionen(idSchueler: number): JavaSet; /** * Liefert die Menge aller Fachwahlen eines Schülers, die keinem Kurs zugeordnet sind. * * @param idSchueler Die Datenbank-ID des Schülers. * * @return die Menge aller Fachwahlen eines Schülers, die keinem Kurs zugeordnet sind. */ getOfSchuelerFachwahlmengeOhneKurszuordnung(idSchueler: number): List; /** * Liefert TRUE, falls der Schüler mindestens eine Nichtwahl hat. * * @param idSchueler Die Datenbank-ID des Schülers. * * @return TRUE, falls der Schüler mindestens eine Nichtwahl hat. */ getOfSchuelerHatNichtwahl(idSchueler: number): boolean; /** * Liefert TRUE, falls der übergebene Schüler die entsprechende Fachwahl (Fach + Kursart) hat. * * @param idSchueler Die Datenbank.ID des Schülers. * @param idFach Die Datenbank-ID des Faches der Fachwahl des Schülers. * @param idKursart Die ID der Kursart der Fachwahl des Schülers. * * @return TRUE, falls der übergebene Schüler die entsprechende Fachwahl (Fach + Kursart) hat. */ getOfSchuelerHatFachwahl(idSchueler: number, idFach: number, idKursart: number): boolean; /** * Liefert TRUE, falls der übergebene Schüler das entsprechende Fach (unabhängig von der Kursart) gewählt hat. * * @param idSchueler Die Datenbank.ID des Schülers. * @param idFach Die Datenbank-ID des Faches der Fachwahl des Schülers. * * @return TRUE, falls der übergebene Schüler das entsprechende Fach (unabhängig von der Kursart) gewählt hat. */ private getOfSchuelerHatFach; /** * Liefert TRUE, falls der Schüler mindestens eine Kollision hat.
* Ein Schüler, der N>1 Mal in einer Schiene ist, erzeugt N-1 Kollisionen. * * @param idSchueler Die Datenbank-ID des Schülers. * * @return TRUE, falls der Schüler mindestens eine Kollision hat. */ getOfSchuelerHatKollision(idSchueler: number): boolean; /** * Liefert die Anzahl der Schüler, die den Filterkriterien entsprechen. * * @param idKurs falls >= 0, werden Schüler des Kurses herausgefiltert. * @param idFach falls >= 0, werden Schüler mit diesem Fach herausgefiltert. * @param idKursart falls >= 0 und idFach >= 0, werden Schüler mit dieser Fach/Kursart Kombination herausgefiltert. * @param konfliktTyp falls 1 = mit Kollisionen, 2 = mit Nichtwahlen, 3 = mit Kollisionen und Nichtwahlen, sonst alle Schüler. * @param subString falls |pSubString| > 0 werden Schüler deren Vor- oder Nachname diesen String enthält herausgefiltert. * @param geschlecht falls != null, werden die Schüler mit diesem {@link Geschlecht} herausgefiltert. * @param schriftlichkeit falls != null, werden die Schüler mit dieser {@link GostSchriftlichkeit} herausgefiltert (isKurs oder idFach/idKursart müssen definiert sein). * * @return die Anzahl der Schüler, die den Filterkriterien entsprechen. */ getOfSchuelerAnzahlGefiltert(idKurs: number, idFach: number, idKursart: number, konfliktTyp: number, subString: string, geschlecht: Geschlecht | null, schriftlichkeit: GostSchriftlichkeit | null): number; /** * Liefert die Menge der zugeordneten Kurse des Schülers in der Schiene. * * @param idSchueler Die Datenbank-ID des Schülers. * @param idSchiene Die Datenbank-ID der Schiene. * * @return die Menge der zugeordneten Kurse des Schülers in der Schiene. */ private getOfSchuelerOfSchieneKursmenge; /** * Liefert TRUE, falls der Schüler in der Schiene mehr als einen Kurs belegt hat. * * @param idSchueler Die Datenbank-ID des Schülers. * @param idSchiene Die Datenbank-ID der Schiene. * * @return TRUE, falls der Schüler in der Schiene mehr als einen Kurs belegt hat. */ getOfSchuelerOfSchieneHatKollision(idSchueler: number, idSchiene: number): boolean; /** * Liefert die zu (idSchueler, idFach) die jeweilige Kursart.
* * @param idSchueler Die Datenbank-ID des Schülers. * @param idFach Die Datenbank-ID des Faches. * * @return Die zu (idSchueler, idFach) die jeweilige Kursart. */ getOfSchuelerOfFachKursart(idSchueler: number, idFach: number): GostKursart; /** * Liefert den zu (idSchueler, idFach) passenden Kurs oder NULL. * * @param idSchueler Die Datenbank-ID des Schülers. * @param idFach Die Datenbank-ID des Faches. * * @return den zu (idSchueler, idFach) passenden Kurs oder NULL. */ getOfSchuelerOfFachZugeordneterKurs(idSchueler: number, idFach: number): GostBlockungsergebnisKurs | null; /** * Liefert ein {@link SchuelerblockungOutput}-Objekt, welches für den Schüler eine Neuzuordnung der Kurse vorschlägt. * * @param idSchueler Die ID des {@link Schueler}-Objekts. * @param fixiereBelegteKurse falls TRUE, werden alle Kurse fixiert, in denen der Schüler momentan ist. * * @return ein {@link SchuelerblockungOutput}-Objekt, welches für den Schüler eine Neuzuordnung der Kurse vorschlägt. */ private getOfSchuelerNeuzuordnungMitFixierung; private getOfSchuelerNeuzuordnungErzeugeKurs; /** * Liefert ein {@link GostBlockungsergebnisKursSchuelerZuordnungUpdate}-Objekt, welches für den Schüler eine berechnete Neuzuordnung der Kurse beinhaltet. * * @param idSchueler Die ID des {@link Schueler}-Objekts. * @param fixiereBelegteKurse falls TRUE, werden alle Kurse fixiert, in denen der Schüler momentan ist. * * @return ein {@link SchuelerblockungOutput}-Objekt, welches für den Schüler eine Neuzuordnung der Kurse beinhaltet. */ getOfSchuelerNeuzuordnung(idSchueler: number, fixiereBelegteKurse: boolean): GostBlockungsergebnisKursSchuelerZuordnungUpdate; /** * Liefert TRUE, falls der Schüler dem Kurs zugeordnet ist. * * @param idSchueler Die Datenbank-ID des Schülers. * @param idKurs Die Datenbank-ID des Kurses. * * @return TRUE, falls der Schüler dem Kurs zugeordnet ist. */ getOfSchuelerOfKursIstZugeordnet(idSchueler: number, idKurs: number): boolean; /** * Liefert TRUE, falls der Schüler dem Kurs zugeordnet ist, aber keine entsprechende Fachwahl hat. * * @param idSchueler Die Datenbank-ID des Schülers. * @param idKurs Die Datenbank-ID des Kurses. * * @return TRUE, falls der Schüler dem Kurs zugeordnet ist, aber keine entsprechende Fachwahl hat. */ getOfSchuelerOfKursIstUngueltig(idSchueler: number, idKurs: number): boolean; /** * Liefert TRUE, falls der Schüler im Kurs via Regel fixiert sein soll. * * @param idSchueler Die Datenbank-ID des Schülers. * @param idKurs Die Datenbank-ID des Kurses. * * @return TRUE, falls der Schüler im Kurs via Regel fixiert sein soll. */ private getOfSchuelerOfKursIstFixiert; /** * Liefert TRUE, falls der Schüler den Kurs als LK gewählt hat. * * @param idSchueler Die Datenbank-ID des Schülers. * @param idKurs Die Datenbank-ID des Kurses. * * @return TRUE, falls der Schüler den Kurs als LK gewählt hat. */ private getOfSchuelerOfKursIstLK; /** * Liefert TRUE, falls der Schüler den Kurs als AB3 gewählt hat. * * @param idSchueler Die Datenbank-ID des Schülers. * @param idKurs Die Datenbank-ID des Kurses. * * @return TRUE, falls der Schüler den Kurs als AB3 gewählt hat. */ private getOfSchuelerOfKursIstAB3; /** * Liefert TRUE, falls der Schüler den Kurs als LK oder AB3 gewählt hat. * * @param idSchueler Die Datenbank-ID des Schülers. * @param idKurs Die Datenbank-ID des Kurses. * * @return TRUE, falls der Schüler den Kurs als LK oder AB3 gewählt hat. */ private getOfSchuelerOfKursIstLKoderAB3; /** * Liefert TRUE, falls der Schüler den Kurs als AB4 gewählt hat. * * @param idSchueler Die Datenbank-ID des Schülers. * @param idKurs Die Datenbank-ID des Kurses. * * @return TRUE, falls der Schüler den Kurs als AB4 gewählt hat. */ private getOfSchuelerOfKursIstAB4; /** * Liefert TRUE, falls der Schüler den Kurs als Abiturfach gewählt hat. * * @param idSchueler Die Datenbank-ID des Schülers. * @param idKurs Die Datenbank-ID des Kurses. * * @return TRUE, falls der Schüler den Kurs als Abiturfach gewählt hat. */ private getOfSchuelerOfKursIstAbiturfach; /** * Liefert den Wert (1-4) des Abiturfaches oder 0, falls es kein Abiturfach ist. * * @param idSchueler Die Datenbank-ID des Schülers. * @param idKurs Die Datenbank-ID des Kurses. * * @return den Wert (1-4) des Abiturfaches oder 0, falls es kein Abiturfach ist. */ private getOfSchuelerOfKursAbiturfach; /** * Liefert TRUE, falls der Schüler den Kurs als Abiturfach gewählt hat. * * @param idSchueler Die Datenbank-ID des Schülers. * @param idKurs Die Datenbank-ID des Kurses. * * @return TRUE, falls der Schüler den Kurs als Abiturfach gewählt hat. */ private getOfSchuelerOfKursIstSchriftlich; /** * Liefert TRUE, falls der Schüler im Kurs via Regel gesperrt sein soll. * * @param idSchueler Die Datenbank-ID des Schülers. * @param idKurs Die Datenbank-ID des Kurses. * * @return TRUE, falls der Schüler im Kurs via Regel gesperrt sein soll. */ getOfSchuelerOfKursIstGesperrt(idSchueler: number, idKurs: number): boolean; /** * Liefert TRUE, falls der Sub-String im Nachnamen oder im Vornamen des Schülers vorkommt (Groß- und Kleinschreibung wird dabei ignoriert). * * @param idSchueler Die Datenbank-ID des Schülers. * @param subString Der zu suchende Sub-String. * * @return TRUE, falls der Sub-String im Nachnamen oder im Vornamen des Schülers vorkommt (Groß- und Kleinschreibung wird dabei ignoriert). */ private getOfSchuelerHatImNamenSubstring; /** * Liefert das {@link Geschlecht} des Schülers.
* Wirft eine Exception, falls das Enum {@link Geschlecht} nicht definiert ist. * * @param idSchueler Die Datenbank-ID des Schülers. * * @return das {@link Geschlecht} des Schülers. * @throws DeveloperNotificationException falls das Enum {@link Geschlecht} nicht definiert ist. */ private getOfSchuelerGeschlechtOrException; /** * Liefert TRUE, falls der Schüler den Status {@link SchuelerStatus#EXTERN} hat. * * @param idSchueler Die Datenbank-ID des Schülers. * * @return TRUE, falls der Schüler den Status {@link SchuelerStatus#EXTERN} hat. */ private getOfSchuelerHatStatusExtern; /** * Liefert die Fachwahl des Schüler passend zu den Kurs. * * @param idSchueler Die Datenbank-ID des Schülers. * @param idKurs Die Datenbank-ID des Kurses. * * @return die Fachwahl des Schüler passend zu den Kurs. */ getOfSchuelerOfKursFachwahl(idSchueler: number, idKurs: number): GostFachwahl; /** * Liefert die Fachwahl des Schüler passend zum Fach. * * @param idSchueler Die Datenbank-ID des Schülers. * @param idFach Die Datenbank-ID des Faches. * * @return die Fachwahl des Schüler passend zum Fach. */ private getOfSchuelerOfFachFachwahl; /** * Liefert eine nach Kriterien gefilterte Menge aller Schüler. * * @param idKurs falls >= 0, werden Schüler des Kurses herausgefiltert. * @param idFach falls >= 0, werden Schüler mit diesem Fach herausgefiltert. * @param idKursart falls >= 0 und idFach >= 0, werden Schüler mit dieser Fach/Kursart Kombination herausgefiltert. * @param konfliktTyp falls 1 = mit Kollisionen, 2 = mit Nichtwahlen, 3 = mit Kollisionen und Nichtwahlen, sonst alle Schüler. * @param subString falls |pSubString| > 0 werden Schüler deren Vor- oder Nachname diesen String enthält herausgefiltert. * * @return eine nach Kriterien gefilterte Menge aller Schüler. */ getOfSchuelerMengeGefiltert(idKurs: number, idFach: number, idKursart: number, konfliktTyp: number, subString: string): List; /** * Liefert eine Liste aller Schüler, deren Abiturjahrgang nicht dem der Blockung entspricht. *
Hinweis: Das kann passieren, wenn nach der Erstellung eines Blockungsergebnisses, ein Schüler nicht versetzt wird. * * @return eine Liste aller Schüler, deren Abiturjahrgang nicht dem der Blockung entspricht. */ getOfSchuelerMengeMitAbweichendemAbijahrgang(): List; /** * Liefert TRUE, falls der Schüler alle definierten Kriterien erfüllt. * * @param idSchueler Die Datenbank-ID des Schülers. * @param idKurs Falls >= 0, muss der Schüler in dem Kurs sein. * @param idFach Falls >= 0, muss der Schüler das Fach haben. * @param idKursart Falls >= 0, und idFach >= muss der Schüler auch die zugehörige Kursart haben. * @param konfliktTyp Falls > 0 muss der Schüler "1=Kollisionen", "2=Nichtwahlen" oder "3= Kollisionen und Nichtwahlen" haben. * @param subString Falls length() > 0 muss der Schüler den Substring im Vor- oder Nachnamen haben. * @param geschlecht Falls != null, muss der Schüler das definierte Geschlecht haben. * @param schriftlichkeit Falls != null, muss der Schüler das definierte {@link GostSchriftlichkeit} haben. * * @return TRUE, falls der Schüler alle definierten Kriterien erfüllt. */ private getOfSchuelerErfuelltKriterien; /** * Liefert die Map, welche einer Schüler-ID die Menge aller ungültigen Kurse zuordnet.
* Hinweis 1: Hat ein Schüler keine ungültige Kurse, dann gibt es die ID nicht.
* Hinweis 2: Gibt es keine ungültigen Wahlen, so ist die Map leer.
* * @return Die Map, welche einer Schüler-ID die Menge aller ungültigen Kurse zuordnet. */ getOfSchuelerMapIDzuUngueltigeKurse(): JavaMap>; /** * Liefert TRUE, falls der Schüler in einer Schiene des Kurses eine Kollision hat.
* Die Methode geht davon aus, dass der Schüler dem Kurs zugeordnet ist. * * @param idSchueler Die Datenbank-ID des Schülers. * @param idKurs Die Datenbank-ID des Kurses. * * @return TRUE, falls der Schüler in einer Schiene des Kurses eine Kollision hat. */ getOfSchuelerOfKursHatKollision(idSchueler: number, idKurs: number): boolean; /** * Liefert TRUE, falls beide Schüler bezogen auf das Fach gemeinsam im selben Kurs sind. * * @param idSchueler1 Die Datenbank-ID des 1. Schülers. * @param idSchueler2 Die Datenbank-ID des 2. Schülers. * @param idFach Die Datenbank-ID des Faches * * @return TRUE, falls beide Schüler im bezogen auf das Fach gemeinsam im selben Kurs sind. */ getOfSchuelerIstZusammenMitSchuelerInFach(idSchueler1: number, idSchueler2: number, idFach: number): boolean; /** * Liefert die Anzahl an SuS, die mit dem Schüler im Kurs sein wollen. * * @param idS1 Die ID des {@link Schueler}-Objekts. * @param idKurs Die ID des {@link StundenplanKurs}-Objekts. * * @return die Anzahl an SuS, die mit dem Schüler im Kurs sein wollen. */ getOfSchuelerOfKursAnzahlZusammenWuensche(idS1: number, idKurs: number): number; /** * Liefert die Anzahl an SuS, die mit dem Schüler nicht im Kurs sein sollen. * * @param idS1 Die ID des {@link Schueler}-Objekts. * @param idKurs Die ID des {@link StundenplanKurs}-Objekts. * * @return die Anzahl an SuS, die mit dem Schüler nicht im Kurs sein sollen. */ getOfSchuelerOfKursAnzahlVerbotenWuensche(idS1: number, idKurs: number): number; /** * Liefert den {@link GostBlockungKurs} zur übergebenen ID.
* Delegiert den Aufruf an das Eltern-Objekt {@link GostBlockungsdatenManager}. * Wirft eine DeveloperNotificationException, falls die ID unbekannt ist. * * @param idKurs Die Datenbank-ID des Kurses. * * @return den {@link GostBlockungKurs} zur übergebenen ID. * @throws DeveloperNotificationException falls die ID unbekannt ist. */ getKursG(idKurs: number): GostBlockungKurs; /** * Liefert den {@link GostBlockungsergebnisKurs} zur übergebenen ID.
* Wirft eine DeveloperNotificationException, falls die ID unbekannt ist. * * @param idKurs Die Datenbank-ID des Kurses. * * @return den {@link GostBlockungsergebnisKurs} zur übergebenen ID. * @throws DeveloperNotificationException falls die ID unbekannt ist. */ getKursE(idKurs: number): GostBlockungsergebnisKurs; /** * Gibt die Menge der {@link GostBlockungsergebnisKurs} zurück. * * @return die Menge der {@link GostBlockungsergebnisKurs} */ getKursmenge(): List; /** * Liefert den Namen des Kurses, erzeugt aus Fach, der Kursart und der Nummer, beispielsweise D-GK1. * * @param idKurs Die Datenbank-ID des Kurses. * * @return den Namen des Kurses, erzeugt aus Fach, der Kursart und der Nummer, beispielsweise D-GK1. */ getOfKursName(idKurs: number): string; /** * Liefert TRUE, falls der Kurs der Schiene zugeordnet ist. * * @param idKurs Die Datenbank-ID des Kurses. * @param idSchiene Die Datenbank-ID der Schiene. * * @return TRUE, falls der Kurs der Schiene zugeordnet ist. */ getOfKursOfSchieneIstZugeordnet(idKurs: number, idSchiene: number): boolean; /** * Liefert TRUE, falls der Kurs der Schiene mit der Nummer zugeordnet ist. * * @param idKurs Die Datenbank-ID des Kurses. * @param schienenNr Die Nummer der Schiene * * @return TRUE, falls der Kurs der Schiene mit der Nummer zugeordnet ist. */ private getOfKursOfSchienenNrIstZugeordnet; /** * Liefert TRUE, falls der Kurs in der Schiene fixiert ist. * * @param idKurs Die Datenbank-ID des Kurses. * @param idSchiene Die Datenbank-ID der Schiene. * * @return TRUE, falls der Kurs in der Schiene fixiert ist. */ private getOfKursOfSchieneIstFixiert; /** * Liefert zur Kurs-ID die zugehörige Menge aller Schüler-IDs.
* Wirft eine Exception, falls der ID kein Kurs zugeordnet ist. * * @param idKurs Die Datenbank-ID des Kurses. * * @return zur Kurs-ID die zugehörige Menge aller Schüler-IDs. * @throws DeveloperNotificationException falls der ID kein Kurs zugeordnet ist. */ private getOfKursSchuelerIDmenge; /** * Liefert die Menge aller Schüler-Objekte des Kurses. * * @param idKurs Die Datenbank-ID des Kurses. * * @return die Menge aller Schüler-Objekte des Kurses. */ getOfKursSchuelermenge(idKurs: number): List; /** * Liefert die Schienenmenge des Kurses.
* Wirft eine Exception, falls der ID kein Kurs zugeordnet ist. * * @param idKurs Die Datenbank-ID des Kurses. * * @return die Schienenmenge des Kurses. * @throws DeveloperNotificationException falls der ID kein Kurs zugeordnet ist. */ getOfKursSchienenmenge(idKurs: number): JavaSet; /** * Liefert ein Array aller Schienen-Nummern des Kurses. * * @param idKurs Die Datenbank-ID des Kurses. * * @return ein Array aller Schienen-Nummern des Kurses. */ getOfKursSchienenNummern(idKurs: number): Array; /** * Liefert TRUE, falls der Kurs mindestens eine Kollision hat.
* Definition: Ein Schüler muss in einer Schiene des Kurses eine Kollision haben. * * @param idKurs Die Datenbank-ID des Kurses. * * @return TRUE, falls der Kurs mindestens eine Kollision hat. */ private getOfKursHatKollision; /** * Liefert die Anzahl an Schülern des Kurses mit Kollisionen.
* Kollision: Der Schüler muss in mindestens einer Schiene des Kurses eine Kollision haben. * * @param idKurs Die Datenbank-ID des Kurses. * * @return die Anzahl an Schülern des Kurses mit Kollisionen. */ private getOfKursAnzahlKollisionen; /** * Liefert die Menge aller Schüler-IDs des Kurses mit Kollisionen (in den Schienen des Kurses). * * @param idKursID Die Datenbank-ID des Kurses. * * @return die Menge aller Schüler-IDs des Kurses mit Kollisionen (in den Schienen des Kurses). */ private getOfKursSchuelermengeMitKollisionen; /** * Liefert die Anzahl an Schülern die dem Kurs zugeordnet sind ohne Dummy SuS. * * @param idKurs Die Datenbank-ID des Kurses. * * @return die Anzahl an Schülern die dem Kurs zugeordnet sind ohne Dummy SuS. */ getOfKursAnzahlSchueler(idKurs: number): number; /** * Liefert die Anzahl an Schülern die dem Kurs zugeordnet sind plus potentiell zugeordnete Dummy SuS. * * @param idKurs Die Datenbank-ID des Kurses. * * @return die Anzahl an Schülern die dem Kurs zugeordnet sind plus potentiell zugeordnete Dummy SuS. */ getOfKursAnzahlSchuelerPlusDummy(idKurs: number): number; /** * Liefert die Anzahl an Dummy-SuS des Kurses. Dummy-SuS werden durch die Regel mit dem * Typ {@link GostKursblockungRegelTyp#KURS_MIT_DUMMY_SUS_AUFFUELLEN} einem Kurs zugeordnet. * * @param idKurs Die Datenbank-ID des Kurses. * * @return die Anzahl an Dummy-SuS des Kurses. */ getOfKursAnzahlSchuelerDummy(idKurs: number): number; /** * Liefert die Anzahl externer SuS die dem Kurs zugeordnet sind. * * @param idKurs Die Datenbank-ID des Kurses. * * @return die Anzahl externer SuS die dem Kurs zugeordnet sind. */ getOfKursAnzahlSchuelerExterne(idKurs: number): number; /** * Liefert die Anzahl externer SuS und der Dummy-SuS die dem Kurs zugeordnet sind. * * @param idKurs Die Datenbank-ID des Kurses. * * @return die Anzahl externer SuS und der Dummy-SuS die dem Kurs zugeordnet sind. */ getOfKursAnzahlSchuelerExternePlusDummies(idKurs: number): number; /** * Liefert die Anzahl internen SuS. Das sind alle SuS der Kursliste abzüglich der SuS mit Status "extern". * * @param idKurs Die Datenbank-ID des Kurses. * * @return die Anzahl internen SuS. Das sind alle SuS der Kursliste abzüglich der SuS mit Status "extern". */ getOfKursAnzahlSchuelerInterne(idKurs: number): number; /** * Liefert die Anzahl aller Schüler des Kurses mit Schriftlichkeit {@link GostSchriftlichkeit#SCHRIFTLICH}. * * @param idKurs Die Datenbank-ID des Kurses. * * @return die Anzahl aller Schüler des Kurses mit Schriftlichkeit {@link GostSchriftlichkeit#SCHRIFTLICH}. */ getOfKursAnzahlSchuelerSchriftlich(idKurs: number): number; /** * Liefert die Anzahl an Schienen in denen der Kurs gerade ist. * * @param idKurs Die Datenbank-ID des Kurses. * * @return die Anzahl an Schienen in denen der Kurs gerade ist. */ getOfKursAnzahlSchienenIst(idKurs: number): number; /** * Liefert die Anzahl an Schienen, die der Kurs haben sollte. * * @param idKurs Die Datenbank-ID des Kurses. * * @return die Anzahl an Schienen, die der Kurs haben sollte. */ getOfKursAnzahlSchienenSoll(idKurs: number): number; /** * Liefert die Anzahl an Schülern, die den Kurs mit Abiturfach 1 oder 2 gewählt (also LK) haben. * * @param idKurs Die Datenbank-ID des Kurses. * * @return die Anzahl an Schülern, die den Kurs mit Abiturfach 1 oder 2 gewählt (also LK) haben. */ getOfKursAnzahlSchuelerAbiturLK(idKurs: number): number; /** * Liefert die Anzahl an Schülern, die den Kurs mit Abiturfach 3 gewählt haben. * * @param idKurs Die Datenbank-ID des Kurses. * * @return die Anzahl an Schülern, die den Kurs mit Abiturfach 3 gewählt haben. */ getOfKursAnzahlSchuelerAbitur3(idKurs: number): number; /** * Liefert die Anzahl an Schülern, die den Kurs mit Abiturfach 4 gewählt haben. * * @param idKurs Die Datenbank-ID des Kurses. * * @return die Anzahl an Schülern, die den Kurs mit Abiturfach 4 gewählt haben. */ getOfKursAnzahlSchuelerAbitur4(idKurs: number): number; /** * Liefert die maximale Anzahl an SuS, die in dem Kurs sein dürfen, oder 999 falls es keine Begrenzung gibt. * * @param idKurs Die ID des {@link StundenplanKurs}-Objekts. * * @return die maximale Anzahl an SuS, die in dem Kurs sein dürfen, oder 999 falls es keine Begrenzung gibt. */ getOfKursMaxSuS(idKurs: number): number; /** * Liefert die Menge aller Schüler eines Kurses, die noch nicht fixiert sind. * * @param idKurs Die Datenbank-ID des Kurses. * * @return die Menge aller Schüler eines Kurses, die noch nicht fixiert sind. */ private getOfKursMengeAllerNichtFixiertenSchueler; /** * Liefert die Menge aller Schüler eines Kurses, die noch nicht fixiert sind und den Kurs als Abiturfach (1, 2, 3 oder 4) gewählt haben. * * @param idKurs Die Datenbank-ID des Kurses. * * @return die Menge aller Schüler eines Kurses, die noch nicht fixiert sind und den Kurs als Abiturfach (1, 2, 3 oder 4) gewählt haben. */ private getOfKursMengeAllerNichtFixiertenAbiturSchueler; /** * Liefert die Map, welche jedem Kurs seine Schülermenge zuordnet. * * @return Die Map, welche jedem Kurs seine Schülermenge zuordnet. */ getMappingKursIDSchuelerIDs(): JavaMap>; /** * Liefert die Map, welche jedem Kurs seine Schienenmenge zuordnet. * * @return Die Map, welche jedem Kurs seine Schienenmenge zuordnet. */ getMappingKursIDSchienenmenge(): JavaMap>; /** * Liefert eine Menge aller Kurse mit mindestens einer Kollision. * * @return Eine Menge aller Kurse mit mindestens einer Kollision. */ private getMengeDerKurseMitKollisionen; private static regelGetListeToggleFilteredBetween; /** * Liefert eine Liste von Regeln, welche den Status der Kurs-Schienen-Sperrung in einem Auswahl-Rechteck ändern soll. *
Hinweis: Die Regeln sind vom Typ {@link GostKursblockungRegelTyp#KURS_SPERRE_IN_SCHIENE}. Eine negative ID steht * symbolisch für eine Regel, die noch nicht existiert, andernfalls erhält man eine existierende Regel. Die GUI kann selbst * entscheiden, wie sie mit den Regeln umgeht (toggle, create, delete). * * * @param list Die aktuelle sortierte Liste der GUI. * @param kursA Der erste oder der letzte Kurs der Auswahl. * @param kursB Der erste oder der letzte Kurs der Auswahl. * @param schieneA Die erste oder letzte Schiene der Auswahl. * @param schieneB Die erste oder letzte Schiene der Auswahl. * * @return eine Liste von Regeln, welche den Status der Kurs-Schienen-Sperrung in einem Auswahl-Rechteck ändern soll. */ private regelGetListeToggleSperrung; /** * Liefert eine Liste von Regeln, welche den Status der Kurs-Schienen-Fixierung in einem Auswahl-Rechteck ändern soll. *
Hinweis: Die Regeln sind vom Typ {@link GostKursblockungRegelTyp#KURS_FIXIERE_IN_SCHIENE}. Eine negative ID steht * symbolisch für eine Regel, die noch nicht existiert, andernfalls erhält man eine existierende Regel. Die GUI kann selbst * entscheiden, wie sie mit den Regeln umgeht (toggle, create, delete). * * * @param list Die aktuelle sortierte Liste der GUI. * @param kursA Der erste oder der letzte Kurs der Auswahl. * @param kursB Der erste oder der letzte Kurs der Auswahl. * @param schieneA Die erste oder letzte Schiene der Auswahl. * @param schieneB Die erste oder letzte Schiene der Auswahl. * * @return eine Liste von Regeln, welche den Status der Kurs-Schienen-Fixierung in einem Auswahl-Rechteck ändern soll. */ private regelGetListeToggleKursfixierung; /** * Liefert eine Liste von Regeln, welche den Status der Kurs-Schueler-Fixierung in einem Auswahl-Rechteck ändern soll. *
Hinweis: Die Regeln sind vom Typ {@link GostKursblockungRegelTyp#SCHUELER_FIXIEREN_IN_KURS}. Eine negative ID steht * symbolisch für eine Regel, die noch nicht existiert, andernfalls erhält man eine existierende Regel. Die GUI kann selbst * entscheiden, wie sie mit den Regeln umgeht (toggle, create, delete). *
Hinweis: Wenn ein Multi-Kurs zum Teil im Auswahl-Rechteck liegt, wird der Kurs ebenso beachtet. * * @param list Die aktuelle sortierte Liste der GUI. * @param kursA Der erste oder der letzte Kurs der Auswahl. * @param kursB Der erste oder der letzte Kurs der Auswahl. * @param schieneA Die erste oder letzte Schiene der Auswahl. * @param schieneB Die erste oder letzte Schiene der Auswahl. * * @return eine Liste von Regeln, welche den Status der Kurs-Schueler-Fixierung in einem Auswahl-Rechteck ändern soll. */ private regelGetListeToggleSchuelerfixierung; /** * Liefert die Regel-Menge aller Kurs-Schienen-Fixierungen eines bestimmten Kurses. * * @param idKurs Die Datenbank-ID des Kurses. * * @return die Regel-Menge aller Kurs-Schienen-Fixierungen eines bestimmten Kurses. */ private regelGetMengeAnKursSchienenFixierungenDesKurses; /** * Liefert die Regel-Menge aller Kurs-Schienen-Fixierungen einer bestimmten Kursmenge. * * @param listeDerKursIDs Die Liste aller Kurs-IDs. * * @return die Regel-Menge aller Kurs-Schienen-Fixierungen einer bestimmten Kursmenge. */ private regelGetMengeAnKursSchienenFixierungenDerKurse; /** * Liefert die Regel-Menge aller Schüler-Kurs-Fixierungen des übergebenen Kurses. * * @param idKurs Die Datenbank-ID des Kurses. * * @return die Regel-Menge aller Schüler-Kurs-Fixierungen des übergebenen Kurses. */ private regelGetMengeAllerSchuelerKursFixierungenDesKurses; /** * Liefert die Regel-Menge aller Schüler-Kurs-Fixierungen der übergebenen Kurse. * * @param listeDerKursIDs Die Liste aller Kurs-IDs. * * @return die Regel-Menge aller Schüler-Kurs-Fixierungen der übergebenen Kurse. */ private regelGetMengeAllerSchuelerKursFixierungenDerKurse; /** * Liefert die Map, welche der verletzten Regel-ID (long) die Beschreibung (String) zuordnet. *
Hinweis: Nur verletzte Regel-IDs sind in der KEY-Menge enthalten. * * @return die Map, welche der verletzten Regel-ID (long) die Beschreibung (String) zuordnet. */ regelGetMap_regelID_to_verletzungString(): JavaMap; /** * Liefert die Dummy-Regel-Menge (ID=-1) aller möglichen Kurs-Schienen-Fixierungen. *
Hinweis: Falls ein Kurs bereits fixierte Schienen hat, werden dazu keine Regeln erzeugt. * * @return die Dummy-Regel-Menge (ID=-1) aller möglichen Kurs-Schienen-Fixierungen. */ private regelGetDummyMengeAllerKursSchienenFixierungen; /** * Liefert die Dummy-Regel-Menge (ID=-1) aller Kurs-Schienen-Fixierungen der übergebenen Kurse. *
Hinweis: Falls ein Kurs bereits fixierte Schienen hat, werden dazu keine Regeln erzeugt. * * @param listeDerKursIDs Die Liste aller Kurs-IDs. * * @return die Dummy-Regel-Menge (ID=-1) aller Kurs-Schienen-Fixierungen der übergebenen Kurse. */ private regelGetDummyMengeAnKursSchienenFixierungen; /** * Liefert die Dummy-Regel-Menge (ID=-1) aller möglichen Schüler-Kurs-Fixierungen. *
Hinweis: Falls ein Schüler bereits fixierte Kurse hat, werden dazu keine Regeln erzeugt. * * @return die Dummy-Regel-Menge (ID=-1) aller möglichen Schüler-Kurs-Fixierungen. */ private regelGetDummyMengeAllerSchuelerKursFixierungen; /** * Liefert die Dummy-Regel-Menge (ID=-1) aller möglichen Schüler-Kurs-Fixierungen der Abiturkurse. *
Hinweis: Falls ein Schüler bereits fixierte Kurse hat, werden dazu keine Regeln erzeugt. * * @return die Dummy-Regel-Menge (ID=-1) aller möglichen Schüler-Kurs-Fixierungen der Abiturkurse. */ private regelGetDummyMengeAllerSchuelerAbiturKursFixierungen; /** * Liefert die Dummy-Regel-Menge (ID=-1) aller möglichen Schüler-Kurs-Fixierungen einer bestimmten Kursmenge. *
Hinweis: Falls ein Schüler bereits fixierte Kurse hat, werden dazu keine Regeln erzeugt. * * @param listeDerKursIDs Die Liste aller Kurs-IDs. * * @return die Dummy-Regel-Menge (ID=-1) aller möglichen Schüler-Kurs-Fixierungen einer bestimmten Kursmenge. */ private regelGetDummyMengeAnKursSchuelerFixierungen; /** * Liefert die Dummy-Regel-Menge (ID=-1) aller möglichen Schüler-Kurs-Fixierungen einer bestimmten Kursmenge, welche als Abiturfach gewählt wurden. *
Hinweis: Falls ein Schüler bereits fixierte Kurse hat, werden dazu keine Regeln erzeugt. * * @param listeDerKursIDs Die Liste aller Kurs-IDs. * * @return die Dummy-Regel-Menge (ID=-1) aller möglichen Schüler-Kurs-Fixierungen einer bestimmten Kursmenge, welche als Abiturfach gewählt wurden. */ private regelGetDummyMengeAnAbiturKursSchuelerFixierungen; /** * Liefert einen Tooltip für alle Regelverletzungen der definierten Regeln. * * @return einen Tooltip für alle Regelverletzungen der definierten Regeln. */ regelGetTooltipFuerRegelverletzungen(): string; /** * Liefert einen Tooltip für alle Regelverletzungen der Fächerparallelität. * * @return einen Tooltip für alle Regelverletzungen der Fächerparallelität. */ regelGetTooltipFuerFaecherparallelitaet(): string; /** * Liefert einen Tooltip für alle Wahlkonflikte (Kollisionen und Nichtwahlen) ggf. gekürzt. * * @return einen Tooltip für alle Wahlkonflikte (Kollisionen und Nichtwahlen) ggf. gekürzt. */ regelGetTooltipFuerWahlkonflikte(): string; /** * Liefert einen Tooltip für alle Kursdifferenzen. * * @return einen Tooltip für alle Kursdifferenzen. */ regelGetTooltipFuerKursdifferenzen(): string; private static regelupdateIsEqualPair; private static regelupdateAppend; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Kursart-Schienenmengen-Sperrung zu setzen. *
(1) Wenn ein Kurs der Kursart im Schienen-Bereich liegt und gesperrt ist, wird dies entfernt. *
(2) Wenn ein Kurs der Kursart im Schienen-Bereich liegt und fixiert ist, wird dies entfernt. *
(3a) Wenn die Regel in falscher von/bis-Reihenfolge existiert, wird sie entfernt. *
(3b) Wenn die Regel nicht bereits existiert, wird sie hinzugefügt. * * @param kursart Die Kursart der Kurse für welche diese Regel gilt. * @param schienenNrVon Der Anfangsbereich der Schienen. * @param schienenNrBis Der Endbereich der Schienen. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Kursart-Schienenmengen-Sperrung zu setzen. */ regelupdateCreate_01_KURSART_SPERRE_SCHIENEN_VON_BIS(kursart: number, schienenNrVon: number, schienenNrBis: number): GostBlockungRegelUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Kurs-Schienen-Fixierung einer Rechtecks-Auswahl zu realisieren. *
(1) Wenn der Kurs markiert ist und eine Sperrung hat, wird die Sperrung entfernt. *
(2) Wenn der Kurs markiert ist und keine Fixierung hat, wird eine Fixierung erzeugt. *
(3) Fixierungen außerhalb der Kurslage werden vorsichtshalber gelöscht. * * @param setKursID Die Menge aller Kurs-IDs. * @param setSchienenNr Die Menge aller markierten Schienen-IDs. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Kurs-Schienen-Fixierung einer Rechtecks-Auswahl zu realisieren. */ regelupdateCreate_02_KURS_FIXIERE_IN_SCHIENE_MARKIERT(setKursID: JavaSet, setSchienenNr: JavaSet): GostBlockungRegelUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Kursmenge komplett in ihrer Lage zu fixieren. *
(1) Fixierungen innerhalb der Kurslage werden hinzugefügt, falls noch nicht existend. *
(2) Fixierungen außerhalb der Kurslage werden gelöscht. * * @param setKursID Die Kursmenge, die fixiert werden soll. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Kursmenge komplett in ihrer Lage zu fixieren. */ regelupdateCreate_02b_KURS_FIXIERE_MENGE_IN_IHREN_SCHIENEN(setKursID: JavaSet): GostBlockungRegelUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um alle Kurse komplett in ihrer Lage zu fixieren. *
(1) Fixierungen innerhalb der Kurslage werden hinzugefügt, falls noch nicht existend. *
(2) Fixierungen außerhalb der Kurslage werden gelöscht. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um alle Kurse komplett in ihrer Lage zu fixieren. */ regelupdateCreate_02c_KURS_FIXIERE_ALLE_IN_IHREN_SCHIENEN(): GostBlockungRegelUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Kursmengen-Schienemengen-Toggle-Fixierung zu realisieren. *
(1) Wenn der Kurs im Schienen-Bereich liegt und fixiert ist, wird die Fixierung gelöst. *
(2) Wenn der Kurs im Schienen-Bereich liegt und nicht fixiert ist, wird er fixiert *
(3) und falls dort eine Sperrung vorliegt, dann wird die Sperrung entfernt. * * @param setKursID Die Menge aller Kurs-IDs. * @param setSchienenNr Die Menge aller Schienen-IDs. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Kursmengen-Schienemengen-Toggle-Fixierung zu realisieren. */ regelupdateCreate_02d_KURS_FIXIERE_IN_SCHIENE_TOGGLE(setKursID: JavaSet, setSchienenNr: JavaSet): GostBlockungRegelUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um einen Kurs in einer Schiene zu fixieren. *
(1) Wenn der Kurs in der Schiene eine Sperrung hat, wird diese entfernt. *
(2) Wenn der Kurs bereits in der Schiene fixiert ist, passiert nichts weiteres. *
(3) Wenn der Kurs bereits vollständig fixiert ist, werden seine alten Fixierungen entfernt. *
(4) Andernfalls wird der Kurs in der Schiene fixiert. * * @param idKurs Die Datenbank-ID des Kurses. * @param schienenNr Die Nummer der Schiene, die fixiert werden soll. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um einen Kurs in einer Schiene zu fixieren. */ regelupdateCreate_02e_KURS_FIXIERE_IN_EINER_SCHIENE(idKurs: number, schienenNr: number): GostBlockungRegelUpdate; private regelupdateCreate_02e_helper; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Kursmengen-Schienemengen-Sperrung zu setzen. *
(1) Wenn der Kurs im Schienen-Bereich nicht gesperrt ist und keine Fixierung vorliegt, wird er gesperrt. * * @param setKursID Die Menge aller Kurs-IDs. * @param setSchienenNr Die Menge aller Schienen-IDs. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Kursmengen-Schienemengen-Sperrung zu setzen. */ regelupdateCreate_03_KURS_SPERRE_IN_SCHIENE(setKursID: JavaSet, setSchienenNr: JavaSet): GostBlockungRegelUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Kursmengen-Schienemengen-Toggle-Sperrung zu realisieren. *
(1) Wenn der Kurs im Schienen-Bereich liegt und gesperrt ist, wird die Sperrung gelöst. *
(2) Wenn der Kurs im Schienen-Bereich liegt und nicht gesperrt ist und keine Fixierung vorliegt, wird er gesperrt. * * @param setKursID Die Menge aller Kurs-IDs. * @param setSchienenNr Die Menge aller Schienen-IDs. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Kursmengen-Schienemengen-Toggle-Sperrung zu realisieren. */ regelupdateCreate_03b_KURS_SPERRE_IN_SCHIENE_TOGGLE(setKursID: JavaSet, setSchienenNr: JavaSet): GostBlockungRegelUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Schülermengen-Kursmengen-Fixierung zu setzen. *
(1) Wenn der Schüler im Kurs gesperrt ist, wird dies entfernt. *
(2) Wenn der Schüler nicht im Kurs fixiert ist, wird er fixiert. *
(3) Wenn der Schüler bereits im Kurs fixiert ist, wird dies ignoriert. *
(4) Wenn der Schüler im Nachbar-Kurs fixiert ist, wird dies entfernt. * * @param setSchuelerID Die Menge der Schüler-IDs. * @param setKursID Die Menge der Kurs-IDs. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Schülermengen-Kursmengen-Fixierung zu setzen. */ regelupdateCreate_04_SCHUELER_FIXIEREN_IN_KURS(setSchuelerID: JavaSet, setKursID: JavaSet): GostBlockungRegelUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um alle Schüler-Kurs-Fixierungen einer Kursmenge zu setzen. *
(1) Wenn der Schüler im Kurs gesperrt ist, wird dies entfernt. *
(2) Wenn der Schüler nicht im Kurs fixiert ist, wird er fixiert. *
(3) Wenn der Schüler bereits im Kurs fixiert ist, wird dies ignoriert. *
(4) Wenn der Schüler im Nachbar-Kurs fixiert ist, wird dies entfernt. * * @param setKursID Die Menge der Kurs-IDs. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um alle Schüler-Kurs-Fixierungen einer Kursmenge zu setzen. */ regelupdateCreate_04b_SCHUELER_FIXIEREN_IN_DEN_KURSEN(setKursID: JavaSet): GostBlockungRegelUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um alle Schüler in ihren aktuellen Kursen zu fixieren. *
Die Methode delegiert alles an {@link #regelupdateCreate_04_SCHUELER_FIXIEREN_IN_KURS}. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um alle Schüler in ihren aktuellen Kursen zu fixieren. */ regelupdateCreate_04c_SCHUELER_FIXIEREN_IN_ALLEN_KURSEN(): GostBlockungRegelUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um die Menge aller LK-Schüler zu fixieren. *
(1) Wenn der Schüler im Kurs gesperrt ist, wird dies entfernt. *
(2) Wenn der Schüler nicht im Kurs fixiert ist, wird er fixiert. *
(3) Wenn der Schüler im Nachbar-Kurs fixiert ist, wird dies entfernt. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um die Menge aller LK-Schüler zu fixieren. */ regelupdateCreate_04e_SCHUELER_FIXIEREN_TYP_LK(): GostBlockungRegelUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um alle LK-Schüler einer Kursmenge zu fixieren. *
(1) Wenn der Schüler im Kurs gesperrt ist, wird dies entfernt. *
(2) Wenn der Schüler nicht im Kurs fixiert ist, wird er fixiert. *
(3) Wenn der Schüler im Nachbar-Kurs fixiert ist, wird dies entfernt. * * @param kursIDs Die Menge der Kurse. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um alle LK-Schüler einer Kursmenge zu fixieren. */ regelupdateCreate_04e_SCHUELER_FIXIEREN_TYP_LK_DER_KURSMENGE(kursIDs: JavaSet): GostBlockungRegelUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um die Menge aller AB3-Schüler zu fixieren. *
(1) Wenn der Schüler im Kurs gesperrt ist, wird dies entfernt. *
(2) Wenn der Schüler nicht im Kurs fixiert ist, wird er fixiert. *
(3) Wenn der Schüler im Nachbar-Kurs fixiert ist, wird dies entfernt. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um die Menge aller AB3-Schüler zu fixieren. */ regelupdateCreate_04f_SCHUELER_FIXIEREN_TYP_AB3(): GostBlockungRegelUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um die Menge aller AB3-Schüler zu fixieren. *
(1) Wenn der Schüler im Kurs gesperrt ist, wird dies entfernt. *
(2) Wenn der Schüler nicht im Kurs fixiert ist, wird er fixiert. *
(3) Wenn der Schüler im Nachbar-Kurs fixiert ist, wird dies entfernt. * * @param kursIDs Die Menge der Kurse. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um die Menge aller AB3-Schüler zu fixieren. */ regelupdateCreate_04f_SCHUELER_FIXIEREN_TYP_AB3_DER_KURSMENGE(kursIDs: JavaSet): GostBlockungRegelUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um die Menge aller LKs und AB3-Schüler zu fixieren. *
(1) Wenn der Schüler im Kurs gesperrt ist, wird dies entfernt. *
(2) Wenn der Schüler nicht im Kurs fixiert ist, wird er fixiert. *
(3) Wenn der Schüler im Nachbar-Kurs fixiert ist, wird dies entfernt. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um die Menge aller LKs und AB3-Schüler zu fixieren. */ regelupdateCreate_04g_SCHUELER_FIXIEREN_TYP_LK_UND_AB3(): GostBlockungRegelUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um die Menge aller LKs und AB3-Schüler zu fixieren. *
(1) Wenn der Schüler im Kurs gesperrt ist, wird dies entfernt. *
(2) Wenn der Schüler nicht im Kurs fixiert ist, wird er fixiert. *
(3) Wenn der Schüler im Nachbar-Kurs fixiert ist, wird dies entfernt. * * @param kursIDs Die Menge der Kurse. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um die Menge aller LKs und AB3-Schüler zu fixieren. */ regelupdateCreate_04g_SCHUELER_FIXIEREN_TYP_LK_UND_AB3_DER_KURSMENGE(kursIDs: JavaSet): GostBlockungRegelUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um die Menge aller AB4-Schüler zu fixieren. *
(1) Wenn der Schüler im Kurs gesperrt ist, wird dies entfernt. *
(2) Wenn der Schüler nicht im Kurs fixiert ist, wird er fixiert. *
(3) Wenn der Schüler im Nachbar-Kurs fixiert ist, wird dies entfernt. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um die Menge aller AB4-Schüler zu fixieren. */ regelupdateCreate_04h_SCHUELER_FIXIEREN_TYP_AB4(): GostBlockungRegelUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um die Menge aller AB4-Schüler zu fixieren. *
(1) Wenn der Schüler im Kurs gesperrt ist, wird dies entfernt. *
(2) Wenn der Schüler nicht im Kurs fixiert ist, wird er fixiert. *
(3) Wenn der Schüler im Nachbar-Kurs fixiert ist, wird dies entfernt. * * @param kursIDs Die Menge der Kurse. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um die Menge aller AB4-Schüler zu fixieren. */ regelupdateCreate_04h_SCHUELER_FIXIEREN_TYP_AB4_DER_KURSMENGE(kursIDs: JavaSet): GostBlockungRegelUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um die Menge aller AB-Schüler zu fixieren. *
(1) Wenn der Schüler im Kurs gesperrt ist, wird dies entfernt. *
(2) Wenn der Schüler nicht im Kurs fixiert ist, wird er fixiert. *
(3) Wenn der Schüler im Nachbar-Kurs fixiert ist, wird dies entfernt. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um die Menge aller AB-Schüler zu fixieren. */ regelupdateCreate_04i_SCHUELER_FIXIEREN_TYP_AB(): GostBlockungRegelUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um die Menge aller AB-Schüler zu fixieren. *
(1) Wenn der Schüler im Kurs gesperrt ist, wird dies entfernt. *
(2) Wenn der Schüler nicht im Kurs fixiert ist, wird er fixiert. *
(3) Wenn der Schüler im Nachbar-Kurs fixiert ist, wird dies entfernt. * * @param kursIDs Die Menge der Kurse. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um die Menge aller AB-Schüler zu fixieren. */ regelupdateCreate_04i_SCHUELER_FIXIEREN_TYP_AB_DER_KURSMENGE(kursIDs: JavaSet): GostBlockungRegelUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um die Menge aller schriftlichen Schüler zu fixieren. *
(1) Wenn der Schüler im Kurs gesperrt ist, wird dies entfernt. *
(2) Wenn der Schüler nicht im Kurs fixiert ist, wird er fixiert. *
(3) Wenn der Schüler im Nachbar-Kurs fixiert ist, wird dies entfernt. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um die Menge aller schriftlichen Schüler zu fixieren. */ regelupdateCreate_04j_SCHUELER_FIXIEREN_TYP_SCHRIFTLICH(): GostBlockungRegelUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um die Menge aller schriftlichen Schüler zu fixieren. *
(1) Wenn der Schüler im Kurs gesperrt ist, wird dies entfernt. *
(2) Wenn der Schüler nicht im Kurs fixiert ist, wird er fixiert. *
(3) Wenn der Schüler im Nachbar-Kurs fixiert ist, wird dies entfernt. * * @param kursIDs Die Menge der Kurse. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um die Menge aller schriftlichen Schüler zu fixieren. */ regelupdateCreate_04j_SCHUELER_FIXIEREN_TYP_SCHRIFTLICH_DER_KURSMENGE(kursIDs: JavaSet): GostBlockungRegelUpdate; /** * Liefert alle GostBlockungRegelUpdate-Objekte für die Umsetzung einer Schüler-Kurs-Fixierung. * *
(1) Wenn der Schüler im Kurs gesperrt ist, wird dies entfernt. *
(2) Wenn der Schüler nicht im Kurs fixiert ist, wird er fixiert. *
(3) Wenn der Schüler im Nachbar-Kurs fixiert ist, wird dies entfernt. * * @param idSchueler Die ID des Schülers. * @param idKurs Die ID des Kurses. * * @return alle GostBlockungRegelUpdate-Objekte für die Umsetzung einer Menge von Schüler-Kurs-Fixierungen. */ private regelupdateCreate_04x_SCHUELER_FIXIEREN_IN_KURS; /** * Liefert alle GostBlockungRegelUpdate-Objekte für die Umsetzung einer Menge von Schüler-Kurs-Fixierungen. * *
(1) Wenn der Schüler im Kurs gesperrt ist, wird dies entfernt. *
(2) Wenn der Schüler nicht im Kurs fixiert ist, wird er fixiert. *
(3) Wenn der Schüler im Nachbar-Kurs fixiert ist, wird dies entfernt. * * @param schuelerKursPaare Die Menge aller Schüler-Kurs-Paare. * * @return alle GostBlockungRegelUpdate-Objekte für die Umsetzung einer Menge von Schüler-Kurs-Fixierungen. */ private regelupdateCreate_04x_SCHUELER_FIXIEREN_IN_KURSMENGE; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Schülermengen-Kursmengen-Sperrung zu setzen. *
(1) Wenn der Schüler im Kurs fixiert ist, wird die Fixierung entfernt. *
(2) Wenn der Schüler nicht im Kurs gesperrt ist, wird er gesperrt. * * @param setSchuelerID Die Menge Schüler-IDs. * @param setKursID Die Menge der Kurs-IDs. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Schülermengen-Kursmengen-Sperrung zu setzen. */ regelupdateCreate_05_SCHUELER_VERBIETEN_IN_KURS(setSchuelerID: JavaSet, setKursID: JavaSet): GostBlockungRegelUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um alle Schüler-Kurs-Sperrungen der Kurse zu sperren. *
(1) Wenn der Schüler im Kurs fixiert ist, wird die Fixierung entfernt. *
(2) Wenn der Schüler nicht im Kurs gesperrt ist, wird er gesperrt. * * @param setKursID Die Menge der Kurs-IDs. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um alle Schüler-Kurs-Sperrungen der Kurse zu sperren. */ private regelupdateCreate_05b_SCHUELER_VERBIETEN_IN_DEN_KURSEN; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Kursart-Schienenmengen-Allein-Zuordnung zu setzen. *
(1) Alle Regeln der selben Kursart werden zunächst entfernt, da zwei solcher Regeln sich widersprechen würden. *
(2) Wenn eine Kursart-Fixierung im falschen Bereich liegt, wird die Fixierung entfernt. *
(3) Wenn eine Kursart-Sperrung im falschen Bereich liegt, wird die Sperrung entfernt. *
(4) Zuletzt wird die Regel neu erzeugt und hinzugefügt. * * @param kursart Die Kursart der Kurse für welche diese Regel gilt. * @param schienenNrVon Der Anfangsbereich der Schienen. * @param schienenNrBis Der Endbereich der Schienen. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Kursart-Schienenmengen-Allein-Zuordnung zu setzen. */ regelupdateCreate_06_KURSART_ALLEIN_IN_SCHIENEN_VON_BIS(kursart: number, schienenNrVon: number, schienenNrBis: number): GostBlockungRegelUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um alle Kurs-Kurs-Verbote der Kursmenge (alle Paarungen) zu setzen. *
(1) Wenn Kurs A mit Kurs B zusammen (Regel 8) sein soll, wird dies entfernt. *
(2) Wenn die Regel bereits existiert, aber die IDs nicht aufsteigend sind, wird die (MaxKursID, MinKursID)-Kombination entfernt. *
(3) Wenn die Regel nicht existiert, wird sie hinzugefügt. * * @param setKursID Die Menge der Kurs-IDs. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um alle Kurs-Kurs-Verbote der Kursmenge (alle Paarungen) zu setzen. */ regelupdateCreate_07_KURS_VERBIETEN_MIT_KURS(setKursID: JavaSet): GostBlockungRegelUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um alle Kurs-Kurs-Zusammen-Gebote von setKursID (alle Paarungen) zu setzen. *
(1) Wenn Kurs A mit Kurs B verboten (Regel 7) sein soll, wird dies entfernt. *
(2) Wenn die Regel bereits existiert, aber die IDs nicht aufsteigend sind, wird die (MaxKursID, MinKursID)-Kombination entfernt. *
(3) Wenn die Regel nicht existiert, wird sie hinzugefügt. * * @param setKursID Die Menge der Kurs-IDs. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um alle Kurs-Kurs-Zusammen-Gebote von setKursID (alle Paarungen) zu setzen. */ regelupdateCreate_08_KURS_ZUSAMMEN_MIT_KURS(setKursID: JavaSet): GostBlockungRegelUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um die Anzahl der Dummy-Schüler eines Kurses zu setzen. *
(1) Wenn die Regel bereits existiert, wird sie (zunächst) entfernt. *
(2) Wenn danach die Anzahl einen Wert größer 0 hat, wird die Regel hinzugefügt. * * @param idKurs Die Datenbank-ID des Kurses. * @param anzahl Die Anzahl an Dummy-Schülern. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um die Anzahl der Dummy-Schüler eines Kurses zu setzen. */ regelupdateCreate_09_KURS_MIT_DUMMY_SUS_AUFFUELLEN(idKurs: number, anzahl: number): GostBlockungRegelUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um "Lehrkräfte beachten" zu aktivieren/deaktivieren. *
(1) Wenn erstellen==FALSE und die Regel existiert, wird sie entfernt. *
(2) Wenn erstellen==TRUE und die Regel existiert nicht, wird sie erzeugt. * * @param erstellen Falls TRUE, wird die Regel aktiviert, andernfalls deaktiviert. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um "Lehrkräfte beachten" zu aktivieren/deaktivieren. */ regelupdateCreate_10_LEHRKRAEFTE_BEACHTEN(erstellen: boolean): GostBlockungRegelUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um zwei Schüler in einem Fach zusammen zu setzen. *
(1) Wenn beide Schüler-IDs identisch sind, wird die Regel ignoriert. *
(2) Wenn es eine Schüler-Schüler-Fach-Verbieten-Regel gibt, wird diese entfernt. *
(3) Wenn es eine Schüler-Schüler-Verbieten-Regel gibt, wird diese entfernt. *
(4) Wenn es eine Schüler-Schüler-Zusammen-Regel gibt, wird diese entfernt. *
(5a) Wenn es eine Schüler-Schüler-Fach-Zusammen-Regel in falscher Schüler-ID-Reihenfolge gibt, wird sie entfernt. *
(5b) Wenn es keine Schüler-Schüler-Fach-Zusammen-Regel gibt, wird sie hinzugefügt. * * @param idSchueler1 Die Datenbank-ID des 1. Schülers. * @param idSchueler2 Die Datenbank-ID des 2. Schülers. * @param idFach Die Datenbank-ID des Faches * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um zwei Schüler in einem Fach zusammen zu setzen. */ regelupdateCreate_11_SCHUELER_ZUSAMMEN_MIT_SCHUELER_IN_FACH(idSchueler1: number, idSchueler2: number, idFach: number): GostBlockungRegelUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um zwei Schüler in einem Fach zu verbieten. *
(1) Wenn beide Schüler-IDs identisch sind, wird die Regel ignoriert. *
(2) Wenn es eine Schüler-Schüler-Fach-Zusammen-Regel gibt, wird diese entfernt. *
(3) Wenn es eine Schüler-Schüler-Zusammen-Regel gibt, wird diese entfernt. *
(4) Wenn es eine Schüler-Schüler-Verboten-Regel gibt, wird diese entfernt. *
(5a) Wenn es eine Schüler-Schüler-Fach-Verboten-Regel in falscher Schüler-ID-Reihenfolge gibt, wird sie entfernt. *
(5b) Wenn es keine Schüler-Schüler-Fach-Verboten-Regel gibt, wird sie hinzugefügt. * * @param idSchueler1 Die Datenbank-ID des 1. Schülers. * @param idSchueler2 Die Datenbank-ID des 2. Schülers. * @param idFach Die Datenbank-ID des Faches * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um zwei Schüler in einem Fach zu verbieten. */ regelupdateCreate_12_SCHUELER_VERBIETEN_MIT_SCHUELER_IN_FACH(idSchueler1: number, idSchueler2: number, idFach: number): GostBlockungRegelUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um zwei Schüler in jedem gemeinsamen Fach zusammen zu setzen. *
(1) Wenn es eine Schüler-Schüler-Fach-Zusammen-Regel mit den selben Schülern gibt, wird diese entfernt. *
(2) Wenn es eine Schüler-Schüler-Fach-Verbieten-Regel mit den selben Schülern gibt, wird diese entfernt. *
(3) Wenn es eine Schüler-Schüler-Zusammen-Regel mit den selben Schülern gibt, wird diese entfernt (aber später hinzugefügt). *
(4) Wenn es eine Schüler-Schüler-Verbieten-Regel mit den selben Schülern gibt, wird diese entfernt. *
(5) Wenn die Schüler-IDs gültig sind, wird nun die Schüler-Schüler-Zusammen-Regel hinzugefügt. * * @param idSchueler1 Die Datenbank-ID des 1. Schülers. * @param idSchueler2 Die Datenbank-ID des 2. Schülers. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um zwei Schüler in jedem gemeinsamen Fach zusammen zu setzen. */ regelupdateCreate_13_SCHUELER_ZUSAMMEN_MIT_SCHUELER(idSchueler1: number, idSchueler2: number): GostBlockungRegelUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um zwei Schüler in jedem gemeinsamen Fach zu verbieten. *
(1) Wenn es eine Schüler-Schüler-Fach-Zusammen-Regel mit den selben Schülern gibt, wird diese entfernt. *
(2) Wenn es eine Schüler-Schüler-Fach-Verbieten-Regel mit den selben Schülern gibt, wird diese entfernt. *
(3) Wenn es eine Schüler-Schüler-Zusammen-Regel mit den selben Schülern gibt, wird diese entfernt. *
(4) Wenn es eine Schüler-Schüler-Verbieten-Regel mit den selben Schülern gibt, wird diese entfernt (aber später hinzugefügt). *
(5) Wenn die Schüler-IDs gültig sind, wird nun die Schüler-Schüler-Verbieten-Regel hinzugefügt. * * @param idSchueler1 Die Datenbank-ID des 1. Schülers. * @param idSchueler2 Die Datenbank-ID des 2. Schülers. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um zwei Schüler in jedem gemeinsamen Fach zu verbieten. */ regelupdateCreate_14_SCHUELER_VERBIETEN_MIT_SCHUELER(idSchueler1: number, idSchueler2: number): GostBlockungRegelUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um die maximale Anzahl an Schülern eines Kurses zu setzen. *
(1) Wenn die Regel bereits existiert, wird sie (zunächst) entfernt. *
(2) Wenn danach die Anzahl einen Wert im Intervall [0;99] hat, wird die Regel hinzugefügt. * * @param idKurs Die Datenbank-ID des Kurses. * @param anzahl Die maximale Anzahl an SuS des Kurses. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um die maximale Anzahl an Schülern eines Kurses zu setzen. */ regelupdateCreate_15_KURS_MAXIMALE_SCHUELERANZAHL(idKurs: number, anzahl: number): GostBlockungRegelUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Schülermenge beim Blocken zu ignorieren. *
(1) Wenn diese Regel nicht existiert, wird sie hinzugefügt. * * @param setSchuelerID Die Menge der Schüler-IDs. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Schülermenge beim Blocken zu ignorieren. */ regelupdateCreate_16_SCHUELER_IGNORIEREN(setSchuelerID: JavaSet): GostBlockungRegelUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Kursmenge von Kursdifferenz-Berechnungen auszuschließen. *
(1) Wenn diese Regel nicht existiert, wird sie hinzugefügt. * * @param setKursID Die Menge der Kurs-IDs. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Kursmenge von Kursdifferenz-Berechnungen auszuschließen. */ regelupdateCreate_17_KURS_KURSDIFFERENZ_BEI_DER_VISUALISIERUNG_IGNORIEREN(setKursID: JavaSet): GostBlockungRegelUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um die maximale Anzahl an Kursen einer bestimmten Fachart (in jeder Schiene) zu begrenzen. *
(1) Falls die Regel bereits existiert, wird sie zunächst entfernt. *
(2) Falls der "maximal"-Wert 1 ist und es Regeln KURS_VERBIETEN_MIT_KURS bei Paaren dieser Fachart gibt, werden die Regeln entfernt. *
(3) Zuletzt wird die neue Regel hinzugefügt. * * @param idFach Die Datenbank-ID des Faches. * @param idKursart Die ID der Kursart. * @param maximal Die maximale Kursanzahl dieser Fachart (in jeder Schiene). Gültige Werte sind 1 bis 9. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um die maximale Anzahl an Kursen einer bestimmten Fachart (in jeder Schiene) zu begrenzen. */ regelupdateCreate_18_FACH_KURSART_MAXIMALE_ANZAHL_PRO_SCHIENE(idFach: number, idKursart: number, maximal: number): GostBlockungRegelUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um alle Regeln einer Schülermenge zu entfernen. * * @param setSchuelerID Die Menge der Schüler-IDs. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um alle Regeln einer Schülermenge zu entfernen. */ regelupdateCreate_19_SCHUELERMENGE_ENTFERNEN(setSchuelerID: JavaSet): GostBlockungRegelUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Regel dieses Typs zu patchen. *
(1) Wenn die alte Regel nicht gefunden wird, passiert nichts. *
(2) Wenn eine Regel mit genau den selben Parametern bereits existiert, passiert nichts. *
(3) Andernfalls wird die alte Regel entfernt und eine neue Regel hinzugefügt. * * @param idRegelAlt Die ID der alten zu modifizierenden Regel. * @param kursart Die Kursart der Kurse für welche diese Regel gilt. * @param schienenNrVon Der Anfangsbereich der Schienen. * @param schienenNrBis Der Endbereich der Schienen. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Regel dieses Typs zu patchen. */ regelupdatePatchByID_01_KURSART_SPERRE_SCHIENEN_VON_BIS(idRegelAlt: number, kursart: number, schienenNrVon: number, schienenNrBis: number): GostBlockungRegelUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Regel dieses Typs zu patchen. *
(1) Wenn die alte Regel nicht gefunden wird, passiert nichts. *
(2) Wenn eine Regel mit genau den selben Parametern bereits existiert, passiert nichts. *
(3) Andernfalls wird die alte Regel entfernt und eine neue Regel hinzugefügt. * * @param idRegelAlt Die ID der alten zu modifizierenden Regel. * @param idKurs Die Datenbank-ID des Kurses. * @param schienenNr Die Nummer der Schiene, die fixiert werden soll. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Regel dieses Typs zu patchen. */ regelupdatePatchByID_02e_KURS_FIXIERE_IN_EINER_SCHIENE(idRegelAlt: number, idKurs: number, schienenNr: number): GostBlockungRegelUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Regel dieses Typs zu patchen. *
(1) Wenn die alte Regel nicht gefunden wird, passiert nichts. *
(2) Wenn eine Regel mit genau den selben Parametern bereits existiert, passiert nichts. *
(3) Andernfalls wird die alte Regel entfernt und eine neue Regel hinzugefügt. * * @param idRegelAlt Die ID der alten zu modifizierenden Regel. * @param idKurs Die ID des Kurses. * @param schienenNr Die Nummer der Schiene. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Regel dieses Typs zu patchen. */ regelupdatePatchByID_03_KURS_SPERRE_IN_SCHIENE(idRegelAlt: number, idKurs: number, schienenNr: number): GostBlockungRegelUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Regel dieses Typs zu patchen. *
(1) Wenn die alte Regel nicht gefunden wird, passiert nichts. *
(2) Wenn eine Regel mit genau den selben Parametern bereits existiert, passiert nichts. *
(3) Andernfalls wird die alte Regel entfernt und eine neue Regel hinzugefügt. * * @param idRegelAlt Die ID der alten zu modifizierenden Regel. * @param idSchueler Die ID des Schülers. * @param idKurs Die ID des Kurses. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Regel dieses Typs zu patchen. */ regelupdatePatchByID_04_SCHUELER_FIXIEREN_IN_KURS(idRegelAlt: number, idSchueler: number, idKurs: number): GostBlockungRegelUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Regel dieses Typs zu patchen. *
(1) Wenn die alte Regel nicht gefunden wird, passiert nichts. *
(2) Wenn eine Regel mit genau den selben Parametern bereits existiert, passiert nichts. *
(3) Andernfalls wird die alte Regel entfernt und eine neue Regel hinzugefügt. * * @param idRegelAlt Die ID der alten zu modifizierenden Regel. * @param idSchueler Die ID des Schülers. * @param idKurs Die ID des Kurses. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Regel dieses Typs zu patchen. */ regelupdatePatchByID_05_SCHUELER_VERBIETEN_IN_KURS(idRegelAlt: number, idSchueler: number, idKurs: number): GostBlockungRegelUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Regel dieses Typs zu patchen. *
(1) Wenn die alte Regel nicht gefunden wird, passiert nichts. *
(2) Wenn eine Regel mit genau den selben Parametern bereits existiert, passiert nichts. *
(3) Andernfalls wird die alte Regel entfernt und eine neue Regel hinzugefügt. * * @param idRegelAlt Die ID der alten zu modifizierenden Regel. * @param kursart Die Kursart der Kurse für welche diese Regel gilt. * @param schienenNrVon Der Anfangsbereich der Schienen. * @param schienenNrBis Der Endbereich der Schienen. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Regel dieses Typs zu patchen. */ regelupdatePatchByID_06_KURSART_ALLEIN_IN_SCHIENEN_VON_BIS(idRegelAlt: number, kursart: number, schienenNrVon: number, schienenNrBis: number): GostBlockungRegelUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Regel dieses Typs zu patchen. *
(1) Wenn die alte Regel nicht gefunden wird, passiert nichts. *
(2) Wenn eine Regel mit genau den selben Parametern bereits existiert, passiert nichts. *
(3) Andernfalls wird die alte Regel entfernt und eine neue Regel hinzugefügt. * * @param idRegelAlt Die ID der alten zu modifizierenden Regel. * @param idKurs1 Die ID des 1. Kurses. * @param idKurs2 Die ID des 2. Kurses. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Regel dieses Typs zu patchen. */ regelupdatePatchByID_07_KURS_VERBIETEN_MIT_KURS(idRegelAlt: number, idKurs1: number, idKurs2: number): GostBlockungRegelUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Regel dieses Typs zu patchen. *
(1) Wenn die alte Regel nicht gefunden wird, passiert nichts. *
(2) Wenn eine Regel mit genau den selben Parametern bereits existiert, passiert nichts. *
(3) Andernfalls wird die alte Regel entfernt und eine neue Regel hinzugefügt. * * @param idRegelAlt Die ID der alten zu modifizierenden Regel. * @param idKurs1 Die ID des 1. Kurses. * @param idKurs2 Die ID des 2. Kurses. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Regel dieses Typs zu patchen. */ regelupdatePatchByID_08_KURS_ZUSAMMEN_MIT_KURS(idRegelAlt: number, idKurs1: number, idKurs2: number): GostBlockungRegelUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Regel dieses Typs zu patchen. *
(1) Wenn die alte Regel nicht gefunden wird, passiert nichts. *
(2) Wenn eine Regel mit genau den selben Parametern bereits existiert, passiert nichts. *
(3) Andernfalls wird die alte Regel entfernt und eine neue Regel hinzugefügt. * * @param idRegelAlt Die ID der alten zu modifizierenden Regel. * @param idKurs Die ID des Kurses. * @param anzahl Die Anzahl an Dummy-SuS des Kurses. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Regel dieses Typs zu patchen. */ regelupdatePatchByID_09_KURS_MIT_DUMMY_SUS_AUFFUELLEN(idRegelAlt: number, idKurs: number, anzahl: number): GostBlockungRegelUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Regel dieses Typs zu patchen. *
(1) Wenn die alte Regel nicht gefunden wird, passiert nichts. *
(2) Wenn eine Regel mit genau den selben Parametern bereits existiert, passiert nichts. *
(3) Andernfalls wird die alte Regel entfernt und eine neue Regel hinzugefügt. * * @param idRegelAlt Die ID der alten zu modifizierenden Regel. * @param idSchueler1 Die Datenbank-ID des 1. Schülers. * @param idSchueler2 Die Datenbank-ID des 2. Schülers. * @param idFach Die Datenbank-ID des Faches * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Regel dieses Typs zu patchen. */ regelupdatePatchByID_11_SCHUELER_ZUSAMMEN_MIT_SCHUELER_IN_FACH(idRegelAlt: number, idSchueler1: number, idSchueler2: number, idFach: number): GostBlockungRegelUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Regel dieses Typs zu patchen. *
(1) Wenn die alte Regel nicht gefunden wird, passiert nichts. *
(2) Wenn eine Regel mit genau den selben Parametern bereits existiert, passiert nichts. *
(3) Andernfalls wird die alte Regel entfernt und eine neue Regel hinzugefügt. * * @param idRegelAlt Die ID der alten zu modifizierenden Regel. * @param idSchueler1 Die Datenbank-ID des 1. Schülers. * @param idSchueler2 Die Datenbank-ID des 2. Schülers. * @param idFach Die Datenbank-ID des Faches * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Regel dieses Typs zu patchen. */ regelupdatePatchByID_12_SCHUELER_VERBIETEN_MIT_SCHUELER_IN_FACH(idRegelAlt: number, idSchueler1: number, idSchueler2: number, idFach: number): GostBlockungRegelUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Regel dieses Typs zu patchen. *
(1) Wenn die alte Regel nicht gefunden wird, passiert nichts. *
(2) Wenn eine Regel mit genau den selben Parametern bereits existiert, passiert nichts. *
(3) Andernfalls wird die alte Regel entfernt und eine neue Regel hinzugefügt. * * @param idRegelAlt Die ID der alten zu modifizierenden Regel. * @param idSchueler1 Die Datenbank-ID des 1. Schülers. * @param idSchueler2 Die Datenbank-ID des 2. Schülers. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Regel dieses Typs zu patchen. */ regelupdatePatchByID_13_SCHUELER_ZUSAMMEN_MIT_SCHUELER(idRegelAlt: number, idSchueler1: number, idSchueler2: number): GostBlockungRegelUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Regel dieses Typs zu patchen. *
(1) Wenn die alte Regel nicht gefunden wird, passiert nichts. *
(2) Wenn eine Regel mit genau den selben Parametern bereits existiert, passiert nichts. *
(3) Andernfalls wird die alte Regel entfernt und eine neue Regel hinzugefügt. * * @param idRegelAlt Die ID der alten zu modifizierenden Regel. * @param idSchueler1 Die Datenbank-ID des 1. Schülers. * @param idSchueler2 Die Datenbank-ID des 2. Schülers. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Regel dieses Typs zu patchen. */ regelupdatePatchByID_14_SCHUELER_VERBIETEN_MIT_SCHUELER(idRegelAlt: number, idSchueler1: number, idSchueler2: number): GostBlockungRegelUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Regel dieses Typs zu patchen. *
(1) Wenn die alte Regel nicht gefunden wird, passiert nichts. *
(2) Wenn eine Regel mit genau den selben Parametern bereits existiert, passiert nichts. *
(3) Andernfalls wird die alte Regel entfernt und eine neue Regel hinzugefügt. * * @param idRegelAlt Die ID der alten zu modifizierenden Regel. * @param idKurs Die ID des Kurses. * @param anzahl Die maximale Anzahl der SuS des Kurses. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Regel dieses Typs zu patchen. */ regelupdatePatchByID_15_KURS_MAXIMALE_SCHUELERANZAHL(idRegelAlt: number, idKurs: number, anzahl: number): GostBlockungRegelUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Regel dieses Typs zu patchen. *
(1) Wenn die alte Regel nicht gefunden wird, passiert nichts. *
(2) Wenn eine Regel mit genau den selben Parametern bereits existiert, passiert nichts. *
(3) Andernfalls wird die alte Regel entfernt und eine neue Regel hinzugefügt. * * @param idRegelAlt Die ID der alten zu modifizierenden Regel. * @param idSchueler Die ID des Schülers. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Regel dieses Typs zu patchen. */ regelupdatePatchByID_16_SCHUELER_IGNORIEREN(idRegelAlt: number, idSchueler: number): GostBlockungRegelUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um die Regel von einem zu einem anderen Kurs zu patchen. * *
(1) Wenn die alte Regel nicht existiert, passiert nichts. *
(2) Wenn die neue Kurs-ID bereits existiert, passiert nichts. *
(3) Wenn die alte Kurs-ID der neuen Kurs-ID gleicht, passiert nichts. *
(4) Andernfalls wird die alte Regel gelöscht (idKursAlt) und eine neue Regel wird erzeugt (idKursNeu). * * @param idRegelAlt Die Regel, die modifiziert wird. * @param idKursNeu Die neue Kurs-ID deren Regel hinzugefügt werden soll. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um die Regel von einem zu einem anderen Kurs zu patchen. */ regelupdatePatchByID_17_KURS_KURSDIFFERENZ_BEI_DER_VISUALISIERUNG_IGNORIEREN(idRegelAlt: number, idKursNeu: number): GostBlockungRegelUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Kursmengen-Schienemengen-Fixierung zu lösen. *
(1) Wenn der Kurs im Schienen-Bereich liegt und bereits fixiert ist, wird die Fixierung entfernt. * * @param setKursID Die Menge aller Kurs-IDs. * @param setSchienenNr Die Menge aller Schienen-IDs. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Kursmengen-Schienemengen-Fixierung zu lösen. */ regelupdateRemove_02_KURS_FIXIERE_IN_SCHIENE_MARKIERT(setKursID: JavaSet, setSchienenNr: JavaSet): GostBlockungRegelUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Fixierung einer Kursmenge komplett zu lösen. *
(1) Alle Fixierungen der Kursmenge werden gelöst. * * @param setKursID Die Kursmenge, deren Fixierungen gelöst werden sollen. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Fixierung einer Kursmenge komplett zu lösen. */ regelupdateRemove_02b_KURS_FIXIERE_MENGE_IN_IHREN_SCHIENEN(setKursID: JavaSet): GostBlockungRegelUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um alle Kurs-Schienen-Fixierungen zu lösen. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um alle Kurs-Schienen-Fixierungen zu lösen. */ regelupdateRemove_02c_KURS_FIXIERE_ALLE_IN_IHREN_SCHIENEN(): GostBlockungRegelUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Kurs-Schienen-Fixierung zu lösen. *
(1) Wenn der Kurs in der Schiene fixiert ist, wird die Fixierung entfernt. * * @param idKurs Die Datenbank-ID des Kurses. * @param schienenNr Die Nummer der Schiene, die gelöst werden soll. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Kurs-Schienen-Fixierung zu lösen. */ regelupdateRemove_02e_KURS_FIXIERE_IN_EINER_SCHIENE(idKurs: number, schienenNr: number): GostBlockungRegelUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Kursmengen-Schienemengen-Sperrung zu lösen. *
(1) Wenn der Kurs in dem Schienen-Bereich gesperrt ist, wird die Sperrung entfernt. * * @param setKursID Die Menge aller Kurs-IDs. * @param setSchienenNr Die Menge aller Schienen-IDs. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Kursmengen-Schienemengen-Sperrung zu lösen. */ regelupdateRemove_03_KURS_SPERRE_IN_SCHIENE(setKursID: JavaSet, setSchienenNr: JavaSet): GostBlockungRegelUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Schülermengen-Kursmengen-Fixierung zu lösen. *
(1) Wenn der Schüler im Kurs fixiert ist, wird die Fixierung entfernt. * * @param setSchuelerID Die Menge der Schüler-IDs. * @param setKursID Die Menge der Kurs-IDs. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Schülermengen-Kursmengen-Fixierung zu lösen. */ regelupdateRemove_04_SCHUELER_FIXIEREN_IN_KURS(setSchuelerID: JavaSet, setKursID: JavaSet): GostBlockungRegelUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um alle Schüler-Kurs-Fixierungen einer Kursmenge zu lösen. *
(1) Wenn der Schüler im Kurs fixiert ist, wird die Fixierung entfernt. * * @param setKursID Die Menge der Kurs-IDs. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um alle Schüler-Kurs-Fixierungen einer Kursmenge zu lösen. */ regelupdateRemove_04b_SCHUELER_FIXIEREN_IN_DEN_KURSEN(setKursID: JavaSet): GostBlockungRegelUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um alle Schüler-Kurs-Fixierungen zu lösen. *
Die Methode delegiert alles an {@link #regelupdateCreate_04_SCHUELER_FIXIEREN_IN_KURS}. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um alle Schüler-Kurs-Fixierungen zu lösen. */ regelupdateRemove_04c_SCHUELER_FIXIEREN_IN_ALLEN_KURSEN(): GostBlockungRegelUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um ein Schüler-Kurs-Fixierung-Toggle zu realisieren. *
(1) Wenn der Schüler im Kurs fixiert ist, wird die Fixierung entfernt. *
(2) Wenn der Schüler im Kurs nicht fixiert ist, wird die Fixierung gesetzt. *
(3) Potentielle Fixierungen in Nachbar-Kursen werden entfernt, da sie in jedem Fall falsch sind. * * @param setKursID Die Menge der Kurs-IDs. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um ein Schüler-Kurs-Fixierung-Toggle zu realisieren. */ regelupdateRemove_04d_SCHUELER_FIXIEREN_IN_DEN_KURSEN_TOGGLE(setKursID: JavaSet): GostBlockungRegelUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Schülermengen-Kursmengen-Sperrung zu lösen. *
(1) Wenn der Schüler im Kurs gesperrt ist, wird die Sperrung entfernt. * * @param setSchuelerID Die Menge der Schüler-IDs. * @param setKursID Die Menge der Kurs-IDs. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um eine Schülermengen-Kursmengen-Sperrung zu lösen. */ private regelupdateRemove_05_SCHUELER_VERBIETEN_IN_KURS; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um alle Schüler-Kurs-Sperrungen der Kurse zu lösen. *
(1) Wenn der Schüler im Kurs gesperrt ist, wird die Sperrung entfernt. * * @param setKursID Die Menge der Kurs-IDs. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um alle Schüler-Kurs-Sperrungen der Kurse zu lösen. */ private regelupdateRemove_05b_SCHUELER_VERBIETEN_IN_DEN_KURSEN; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um alle Kurs-Kurs-Verbote der Kursmenge (alle Paarungen) zu lösen. *
(1) Wenn das Kurs-Kurs-Verbot existiert (in beliebiger Permutation), wird es entfernt. * * @param setKursID Die Menge der Kurs-IDs. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um alle Kurs-Kurs-Verbote der Kursmenge (alle Paarungen) zu lösen. */ private regelupdateRemove_07_KURS_VERBIETEN_MIT_KURS; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um alle Kurs-Kurs-Gebote von setKursID (alle Paarungen) zu lösen. *
(1) Wenn das Kurs-Kurs-Gebot existiert (in beliebiger Permutation), wird es entfernt. * * @param setKursID Die Menge der Kurs-IDs. * * @return alle nötigen Veränderungen als {@link GostBlockungRegelUpdate}-Objekt, um alle Kurs-Kurs-Gebote von setKursID (alle Paarungen) zu lösen. */ private regelupdateRemove_08_KURS_ZUSAMMEN_MIT_KURS; /** * Entfernt erst alle Regeln aus {@link GostBlockungRegelUpdate#listEntfernen} und * fügt dann die neuen Regeln aus {@link GostBlockungRegelUpdate#listHinzuzufuegen} hinzu. * * @param update Das {@link GostBlockungRegelUpdate}-Objekt. */ regelupdateExecute(update: GostBlockungRegelUpdate): void; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungsergebnisKursSchuelerZuordnungUpdate}-Objekt, um alle Schüler aus den derzeit zugeordneten Kursen zu entfernen. *
(1) Wenn ein Schüler in einem Kurs ist und nicht fixiert ist, wird er entfernt. *
(2) Wenn ein Schüler in einem Kurs ist und fixiert ist, wird er entfernt, falls entferneAuchFixierte==TRUE ist. * * @param entferneAuchFixierte Falls TRUE, werden auch fixiert SuS entfernt. * * @return alle nötigen Veränderungen als {@link GostBlockungsergebnisKursSchuelerZuordnungUpdate}-Objekt, um alle Schüler aus den derzeit zugeordneten Kursen zu entfernen. */ kursSchuelerUpdate_01_LEERE_ALLE_KURSE(entferneAuchFixierte: boolean): GostBlockungsergebnisKursSchuelerZuordnungUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungsergebnisKursSchuelerZuordnungUpdate}-Objekt, um alle Schüler aus der übergebenen Kursmenge zu entfernen. *
(1) Wenn ein Schüler in einem Kurs ist und nicht fixiert ist, wird er entfernt. *
(2) Wenn ein Schüler in einem Kurs ist und fixiert ist, wird er entfernt, falls entferneAuchFixierte==TRUE ist. * * @param kursIDs Die Menge der Kurse. * @param entferneAuchFixierte Falls TRUE, werden auch fixiert SuS entfernt. * * @return alle nötigen Veränderungen als {@link GostBlockungsergebnisKursSchuelerZuordnungUpdate}-Objekt, um alle Schüler aus der übergebenen Kursmenge zu entfernen. */ kursSchuelerUpdate_01b_LEERE_KURSMENGE(kursIDs: JavaSet, entferneAuchFixierte: boolean): GostBlockungsergebnisKursSchuelerZuordnungUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungsergebnisKursSchuelerZuordnungUpdate}-Objekt, um eine Schülermenge aus einem Kurs zu entfernen. *
(1) Wenn der Schüler dem Kurs zugeordnet ist und nicht fixiert ist, wird er entfernt. *
(2) Wenn der Schüler dem Kurs zugeordnet ist und fixiert ist, wird er entfernt, falls entferneAuchFixierte==TRUE ist. Auch die Fixierungs-Regel wird entfernt. * * @param schuelerIDs Die Menge der Schüler-IDs. * @param idKurs Die Datenbank-ID des Kurses aus dem die Schüler entfernt werden sollen. * @param entferneAuchFixierte Falls TRUE, werden auch fixiert SuS entfernt. * * @return alle nötigen Veränderungen als {@link GostBlockungsergebnisKursSchuelerZuordnungUpdate}-Objekt, um eine Schülermenge aus einem Kurs zu entfernen. */ kursSchuelerUpdate_02a_ENTFERNE_SCHUELERMENGE_AUS_KURS(schuelerIDs: JavaSet, idKurs: number, entferneAuchFixierte: boolean): GostBlockungsergebnisKursSchuelerZuordnungUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungsergebnisKursSchuelerZuordnungUpdate}-Objekt, um eine Schülermenge aus allen Kursen entfernen. *
Hinweis: Es werden keine Kurs-Fixierungs-Regeln entfernt. Dafür muss die zugehörige regelupdate-Methode aufgerufen werden. * * @param schuelerIDs Die Menge der Schüler-IDs. * * @return alle nötigen Veränderungen als {@link GostBlockungsergebnisKursSchuelerZuordnungUpdate}-Objekt, um eine Schülermenge aus allen Kursen entfernen. */ kursSchuelerUpdate_02b_ENTFERNE_SCHUELERMENGE_AUS_ALLEN_KURSEN(schuelerIDs: JavaSet): GostBlockungsergebnisKursSchuelerZuordnungUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungsergebnisKursSchuelerZuordnungUpdate}-Objekt, um Schüler auf Kurse zu verteilen. *
(1) Wenn der Schüler nicht im Kurs ist, wird er hinzugefügt. *
(2) Wenn der Schüler in einem Nachbar-Kurs ist, wird er entfernt. * *
Hinweis: Wenn der Schüler den Kurs gar nicht gewählt hat, wird dies trotzdem erlaubt. Denn bei einer Umwahl, kann eine Kurszuordnung ungültig sein! * * @param kursSchuelerZuordnungen Alle Kurs-Schüler-Paare, welche hinzugefügt werden sollen. * * @return alle nötigen Veränderungen als {@link GostBlockungsergebnisKursSchuelerZuordnungUpdate}-Objekt, um Schüler auf Kurse zu verteilen. */ kursSchuelerUpdate_03a_FUEGE_KURS_SCHUELER_PAARE_HINZU(kursSchuelerZuordnungen: JavaSet): GostBlockungsergebnisKursSchuelerZuordnungUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungsergebnisKursSchuelerZuordnungUpdate}-Objekt, um Schüler auf Kurse zu verteilen mit Nebenbedingungen. *
(1) Wenn der Schüler den Ziel-Kurs nicht wählen darf (falsche Fachwahlen), dann passiert nichts. *
(2) Wenn der Schüler aus einem fixierten Kurs verschoben werden soll, dies aber nicht erlaubt ist, dann passiert nichts. *
(3) Der Schüler ggf. aus einem alten Kurs entfernt und die Fixier-Regel des alten Kurses wird ggf. entfernt. *
(4) Der Schüler wird einem neuen Kurs hinzugefügt und wird ggf. im neuen Kurs fixiert. * * @param kursSchuelerZuordnungen Alle Kurs-Schüler-Paare, welche hinzugefügt werden sollen. * @param verschiebeFixierteDesQuellkurses TRUE, dann werden fixierte SuS aus potentiell alten Kursen entfernt. * @param fixiereImZielkurs TRUE, dann werden die SuS im Zielkurs fixiert. * * @return alle nötigen Veränderungen als {@link GostBlockungsergebnisKursSchuelerZuordnungUpdate}-Objekt, um Schüler auf Kurse zu verteilen mit Nebenbedingungen. */ private kursSchuelerUpdate_03a_VERSCHIEBE_SCHUELER_ZU_KURSEN; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungsergebnisKursSchuelerZuordnungUpdate}-Objekt, um Schüler aus Kursen zu entfernen. *
(1) Wenn der Schüler im Kurs ist, wird er entfernt. *
(2) Falls es Schüler-Kurs-Fixierungen gibt, werden diese entfernt. * * @param kursSchuelerZuordnungen Alle Kurs-Schüler-Paare, welche entfernt werden sollen. * * @return alle nötigen Veränderungen als {@link GostBlockungsergebnisKursSchuelerZuordnungUpdate}-Objekt, um Schüler aus Kursen zu entfernen. */ kursSchuelerUpdate_03b_ENTFERNE_KURS_SCHUELER_PAARE(kursSchuelerZuordnungen: JavaSet): GostBlockungsergebnisKursSchuelerZuordnungUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungsergebnisKursSchuelerZuordnungUpdate}-Objekt, um Schüler-Kerngruppe auf mehrere Kurse zu verteilen. *
(1) Die SuS werden entsprechende der Methode {@link #kursSchuelerUpdate_03a_VERSCHIEBE_SCHUELER_ZU_KURSEN} verschoben. *
(2) Falls "zielKurseLeeren", werden alle SuS aus dem Ziel-Kurs entfernt, die nicht zur Kerngruppe gehören. * * @param idQuellKurs Der Quell-Kurs definiert die Kerngruppe. * @param idZielKurse Alle Ziel-Kurs-Schülermengen werden der Kerngruppe angeglichen. * @param verschiebeFixierteDesQuellkurses Falls TRUE, dann werden Fixierungen im Quell-Kurs gelöst, andernfalls wird der Schüler nicht verschoben. * @param inZielKursenFixieren Falls TRUE, wird nach der Verschiebung der Schüler im Ziel-Kurs fixiert. * @param zielKurseLeeren Falls TRUE, werden alle SuS aus dem Ziel-Kurs entfernt, die nicht zur Kerngruppe gehören. * * * @return alle nötigen Veränderungen als {@link GostBlockungsergebnisKursSchuelerZuordnungUpdate}-Objekt, um Schüler auf Kurse zu verteilen mit Nebenbedingungen. */ kursSchuelerUpdate_04_BILDE_KERNGRUPPEN(idQuellKurs: number, idZielKurse: JavaSet, verschiebeFixierteDesQuellkurses: boolean, inZielKursenFixieren: boolean, zielKurseLeeren: boolean): GostBlockungsergebnisKursSchuelerZuordnungUpdate; /** * Entfernt erst alle Regeln aus {@link GostBlockungsergebnisKursSchuelerZuordnungUpdate#listEntfernen} und * fügt dann die neuen Regeln aus {@link GostBlockungsergebnisKursSchuelerZuordnungUpdate#listHinzuzufuegen} hinzu. * Macht das selbe für die potentiell enthaltenen RegelUpdates. * * @param update Das {@link GostBlockungsergebnisKursSchuelerZuordnungUpdate}-Objekt. */ kursSchuelerUpdateExecute(update: GostBlockungsergebnisKursSchuelerZuordnungUpdate): void; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungsergebnisKursSchienenZuordnungUpdate}-Objekt, um Kurse in Schienen zu setzen. *
(1) Wenn der Kurs nicht in der Schiene ist, wird er hinzugefügt. * * @param kursSchienenZuordnungen Alle Kurs-Schienen-Paare, welche gesetzt werden sollen. * * @return alle nötigen Veränderungen als {@link GostBlockungsergebnisKursSchienenZuordnungUpdate}-Objekt, um Kurse in Schienen zu setzen. */ kursSchienenUpdate_01a_FUEGE_KURS_SCHIENEN_PAARE_HINZU(kursSchienenZuordnungen: JavaSet): GostBlockungsergebnisKursSchienenZuordnungUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungsergebnisKursSchienenZuordnungUpdate}-Objekt, um Kurse aus Schienen zu entfernen. *
(1) Wenn der Kurs nicht in der Schiene ist, wird er hinzugefügt. * * @param kursSchienenZuordnungen Alle Kurs-Schienen-Paare, welche entfernt werden sollen. * * @return alle nötigen Veränderungen als {@link GostBlockungsergebnisKursSchienenZuordnungUpdate}-Objekt, um Kurse aus Schienen zu entfernen. */ kursSchienenUpdate_01b_ENTFERNE_KURS_SCHIENEN_PAARE(kursSchienenZuordnungen: JavaSet): GostBlockungsergebnisKursSchienenZuordnungUpdate; /** * Liefert alle nötigen Veränderungen als {@link GostBlockungsergebnisKursSchienenZuordnungUpdate}-Objekt, um einen Kurs von einer Schiene zu einer anderen Schiene zu verschieben. * *
(1) Wenn der Kurs nicht in der Quell-Schiene ist, passiert nichts. *
(2) Wenn der Kurs bereits in der Ziel-Schiene ist, passiert nichts. *
(3) Andernfalls, wird der Kurs aus der Quell-Schiene entfernt und der Ziel-Schiene hinzugefügt. * * * @param idKurs Die Datenbank-ID des Kurses. * @param idSchieneQuelle Die Quell-Schiene, aus der der Kurs entfernt wird. * @param idSchieneZiel Die Ziel-Schiene, zu welcher der Kurs hinzugefügt wird. * * @return alle nötigen Veränderungen als {@link GostBlockungsergebnisKursSchienenZuordnungUpdate}-Objekt, um einen Kurs von einer Schiene zu einer anderen Schiene zu verschieben. */ kursSchienenUpdate_02a_VERSCHIEBE_KURS_VON_SCHIENE_NACH_SCHIENE(idKurs: number, idSchieneQuelle: number, idSchieneZiel: number): GostBlockungsergebnisKursSchienenZuordnungUpdate; /** * Entfernt erst alle Regeln aus {@link GostBlockungsergebnisKursSchienenZuordnungUpdate#listEntfernen} und * fügt dann die neuen Regeln aus {@link GostBlockungsergebnisKursSchienenZuordnungUpdate#listHinzuzufuegen} hinzu. * Macht das selbe für die potentiell enthaltenen RegelUpdates. * * @param update Das {@link GostBlockungsergebnisKursSchienenZuordnungUpdate}-Objekt. */ kursSchienenUpdateExecute(update: GostBlockungsergebnisKursSchienenZuordnungUpdate): void; /** * Liefert das zur ID zugehörige {@link GostBlockungSchiene}-Objekt.
* Delegiert den Aufruf an den Fächer-Manager des Eltern-Objektes {@link GostBlockungsdatenManager}.
* Wirft eine DeveloperNotificationException, falls die ID unbekannt ist. * * @param idSchiene Die Datenbank-ID der Schiene. * * @return das zur ID zugehörige {@link GostBlockungSchiene}-Objekt. * @throws DeveloperNotificationException falls die ID unbekannt ist. */ getSchieneG(idSchiene: number): GostBlockungSchiene; /** * Liefert das zur ID zugehörige {@link GostBlockungsergebnisSchiene}-Objekt. * * @param idSchiene Die Datenbank-ID der Schiene. * * @return das zur ID zugehörige {@link GostBlockungsergebnisSchiene}-Objekt. * @throws DeveloperNotificationException falls die Schiene nicht existiert. */ private getSchieneE; /** * Liefert TRUE, falls die Schiene keine Kurse enthält. * * @param idSchiene Die Datenbank-ID der Schiene. * * @return TRUE, falls die Schiene keine Kurse enthält. * @throws DeveloperNotificationException falls die Schiene nicht existiert. */ getOfSchieneIstLeer(idSchiene: number): boolean; /** * Liefert das zur Nummer zugehörige {@link GostBlockungsergebnisSchiene}-Objekt.
* Wirft eine {@link DeveloperNotificationException} falls eine solche Schiene nicht existiert. * * @param nrSchiene Die Nummer der Schiene. * * @return das zur Nummer zugehörige {@link GostBlockungsergebnisSchiene}-Objekt. * @throws DeveloperNotificationException falls eine solche Schiene nicht existiert. */ private getSchieneEmitNr; /** * Liefert die ID einer Schiene mit einer bestimmten Nummer. * * @param nrSchiene Die Nummer der Schiene. * * @return die ID einer Schiene mit einer bestimmten Nummer. * @throws DeveloperNotificationException falls eine solche Schiene nicht existiert. */ getOfSchieneID(nrSchiene: number): number; /** * Liefert die Menge aller Schienen. * * @return Die Menge aller Schienen. */ getMengeAllerSchienen(): List; /** * Liefert eine Menge aller Schienen mit mindestens einer Kollision. * * @return Eine Menge aller Schienen mit mindestens einer Kollision. */ private getMengeDerSchienenMitKollisionen; /** * Liefert TRUE, falls die E-Schiene existiert. * * @param idSchiene Die Datenbank-ID der Schiene. * @return TRUE, falls die E-Schiene existiert. */ getOfSchieneExists(idSchiene: number): boolean; /** * Liefert die Anzahl an Schülern in der Schiene mit der übergebenen ID zurück.
* Hinweis: Falls ein Schüler mehrfach in der Schiene ist, also mit Kollisionen, wird er mehrfach gezählt! * * @param idSchiene Die Datenbank-ID der Schiene. * * @return die Anzahl an Schülern in der Schiene mit der übergebenen ID zurück. */ getOfSchieneAnzahlSchueler(idSchiene: number): number; /** * Liefert TRUE, falls die Schiene mindestens eine Schüler-Kollision hat. * * @param idSchiene Die Datenbank-ID der Schiene. * * @return TRUE, falls die Schiene mindestens eine Schüler-Kollision hat. */ getOfSchieneHatKollision(idSchiene: number): boolean; /** * Liefert die Anzahl an Schüler-Kollisionen der Schiene.
* Hinweis Ein Schüler, der N>1 Mal in einer Schiene ist, erzeugt N-1 Kollisionen. * * @param idSchiene Die Datenbank-ID der Schiene. * * @return die Anzahl an Schüler-Kollisionen der Schiene. */ getOfSchieneAnzahlSchuelerMitKollisionen(idSchiene: number): number; /** * Liefert die Menge an Schüler-IDs, die in der Schiene eine Kollision haben. * * @param idSchiene Die Datenbank-ID der Schiene. * * @return Die Menge an Schüler-IDs, die in der Schiene eine Kollision haben. */ getOfSchieneSchuelermengeMitKollisionen(idSchiene: number): JavaSet; /** * Liefert die Menge an Kursen, die in der Schiene eine Kollision haben. * * @param idSchiene Die Datenbank-ID der Schiene. * * @return die Menge an Kursen, die in der Schiene eine Kollision haben. */ getOfSchieneKursmengeMitKollisionen(idSchiene: number): JavaSet; /** * Liefert die sortierte Menge an Kursen einer bestimmten Schiene. * * @param idSchiene Die Datenbank-ID der Schiene. * * @return die sortierte Menge an Kursen einer bestimmten Schiene. */ getOfSchieneKursmengeSortiert(idSchiene: number): List; /** * Liefert einen Tooltip für die Schiene, welche alle Kollisionen pro Kurs-Paarung darstellt. * * @param idSchiene Die Datenbank-ID der Schiene. * * @return einen Tooltip für die Schiene, welche alle Kollisionen pro Kurs-Paarung darstellt. */ private getOfSchieneTooltipKurskollisionen; /** * Liefert alle Kollisionen einer Schiene, als Liste von Liste von Kurs-Anzahl-Paaren. *
Pro innerer Liste gilt: Das erste Paar ist der Kurs, welcher mit allen anderen verglichen wurde, zusammen mit der Kollisions-Summe. *
Anschließend folgen alle anderen Kurse mit ihrer Kollisions-Anzahl, falls diese größer 0 ist. * * @param idSchiene Die Datenbank-ID der Schiene. * * @return alle Kollisionen einer Schiene, als Liste von Liste von Kurs-Anzahl-Paaren. */ getOfSchieneTooltipKurskollisionenAsData(idSchiene: number): List>>; /** * Liefert alle Kollisionen einer Schiene (pro Element ein Schüler). * * @param idSchiene Die Datenbank-ID der Schiene. * * @return alle Kollisionen einer Schiene (pro Element ein Schüler). */ getOfSchieneTooltipSchuelerkollisionen(idSchiene: number): string; private static getOfKursOfKursAnzahlGemeinsamerSchueler; /** * Liefert TRUE, falls ein Löschen der Schiene erlaubt ist.
* Kriterium: Es dürfen keine Kurse der Schiene zugeordnet sein. * * @param idSchiene Die Datenbank-ID der Schiene. * * @return TRUE, falls ein Löschen der Schiene erlaubt ist. * @throws DeveloperNotificationException Falls die Schiene nicht existiert. */ getOfSchieneRemoveAllowed(idSchiene: number): boolean; /** * Liefert die maximale Anzahl an Kursen, die es in einer Schiene gibt. * * @return die maximale Anzahl an Kursen, die es in einer Schiene gibt. */ getOfSchieneMaxKursanzahl(): number; /** * Liefert die Anzahl an externen SuS der Schiene. *
Hinweis: Ist ein Schüler mehrfach in der Schiene (Kollision) wird er auch mehrfach gezählt. * * @param idSchiene Die Datenbank-ID der Schiene. * * @return die Anzahl an externen SuS der Schiene. */ getOfSchieneAnzahlSchuelerExterne(idSchiene: number): number; /** * Liefert die Anzahl an Dummy-SuS der Schiene. * * @param idSchiene Die Datenbank-ID der Schiene. * * @return die Anzahl an Dummy-SuS der Schiene. */ getOfSchieneAnzahlSchuelerDummy(idSchiene: number): number; /** * Fügt die übergebene Schiene hinzu. * * @param idSchiene Die Datenbank-ID der Schiene. * * @throws DeveloperNotificationException falls die Schiene nicht zuerst im Datenmanager hinzugefügt wurde. */ setAddSchieneByID(idSchiene: number): void; /** * Löscht die übergebene Schiene. * * @param idSchiene Die Datenbank-ID der Schiene. * * @throws DeveloperNotificationException falls die Schiene nicht zuerst beim Datenmanager entfernt wurde, oder * falls die Schiene noch Kurszuordnungen hat. */ setRemoveSchieneByID(idSchiene: number): void; /** * Fügt den übergebenen Kurs hinzu. * * @param idKurs Die Datenbank-ID des Kurses. * * @throws DeveloperNotificationException Falls der Kurs nicht zuerst beim Datenmanager hinzugefügt wurde. */ setAddKursByID(idKurs: number): void; /** * Löscht alle übergebenen Kurse. Entfernt zuvor potentiell vorhandene Schülerinnen und Schüler aus dem Kurs. * * @param idKurse Die Liste der Datenbank-IDs der Kurse. * * @throws DeveloperNotificationException Falls mindestens einer der Kurse nicht zuerst beim Datenmanager entfernt wurde. */ setRemoveKurseByID(idKurse: List): void; /** * Verschiebt alles SuS von pKursID2delete nach pKursID1keep und * löscht dann den Kurs mit der ID beim {@link GostBlockungsdatenManager}, * anschließend in diesem Manager. * * @param idKursID1keep Die Datenbank-ID des Kurses, der erhalten bleibt. * @param idKursID2delete Die Datenbank-ID des Kurses, der gelöscht wird. */ setMergeKurseByID(idKursID1keep: number, idKursID2delete: number): void; /** * Erzeugt einen neuen Kurs2 beim {@link GostBlockungsdatenManager}, * dann bei diesem Manager und * verschiebt alle SuS des übergebenen Arrays von Kurs1 nach Kurs2. * * @param kurs1alt Der Kurs, der gesplittet wird. * @param kurs2neu Der Kurs, der neu erzeugt wird. * @param susVon1nach2 Die Datenbank-IDs der Schüler, die verschoben werden sollen. */ setSplitKurs(kurs1alt: GostBlockungKurs, kurs2neu: GostBlockungKurs, susVon1nach2: Array): void; /** * Verändert die Schienenanzahl eines Kurses. Dies ist nur bei einer Blockungsvorlage erlaubt. * * @param idKurs Die Datenbank-ID des Kurses. * @param anzahlSchienenNeu Die neue Schienenanzahl des Kurses. * * @throws DeveloperNotificationException Falls ein unerwarteter Fehler passiert. */ patchOfKursSchienenAnzahl(idKurs: number, anzahlSchienenNeu: number): void; /** * Informiert den Manager, dass sich bei mindestens einem Kurs die Lehrkraft geändert hat. * Führt zu einer Revalidierung der Bewertung des Ergebnisses. */ patchOfKursLehrkaefteChanged(): void; private createComparatorFachartKursartFach; private createComparatorFachartFachKursart; private createComparatorKursFachKursartNummer; private createComparatorKursKursartFachNummer; /** * Eine Logger-Ausgabe für Debug-Zwecke. * * @param logger Ein Logger für Debug-Zwecke. */ debug(logger: Logger): void; /** * Liefert einen String, der alle Schienen-Fachart-Kurs-Zuordnungen zeigt. * * @return einen String, der alle Schienen-Fachart-Kurs-Zuordnungen zeigt. */ private debugKursSchienenZuordnungen; transpilerCanonicalName(): string; isTranspiledInstanceOf(name: string): boolean; static class: Class; } export declare function cast_de_svws_nrw_core_utils_gost_GostBlockungsergebnisManager(obj: unknown): GostBlockungsergebnisManager; //# sourceMappingURL=GostBlockungsergebnisManager.d.ts.map