KursblockungDynDaten.d.ts 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. import { JavaObject } from '../../java/lang/JavaObject';
  2. import { KursblockungInput } from '../../core/data/kursblockung/KursblockungInput';
  3. import { KursblockungDynKurs } from '../../core/kursblockung/KursblockungDynKurs';
  4. import { Logger } from '../../logger/Logger';
  5. import { KursblockungDynStatistik } from '../../core/kursblockung/KursblockungDynStatistik';
  6. import { KursblockungOutput } from '../../core/data/kursblockung/KursblockungOutput';
  7. import { KursblockungDynSchueler } from '../../core/kursblockung/KursblockungDynSchueler';
  8. export declare class KursblockungDynDaten extends JavaObject {
  9. private readonly logger;
  10. private readonly regelMap;
  11. private maxTimeMillis;
  12. private schienenArr;
  13. private kursArr;
  14. private kursArrFrei;
  15. private readonly kursMap;
  16. private fachartArr;
  17. private readonly fachartMap;
  18. private schuelerArr;
  19. private readonly schuelerMap;
  20. private readonly statistik;
  21. /**
  22. * Der Konstruktor der Klasse liest alle Daten von {@link KursblockungInput} ein
  23. * und baut die relevanten Datenstrukturen auf.
  24. *
  25. * @param pLogger Logger für Benutzerhinweise, Warnungen und Fehler.
  26. * @param pInput Die Eingabedaten (Schnittstelle zur GUI).
  27. */
  28. constructor(pLogger: Logger, pInput: KursblockungInput);
  29. /**
  30. * Überprüft alle Referenzen in {@link KursblockungInput} und auch die
  31. * referentielle Integrität.
  32. *
  33. * @param pInput Das {@link KursblockungInput}-Objekt von der GUI.
  34. * @return {@code true}, falls kein Fehler gefunden wurde.
  35. */
  36. private schritt01FehlerBeiReferenzen;
  37. private schritt02FehlerBeiRegelGruppierung;
  38. private schritt03FehlerBeiFachartenErstellung;
  39. private schritt04FehlerBeiSchuelerErstellung;
  40. private schritt05FehlerBeiSchuelerFachwahlenErstellung;
  41. private schritt06FehlerBeiStatistikErstellung;
  42. private schritt07FehlerBeiSchienenErzeugung;
  43. private schritt08FehlerBeiKursErstellung;
  44. private schritt09FehlerBeiKursFreiErstellung;
  45. private schritt10FehlerBeiFachartKursArrayErstellung;
  46. /**
  47. * Leert die Datenstruktur und teilt dem Logger einen Fehler mit.
  48. *
  49. * @param fehlermeldung Die Fehlermeldung.
  50. */
  51. private fehler;
  52. /**
  53. * Liefert das Logger-Objekt für Benutzerhinweise, Warnungen und Fehler.
  54. *
  55. * @return Das Logger-Objekt für Benutzerhinweise, Warnungen und Fehler.
  56. */
  57. gibLogger(): Logger;
  58. /**
  59. * Liefert das Statistik-Objekt (für Anfragen zu Nichtwahlen, Kursdifferenzen,
  60. * etc.).
  61. *
  62. * @return Das Statistik-Objekt (für Anfragen zu Nichtwahlen, Kursdifferenzen,
  63. * etc.).
  64. */
  65. gibStatistik(): KursblockungDynStatistik;
  66. /**
  67. * Liefert die maximale Blockungszeit in Millisekunden. Entweder handelt es sich
  68. * um einen Standardwert oder der Wert wurde im Konstruktor als Regel übergeben.
  69. *
  70. * @return Liefert die maximale Blockungszeit in Millisekunden.
  71. */
  72. gibBlockungszeitMillis(): number;
  73. /**
  74. * Liefert die maximal erlaubte Anzahl an Schienen. Entweder handelt es sich um
  75. * einen Standardwert oder der Wert wurde im Konstruktor als Regel übergeben.
  76. *
  77. * @return Liefert die maximal erlaubte Anzahl an Schienen.
  78. */
  79. gibSchienenAnzahl(): number;
  80. /**
  81. * Erzeugt ein Objekt {@link KursblockungOutput}. Dieses Objekt beinhaltet alle
  82. * Informationen aus denen die GUI die Kurs-Zu-Schiene und die
  83. * SuS-Zu-Kurs-Zuordnungen rekonstruieren kann.
  84. *
  85. * @return Das Blockungsergebnis für die GUI.
  86. */
  87. gibErzeugtesKursblockungOutput(): KursblockungOutput;
  88. /**
  89. * Liefert alle Kurse.
  90. *
  91. * @return Array aller Kurse.
  92. */
  93. gibKurseAlle(): Array<KursblockungDynKurs>;
  94. /**
  95. * Liefert alle Kurse deren Lage nicht komplett fixiert ist.
  96. *
  97. * @return Array aller Kurse, deren Schienenlage noch veränderbar ist.
  98. */
  99. gibKurseDieFreiSind(): Array<KursblockungDynKurs>;
  100. /**
  101. * Liefert die Anzahl alle Kurse deren Lage nicht komplett fixiert ist.
  102. *
  103. * @return Anzahl aller Kurse, deren Schienenlage noch veränderbar ist.
  104. */
  105. gibKurseDieFreiSindAnzahl(): number;
  106. /**
  107. * Liefert einen Long-Wert, der einer Bewertung der Fachwahlmatrix entspricht.
  108. * Je kleiner der Wert, desto besser ist die Bewertung.
  109. *
  110. * @return Long-Wert, der einer Bewertung der Fachwahlmatrix entspricht.
  111. */
  112. gibBewertungFachartPaar(): number;
  113. /**
  114. * Liefert ein Array aller Schülerinnen und Schüler. Falls der Parameter
  115. * {@code pNurMultiKurse} TRUE ist, dann werden nur SuS mit mindestens einem
  116. * Multikurs ausgewählt.
  117. *
  118. * @param pNurMultiKurse Falls TRUE, dann werden nur SuS mit mindestens einem
  119. * Multikurs ausgewählt.
  120. *
  121. * @return Ein Array aller Schülerinnen und Schüler.
  122. */
  123. gibSchuelerArray(pNurMultiKurse: boolean): Array<KursblockungDynSchueler>;
  124. /**
  125. * Entfernt alle SuS aus ihren Kursen.
  126. */
  127. aktionSchuelerAusAllenKursenEntfernen(): void;
  128. /**
  129. * Debug Ausgaben. Nur für Testzwecke.
  130. */
  131. debug(): void;
  132. /**
  133. * Speichert die Bewertung, die Kursverteilung und die Schülerverteilung im
  134. * Zustand S.
  135. */
  136. aktionZustandSpeichernS(): void;
  137. /**
  138. * Speichert die Bewertung, die Kursverteilung und die Schülerverteilung im
  139. * Zustand K.
  140. */
  141. aktionZustandSpeichernK(): void;
  142. /**
  143. * Lädt den zuvor gespeicherten Zustand S (Kursverteilung und
  144. * Schülerverteilung).
  145. */
  146. aktionZustandLadenS(): void;
  147. /**
  148. * Lädt den zuvor gespeicherten Zustand Z (Kursverteilung und
  149. * Schülerverteilung).
  150. */
  151. aktionZustandLadenK(): void;
  152. /**
  153. * Liefert den Wert {@code -1, 0 oder +1}, falls die Bewertung (Nichtwahlen,
  154. * Kursdiffenzen) des Zustandes S sich verschlechtert (-1), sich verbessert (+1)
  155. * hat oder gleichgeblieben (0) ist.
  156. *
  157. * @return {@code -1, 0 oder +1}, falls die Bewertung (Nichtwahlen,
  158. * Kursdiffenzen) des Zustandes S sich verschlechtert (-1), sich
  159. * verbessert (+1) hat oder gleichgeblieben (0) ist.
  160. */
  161. gibBewertungJetztBesserAlsS(): number;
  162. /**
  163. * Liefert den Wert {@code -1, 0 oder +1}, falls die Bewertung (Nichtwahlen,
  164. * Kursdiffenzen) des Zustandes K sich verschlechtert (-1), sich verbessert (+1)
  165. * hat oder gleichgeblieben (0) ist.
  166. *
  167. * @return {@code -1, 0 oder +1}, falls die Bewertung (Nichtwahlen,
  168. * Kursdiffenzen) des Zustandes K sich verschlechtert (-1), sich
  169. * verbessert (+1) hat oder gleichgeblieben (0) ist.
  170. */
  171. gibBewertungJetztBesserAlsK(): number;
  172. /**
  173. * Verteilte alle Kurse auf ihre Schienen zufällig. Kurse die keinen
  174. * Freiheitsgrad haben, werden dabei ignoriert.
  175. */
  176. aktionKurseFreieZufaelligVerteilen(): void;
  177. /**
  178. * Verteilt einen Kurs zufällig. Kurse die keinen Freiheitsgrad haben, werden
  179. * dabei ignoriert.
  180. */
  181. aktionKursFreienEinenZufaelligVerteilen(): void;
  182. /**
  183. * Liefert den Wert {@code -1, 0 oder +1}, falls die Bewertung (Nichtwahlen,
  184. * Kursdiffenzen) des Zustandes S sich verschlechtert (-1), sich verbessert (+1)
  185. * hat oder gleichgeblieben (0) ist.
  186. *
  187. * @return {@code -1, 0 oder +1}, falls die Bewertung (Nichtwahlen,
  188. * Kursdiffenzen) des Zustandes K sich verschlechtert (-1), sich
  189. * verbessert (+1) hat oder gleichgeblieben (0) ist.
  190. */
  191. gibBewertung_NW_KD_JetztS(): number;
  192. isTranspiledInstanceOf(name: string): boolean;
  193. }
  194. export declare function cast_de_nrw_schule_svws_core_kursblockung_KursblockungDynDaten(obj: unknown): KursblockungDynDaten;