import { JavaObject } from '../../java/lang/JavaObject'; import { KursblockungDynFachart } from '../../core/kursblockung/KursblockungDynFachart'; import { Random } from '../../java/util/Random'; import { LinkedCollection } from '../../core/adt/collection/LinkedCollection'; import { KursblockungDynSchiene } from '../../core/kursblockung/KursblockungDynSchiene'; import { KursblockungDynSchueler } from '../../core/kursblockung/KursblockungDynSchueler'; import { Class } from '../../java/lang/Class'; import { Logger } from '../../core/logger/Logger'; export declare class KursblockungDynKurs extends JavaObject { /** * Der Default-Wert für die höchste Schüleranzahl pro Kurs. */ private static readonly MAX_SUS_DEFAULT; /** * Ein {@link Random}-Objekt zur Steuerung des Zufalls über einen Anfangs-Seed. */ private readonly _random; /** * Die ID des Kurses, welche von der Datenbank kommt. */ private readonly databaseID; /** * Die interne ID des Kurses. */ private readonly internalKursID; /** * Die Fachart die zu diesem Kurs gehört. */ private readonly fachart; /** * Schienen in denen der Kurs gerade ist, zum Teil fixiert. */ private readonly schienenLage; /** * Zum Speichern des Arrays {@link KursblockungDynKurs#schienenLage} */ private readonly schienenLageSaveS; /** * Zum Speichern des Arrays {@link KursblockungDynKurs#schienenLage} */ private readonly schienenLageSaveK; /** * Zum Speichern des Arrays {@link KursblockungDynKurs#schienenLage} */ private readonly schienenLageSaveG; /** * Anzahl der Fixierungen. */ private readonly schienenLageFixiert; /** * Schienen die getauscht werden könnten. */ private readonly schienenFrei; /** * Zum Speichern des Arrays {@link KursblockungDynKurs#schienenFrei} */ private readonly schienenFreiSaveS; /** * Zum Speichern des Arrays {@link KursblockungDynKurs#schienenFrei} */ private readonly schienenFreiSaveK; /** * Zum Speichern des Arrays {@link KursblockungDynKurs#schienenFrei} */ private readonly schienenFreiSaveG; /** * Die Anzahl an SuS in diesem Kurs. */ private schuelerAnzahl; /** * Die Anzahl an Dummy-SuS in diesem Kurs. */ private schuelerAnzahlDummy; /** * Die maximale Anzahl an erlaubten SuS in diesem Kurs. */ private schuelerAnzahlMaximal; /** * Logger für Benutzerhinweise, Warnungen und Fehler. */ private readonly logger; /** * Eine Array, welches dynamisch definiert, ob ein Schüler für diesen Kurs verboten ist. */ private readonly schuelerVerboten; /** * Eine Array, welches definiert, ob ein Schüler in diesem Kurs fixiert ist. */ private readonly schuelerFixiert; /** * Der Kurs wählt eine zufällige Schienenlage und fügt sich selbst den entsprechenden Schienen hinzu. * * @param pRandom Ein {@link Random}-Objekt zur Steuerung des Zufalls über einen Anfangs-Seed. * @param pSchienenLage Ein Array aller Schienen, in denen der Kurs gerade liegt. * @param pSchienenLageFixiert Anzahl an Schienen in {@code pSchienenLage}, die fixiert ist. * @param pSchienenFrei Ein Array aller Schienen, in die der Kurs wechseln könnte. * @param pKursID Die ID des Kurses. * @param pFachart Die zu diesem Kurs zugehörige Fachart. * @param pLogger Logger für Benutzerhinweise, Warnungen und Fehler. * @param pInternalID Eine interne ID für schnellen Zugriff. * @param pSchuelerAnzahl Die Anzahl aller Schüler. */ constructor(pRandom: Random, pSchienenLage: Array, pSchienenLageFixiert: number, pSchienenFrei: Array, pKursID: number, pFachart: KursblockungDynFachart, pLogger: Logger, pInternalID: number, pSchuelerAnzahl: number); /** * Gibt die String-Repräsentation des Kurses zurück. * * @return die String-Repräsentation des Kurses */ toString(): string; /** *Die Kurs-ID der GUI. * * @return Die Kurs-ID der GUI. */ gibDatenbankID(): number; /** *Liefert die zum Kurs zugehörige Fachart. * * @return Die zum Kurs zugehörige Fachart. */ gibFachart(): KursblockungDynFachart; /** *Liefert die aktuelle Anzahl an Schülern in diesem Kurs. * * @return Die aktuelle Anzahl an Schülern in diesem Kurs. */ gibSchuelerAnzahl(): number; /** * Liefert {@code true} falls die Schienenlage des Kurses noch veränderbar ist. Wenn der Kurs komplett fixiert ist, * oder so viele Schienen gesperrt sind, dass der Kurs keine Wahlmöglichkeit bezüglich seiner Schienen hat, dann ist * das Resultat {@code false}. * * @return Liefert {@code true}, falls die Schienenlage des Kurses noch veränderbar ist. */ gibHatFreiheitsgrade(): boolean; /** * Liefert die aktuelle Schienenlage dieses Kurses. * * @return Ein Array, das angibt, in welchen Schienen der Kurs ist. Die Werte sind 0-indiziert. */ gibSchienenLage(): Array; /** *Liefert die Anzahl an Schienen, die dieser Kurs belegt. * * @return Die Anzahl an Schienen, die dieser Kurs belegt. */ gibSchienenAnzahl(): number; /** *Beurteilt das Hinzufügen eines Schülers zu diesem Kurs. Je kleiner der Wert desto besser. * * @return Beurteilt das Hinzufügen eines Schülers zu diesem Kurs. Je kleiner der Wert desto besser. */ gibGewichtetesMatchingBewertung(): number; /** *Liefert TRUE, wenn die Schiene für den Kurs gesperrt wurde. * * @param pSchiene Die Schiene nach der gefragt wurde. * @return TRUE, wenn die Schiene für den Kurs gesperrt wurde. */ gibIstSchieneGesperrt(pSchiene: number): boolean; /** *Liefert TRUE, wenn die Schiene für den Kurs fixiert wurde. * * @param pSchiene Die Schiene nach der gefragt wurde. * @return TRUE, wenn die Schiene für den Kurs fixiert wurde. */ gibIstSchieneFixiert(pSchiene: number): boolean; /** *Liefert TRUE, falls der Kurs gerade in Schiene pSchiene ist. * * @param pSchiene Die Schiene nach der gefragt wurde. * @return TRUE, falls der Kurs gerade in Schiene pSchiene ist. */ gibIstInSchiene(pSchiene: number): boolean; /** *Liefert TRUE, falls sich der Kurs in einer Schiene aus [schieneVon, schieneBis] befindet. * * @param schieneVon Der Anfang des Intervalls (inklusive). * @param schieneBis Das Ende des Intervalls (inklusive). * @return TRUE, falls sich der Kurs in einer Schiene aus [schieneVon, schieneBis] befindet. */ gibIstImSchienenIntervall(schieneVon: number, schieneBis: number): boolean; /** *Liefert TRUE, falls dieser Kurs in Schiene c wandern darf. * * @param pSchiene Die Schiene, die angefragt wurde. * @return TRUE, falls dieser Kurs in Schiene c wandern darf. */ gibIstSchieneFrei(pSchiene: number): boolean; /** *Liefert die interne ID des Kurses. * * @return Die interne ID des Kurses. */ gibInternalID(): number; /** * Liefert TRUE, falls der Schueler theoretisch in den Kurs könnte. * * @param s Das {@link KursblockungDynSchueler}-Objekt. * * @return TRUE, falls der Schueler theoretisch in den Kurs könnte. */ gibIstErlaubtFuerSchueler(s: KursblockungDynSchueler): boolean; /** *Speichert die aktuelle Lage der Schienen im Zustand S, * um diese bei Bedarf mit der Methode {@link #aktionZustandLadenS} zu laden. */ aktionZustandSpeichernS(): void; /** *Speichert die aktuelle Lage der Schienen im Zustand K, * um diese bei Bedarf mit der Methode {@link #aktionZustandLadenK} zu laden. */ aktionZustandSpeichernK(): void; /** *Speichert die aktuelle Lage der Schienen im Zustand G, * um diese bei Bedarf mit der Methode {@link #aktionZustandLadenG} zu laden. */ aktionZustandSpeichernG(): void; /** *Lädt die zuvor mit der Methode {@link #aktionZustandSpeichernS} gespeicherte Lage der Schienen. */ aktionZustandLadenS(): void; /** *Lädt die zuvor mit der Methode {@link #aktionZustandSpeichernK} gespeicherte Lage der Schienen. */ aktionZustandLadenK(): void; /** * Lädt die Schienenlage des anderen {@link KursblockungDynKurs}-Objekts. * * @param b Das andere {@link KursblockungDynKurs}-Objekt. * @param schienenArr Das Array aller {@link KursblockungDynSchiene}-Objekte. */ aktionZustandLadenVon(b: KursblockungDynKurs, schienenArr: Array): void; /** *Lädt die zuvor mit der Methode {@link #aktionZustandSpeichernG} gespeicherte Lage der Schienen. */ aktionZustandLadenG(): void; /** *Verteilt den Kurs auf die Schienen zufällig. */ aktionZufaelligVerteilen(): void; /** *Setzt die Lage des Kurses auf die in der Liste übergebenen Schienen. * * @param pSchienenWahl Die Schienen (0-indiziert), in denen der Kurs liegen soll. */ aktionVerteileAufSchienen(pSchienenWahl: LinkedCollection): void; /** * Setzt die Lage des Kurses auf die übergebene Schiene. * * @param pSchiene Die Schiene (0-indiziert), in der der Kurs liegen soll. */ aktionSetzeInSchiene(pSchiene: number): void; /** * Fügt einen Schüler diesem Kurs hinzu. * * @param schuelerNr Die interne Nummer des Schülers. */ aktionSchuelerHinzufuegen(schuelerNr: number): void; /** * Entfernt einen Schüler aus diesem Kurs. * * @param schuelerNr Die interne Nummer des Schülers. */ aktionSchuelerEntfernen(schuelerNr: number): void; /** * Setzt die Höchstgrenze für die SuS in diesem Kurs. * * @param maxSuS Die maximale Anzahl an SuS für diesen Kurs. */ regel_15_setzeMaxSuS(maxSuS: number): void; /** * Merkt sich, dass ein Schüler in diesem Kurs fixiert ist. * * @param internalSchuelerID Die interne ID des Schülers. */ regel_04_setzeSchuelerFixierung(internalSchuelerID: number): void; /** * Fügt einen Dummy-Schüler diesem Kurs hinzu. */ aktionSchuelerDummyHinzufuegen(): void; /** * Debug Ausgabe. Nur für Testzwecke. * * @param schuelerArr Nötig, um den Kursen SuS zuzuordnen. */ debug(schuelerArr: Array): void; private aktionSchienenLageHinzufuegen; private aktionSchienenLageEntfernen; /** * Liefert die des Faches des Kurses. * * @return die des Faches des Kurses. */ gibFachID(): number; transpilerCanonicalName(): string; isTranspiledInstanceOf(name: string): boolean; static class: Class; } export declare function cast_de_svws_nrw_core_kursblockung_KursblockungDynKurs(obj: unknown): KursblockungDynKurs; //# sourceMappingURL=KursblockungDynKurs.d.ts.map