import { JavaObject } from '../../java/lang/JavaObject'; import { KursblockungInput } from '../../core/data/kursblockung/KursblockungInput'; import { KursblockungDynKurs } from '../../core/kursblockung/KursblockungDynKurs'; import { Logger } from '../../logger/Logger'; import { KursblockungDynStatistik } from '../../core/kursblockung/KursblockungDynStatistik'; import { KursblockungOutput } from '../../core/data/kursblockung/KursblockungOutput'; import { KursblockungDynSchueler } from '../../core/kursblockung/KursblockungDynSchueler'; export declare class KursblockungDynDaten extends JavaObject { private readonly logger; private readonly regelMap; private maxTimeMillis; private schienenArr; private kursArr; private kursArrFrei; private readonly kursMap; private fachartArr; private readonly fachartMap; private schuelerArr; private readonly schuelerMap; private readonly statistik; /** * Der Konstruktor der Klasse liest alle Daten von {@link KursblockungInput} ein * und baut die relevanten Datenstrukturen auf. * * @param pLogger Logger für Benutzerhinweise, Warnungen und Fehler. * @param pInput Die Eingabedaten (Schnittstelle zur GUI). */ constructor(pLogger: Logger, pInput: KursblockungInput); /** * Überprüft alle Referenzen in {@link KursblockungInput} und auch die * referentielle Integrität. * * @param pInput Das {@link KursblockungInput}-Objekt von der GUI. * @return {@code true}, falls kein Fehler gefunden wurde. */ private schritt01FehlerBeiReferenzen; private schritt02FehlerBeiRegelGruppierung; private schritt03FehlerBeiFachartenErstellung; private schritt04FehlerBeiSchuelerErstellung; private schritt05FehlerBeiSchuelerFachwahlenErstellung; private schritt06FehlerBeiStatistikErstellung; private schritt07FehlerBeiSchienenErzeugung; private schritt08FehlerBeiKursErstellung; private schritt09FehlerBeiKursFreiErstellung; private schritt10FehlerBeiFachartKursArrayErstellung; /** * Leert die Datenstruktur und teilt dem Logger einen Fehler mit. * * @param fehlermeldung Die Fehlermeldung. */ private fehler; /** * Liefert das Logger-Objekt für Benutzerhinweise, Warnungen und Fehler. * * @return Das Logger-Objekt für Benutzerhinweise, Warnungen und Fehler. */ gibLogger(): Logger; /** * Liefert das Statistik-Objekt (für Anfragen zu Nichtwahlen, Kursdifferenzen, * etc.). * * @return Das Statistik-Objekt (für Anfragen zu Nichtwahlen, Kursdifferenzen, * etc.). */ gibStatistik(): KursblockungDynStatistik; /** * Liefert die maximale Blockungszeit in Millisekunden. Entweder handelt es sich * um einen Standardwert oder der Wert wurde im Konstruktor als Regel übergeben. * * @return Liefert die maximale Blockungszeit in Millisekunden. */ gibBlockungszeitMillis(): number; /** * Liefert die maximal erlaubte Anzahl an Schienen. Entweder handelt es sich um * einen Standardwert oder der Wert wurde im Konstruktor als Regel übergeben. * * @return Liefert die maximal erlaubte Anzahl an Schienen. */ gibSchienenAnzahl(): number; /** * Erzeugt ein Objekt {@link KursblockungOutput}. Dieses Objekt beinhaltet alle * Informationen aus denen die GUI die Kurs-Zu-Schiene und die * SuS-Zu-Kurs-Zuordnungen rekonstruieren kann. * * @return Das Blockungsergebnis für die GUI. */ gibErzeugtesKursblockungOutput(): KursblockungOutput; /** * Liefert alle Kurse. * * @return Array aller Kurse. */ gibKurseAlle(): Array; /** * Liefert alle Kurse deren Lage nicht komplett fixiert ist. * * @return Array aller Kurse, deren Schienenlage noch veränderbar ist. */ gibKurseDieFreiSind(): Array; /** * Liefert die Anzahl alle Kurse deren Lage nicht komplett fixiert ist. * * @return Anzahl aller Kurse, deren Schienenlage noch veränderbar ist. */ gibKurseDieFreiSindAnzahl(): number; /** * Liefert einen Long-Wert, der einer Bewertung der Fachwahlmatrix entspricht. * Je kleiner der Wert, desto besser ist die Bewertung. * * @return Long-Wert, der einer Bewertung der Fachwahlmatrix entspricht. */ gibBewertungFachartPaar(): number; /** * Liefert ein Array aller Schülerinnen und Schüler. Falls der Parameter * {@code pNurMultiKurse} TRUE ist, dann werden nur SuS mit mindestens einem * Multikurs ausgewählt. * * @param pNurMultiKurse Falls TRUE, dann werden nur SuS mit mindestens einem * Multikurs ausgewählt. * * @return Ein Array aller Schülerinnen und Schüler. */ gibSchuelerArray(pNurMultiKurse: boolean): Array; /** * Entfernt alle SuS aus ihren Kursen. */ aktionSchuelerAusAllenKursenEntfernen(): void; /** * Debug Ausgaben. Nur für Testzwecke. */ debug(): void; /** * Speichert die Bewertung, die Kursverteilung und die Schülerverteilung im * Zustand S. */ aktionZustandSpeichernS(): void; /** * Speichert die Bewertung, die Kursverteilung und die Schülerverteilung im * Zustand K. */ aktionZustandSpeichernK(): void; /** * Lädt den zuvor gespeicherten Zustand S (Kursverteilung und * Schülerverteilung). */ aktionZustandLadenS(): void; /** * Lädt den zuvor gespeicherten Zustand Z (Kursverteilung und * Schülerverteilung). */ aktionZustandLadenK(): void; /** * Liefert den Wert {@code -1, 0 oder +1}, falls die Bewertung (Nichtwahlen, * Kursdiffenzen) des Zustandes S sich verschlechtert (-1), sich verbessert (+1) * hat oder gleichgeblieben (0) ist. * * @return {@code -1, 0 oder +1}, falls die Bewertung (Nichtwahlen, * Kursdiffenzen) des Zustandes S sich verschlechtert (-1), sich * verbessert (+1) hat oder gleichgeblieben (0) ist. */ gibBewertungJetztBesserAlsS(): number; /** * Liefert den Wert {@code -1, 0 oder +1}, falls die Bewertung (Nichtwahlen, * Kursdiffenzen) des Zustandes K sich verschlechtert (-1), sich verbessert (+1) * hat oder gleichgeblieben (0) ist. * * @return {@code -1, 0 oder +1}, falls die Bewertung (Nichtwahlen, * Kursdiffenzen) des Zustandes K sich verschlechtert (-1), sich * verbessert (+1) hat oder gleichgeblieben (0) ist. */ gibBewertungJetztBesserAlsK(): number; /** * Verteilte alle Kurse auf ihre Schienen zufällig. Kurse die keinen * Freiheitsgrad haben, werden dabei ignoriert. */ aktionKurseFreieZufaelligVerteilen(): void; /** * Verteilt einen Kurs zufällig. Kurse die keinen Freiheitsgrad haben, werden * dabei ignoriert. */ aktionKursFreienEinenZufaelligVerteilen(): void; /** * Liefert den Wert {@code -1, 0 oder +1}, falls die Bewertung (Nichtwahlen, * Kursdiffenzen) des Zustandes S sich verschlechtert (-1), sich verbessert (+1) * hat oder gleichgeblieben (0) ist. * * @return {@code -1, 0 oder +1}, falls die Bewertung (Nichtwahlen, * Kursdiffenzen) des Zustandes K sich verschlechtert (-1), sich * verbessert (+1) hat oder gleichgeblieben (0) ist. */ gibBewertung_NW_KD_JetztS(): number; isTranspiledInstanceOf(name: string): boolean; } export declare function cast_de_nrw_schule_svws_core_kursblockung_KursblockungDynDaten(obj: unknown): KursblockungDynDaten;