AbiturdatenManager.d.ts 36 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654
  1. import { JavaObject } from '../../../java/lang/JavaObject';
  2. import { GostBelegpruefungsArt } from '../../../core/abschluss/gost/GostBelegpruefungsArt';
  3. import { AbiturFachbelegungHalbjahr } from '../../../core/data/gost/AbiturFachbelegungHalbjahr';
  4. import { GostBelegpruefungErgebnis } from '../../../core/abschluss/gost/GostBelegpruefungErgebnis';
  5. import { GostKursart } from '../../../core/types/gost/GostKursart';
  6. import { Sprachendaten } from '../../../core/data/Sprachendaten';
  7. import { GostFachbereich } from '../../../core/types/gost/GostFachbereich';
  8. import { GostHalbjahr } from '../../../core/types/gost/GostHalbjahr';
  9. import { GostSchriftlichkeit } from '../../../core/types/gost/GostSchriftlichkeit';
  10. import { List } from '../../../java/util/List';
  11. import { Vector } from '../../../java/util/Vector';
  12. import { GostFach } from '../../../core/data/gost/GostFach';
  13. import { GostAbiturFach } from '../../../core/types/gost/GostAbiturFach';
  14. import { AbiturFachbelegung } from '../../../core/data/gost/AbiturFachbelegung';
  15. import { GostBelegpruefung } from '../../../core/abschluss/gost/GostBelegpruefung';
  16. import { Abiturdaten } from '../../../core/data/gost/Abiturdaten';
  17. export declare class AbiturdatenManager extends JavaObject {
  18. private readonly abidaten;
  19. private readonly gostFaecher;
  20. private readonly pruefungsArt;
  21. private readonly mapFachbereiche;
  22. private belegpruefungen;
  23. private belegpruefungsfehler;
  24. private belegpruefungErfolgreich;
  25. /**
  26. * Erstellt ein neues Manager-Objekt, welches mit den übergebenen Abiturdaten verknüpft wird.
  27. *
  28. * @param abidaten die Abiturdaten
  29. * @param gostFaecher die Fächer der Gymnasialen Oberstufe, die bei dem Abiturjahrgang zur Verfügung stehen.
  30. * @param pruefungsArt die Art der Belegpruefung (z.B. EF1 oder GESAMT)
  31. */
  32. constructor(abidaten: Abiturdaten, gostFaecher: List<GostFach>, pruefungsArt: GostBelegpruefungsArt);
  33. /**
  34. * Führt die Belegprüfung der Art pruefungs_art für einen Schüler durch, dessen Abiturdaten mit dem angegebenen
  35. * Manager verwaltet werden.
  36. *
  37. * @param pruefungs_art die Art der Prüfung, die durchgeführt wird
  38. *
  39. * @return eine Liste mit den durchgefuehrten Belegpruefungen
  40. */
  41. getPruefungen(pruefungs_art: GostBelegpruefungsArt): Vector<GostBelegpruefung>;
  42. /**
  43. * Initialisiert bzw. reinitialisert die Datenstrukturen, die für den schnellen Zugriff auf die Daten
  44. * eingerichtet werden.
  45. */
  46. init(): void;
  47. /**
  48. * Initialisiert bzw. reinitialisiert die Map für den schnellen Zugriff auf Fachbelegungen
  49. * anhand des Fachbereichs.
  50. */
  51. private initMapFachbereiche;
  52. /**
  53. * Liefert die in den Abiturdaten enthaltenen Sprachendaten.
  54. *
  55. * @return Die Sprachendaten (siehe {@link Sprachendaten})
  56. */
  57. getSprachendaten(): Sprachendaten | null;
  58. /**
  59. * Berechnet die Wochenstunden, welche von dem Schüler in den einzelnen
  60. * Halbjahren der gymnasialen Oberstufe für das Abitur relevant belegt wurden.
  61. *
  62. * @return ein Array mit den Wochenstunden für die sechs Halbjahre
  63. */
  64. getWochenstunden(): Array<number> | null;
  65. /**
  66. * Berechnet die Anzahl der anrechenbaren Kurse, welche von dem Schüler in den einzelnen
  67. * Halbjahren der gymnasialen Oberstufe für das Abitur belegt wurden.
  68. *
  69. * @return ein Array mit den anrechenbaren Kursen für die sechs Halbjahre
  70. */
  71. getAnrechenbareKurse(): Array<number> | null;
  72. /**
  73. * Liefert das Fach der gymnasialen Oberstufe für die angegeben Abiturfachbelegung.
  74. *
  75. * @param belegung die Fachbelegung (siehe {@link AbiturFachbelegung})
  76. *
  77. * @return das Fach der gymnasialen Oberstufe (siehe {@link GostFach})
  78. */
  79. getFach(belegung: AbiturFachbelegung | null): GostFach | null;
  80. /**
  81. * Prüft, ob das Faches in allen angegebenen Halbjahren belegt wurde.
  82. * Ist die Fachbelegung null, so schlägt die Prüfung fehl. Wird bei einer gültigen Fachbelegung kein Halbjahr
  83. * angegeben, so ist die Prüfung erfolgreich, da kein Halbjahr geprüft werden muss.
  84. *
  85. * @param fachbelegung die zu prüfende Fachbelegung
  86. * @param halbjahre die zu prüfenden Halbjahre
  87. *
  88. * @return true, falls das Fach in den Halbjahren belegt wurde, sonst false
  89. */
  90. pruefeBelegung(fachbelegung: AbiturFachbelegung | null, ...halbjahre: Array<GostHalbjahr>): boolean;
  91. /**
  92. * Bestimmt die Anzahl der Fachbelegungen, die dem Fach zugeordnet sind.
  93. * Wird keine gültige Fachbelegung übergeben, so wird 0 zurückgegeben.
  94. *
  95. * @param fachbelegung die Fachbelegung
  96. *
  97. * @return die Anzahl der Belegungen des Faches
  98. */
  99. zaehleBelegung(fachbelegung: AbiturFachbelegung | null): number;
  100. /**
  101. * Zählt die Anzahl der Belegungen für die angegebenen Fachbelegungen in den angegeben Halbjahren.
  102. * Ist die Fachbelegung null, so wird 0 zurückgegeben. Wird bei einer gültigen Fachbelegung kein Halbjahr
  103. * angegeben, so wird ebenfalls 0 zurückgegeben.
  104. *
  105. * @param fachbelegungen die Fachbelegungen
  106. * @param halbjahre die Halbjahre
  107. *
  108. * @return die Anzahl der Belegungen in den Halbjahren und den Fächern
  109. */
  110. zaehleBelegungInHalbjahren(fachbelegungen: List<AbiturFachbelegung> | null, ...halbjahre: Array<GostHalbjahr>): number;
  111. /**
  112. * Prüft, ob die Belegung des Faches in den angegebenen Halbjahren der angegebenen Kursart entspricht.
  113. * Ist die Fachbelegung null, so schlägt die Prüfung fehl. Wird bei einer gültigen Fachbelegung kein Halbjahr
  114. * angegeben, so ist die Prüfung erfolgreich, da kein Halbjahr geprüft werden muss.
  115. *
  116. * @param fachbelegung die zu prüfende Fachnbelegung
  117. * @param kursart die zu prüfende Kursart
  118. * @param halbjahre die zu prüfenden Halbjahre
  119. *
  120. * @return true, falls die Schriftlichkeit in den Halbjahren gegeben ist, sonst false
  121. */
  122. pruefeBelegungMitKursart(fachbelegung: AbiturFachbelegung | null, kursart: GostKursart, ...halbjahre: Array<GostHalbjahr>): boolean;
  123. /**
  124. * Prüft, ob eine Fachbelegung existiert, welche in den angegebenen Halbjahren der angegebenen Kursart
  125. * entspricht.
  126. * Ist keine Fachbelegung angegeben, so schlägt die Prüfung fehl. Wird bei einer gültigen
  127. * Fachbelegung kein Halbjahr angegeben, so ist die Prüfung erfolgreich, da kein Halbjahr geprüft werden muss.
  128. *
  129. * @param fachbelegungen die zu prüfenden Fachnbelegungen
  130. * @param kursart die zu prüfende Kursart
  131. * @param halbjahre die zu prüfenden Halbjahre
  132. *
  133. * @return true, falls die Schriftlichkeit in den Halbjahren gegeben ist, sonst false
  134. */
  135. pruefeBelegungExistiertMitKursart(fachbelegungen: List<AbiturFachbelegung> | null, kursart: GostKursart, ...halbjahre: Array<GostHalbjahr>): boolean;
  136. /**
  137. * Prüft, ob die Belegung des Faches in den angegebenen Halbjahren mindestens einmal die angegebenen Kursart hat.
  138. * Ist die Fachbelegung null, so schlägt die Prüfung fehl. Wird bei einer gültigen Fachbelegung kein Halbjahr
  139. * angegeben, so ist die Prüfung nicht erfolgreich, da kein Halbjahr geprüft werden muss und somit die Kursart nicht
  140. * einmal existiert.
  141. *
  142. * @param fachbelegung die zu prüfende Fachnbelegung
  143. * @param kursart die zu prüfende Kursart
  144. * @param halbjahre die zu prüfenden Halbjahre
  145. *
  146. * @return true, falls die Kursart mindestens einmal in den Halbjahren gegeben ist, sonst false
  147. */
  148. pruefeBelegungHatMindestensEinmalKursart(fachbelegung: AbiturFachbelegung | null, kursart: GostKursart, ...halbjahre: Array<GostHalbjahr>): boolean;
  149. /**
  150. * Prüft, ob die Belegung des Faches in dem angegebenen Halbjahr der angegebenen Schriftlichkeit entspricht.
  151. * Ist die Fachbelegung null, so schlägt die Prüfung fehl.
  152. *
  153. * @param fachbelegung die zu prüfende Fachnbelegung
  154. * @param schriftlichkeit die zu prüfende Schriftlichkeit
  155. * @param halbjahr das zu prüfende Halbjahr
  156. *
  157. * @return true, falls die Schriftlichkeit in dem Halbjahr gegeben ist, sonst false
  158. */
  159. pruefeBelegungMitSchriftlichkeitEinzeln(fachbelegung: AbiturFachbelegung | null, schriftlichkeit: GostSchriftlichkeit, halbjahr: GostHalbjahr): boolean;
  160. /**
  161. * Prüft, ob die Belegung des Faches in den angegebenen Halbjahren der angegebenen Schriftlichkeit entspricht.
  162. * Ist die Fachbelegung null, so schlägt die Prüfung fehl. Wird bei einer gültigen Fachbelegung kein Halbjahr
  163. * angegeben, so ist die Prüfung erfolgreich, da kein Halbjahr geprüft werden muss.
  164. *
  165. * @param fachbelegung die zu prüfende Fachnbelegung
  166. * @param schriftlichkeit die zu prüfende Schriftlichkeit
  167. * @param halbjahre die zu prüfenden Halbjahre
  168. *
  169. * @return true, falls die Schriftlichkeit in den Halbjahren gegeben ist, sonst false
  170. */
  171. pruefeBelegungMitSchriftlichkeit(fachbelegung: AbiturFachbelegung | null, schriftlichkeit: GostSchriftlichkeit, ...halbjahre: Array<GostHalbjahr>): boolean;
  172. /**
  173. * Prüft, ob eine Belegung des Faches in den angegebenen Halbjahren nicht der angegebenen Schriftlichkeit entspricht.
  174. * Ist die Fachbelegung null, so schlägt die Prüfung fehl. Wird bei einer gültigen Fachbelegung kein Halbjahr
  175. * angegeben, so ist die Prüfung erfolgreich, da kein Halbjahr geprüft werden muss.
  176. *
  177. * @param fachbelegung die zu prüfende Fachnbelegung
  178. * @param schriftlichkeit die zu prüfende Schriftlichkeit
  179. * @param halbjahre die zu prüfenden Halbjahre
  180. *
  181. * @return true, falls die Schriftlichkeit in den Halbjahren nicht gegeben ist, sonst false
  182. */
  183. pruefeBelegungErfuelltNicht(fachbelegung: AbiturFachbelegung | null, schriftlichkeit: GostSchriftlichkeit, ...halbjahre: Array<GostHalbjahr>): boolean;
  184. /**
  185. * Prüft, ob eine Belegung des Faches in den angegebenen Halbjahren nicht der angegebenen Schriftlichkeit entspricht,
  186. * sofern es in dem Halbjahr überhaupt belegt wurde..
  187. * Ist die Fachbelegung null, so schlägt die Prüfung fehl. Wird bei einer gültigen Fachbelegung kein Halbjahr
  188. * angegeben, so ist die Prüfung erfolgreich, da kein Halbjahr geprüft werden muss.
  189. *
  190. * @param fachbelegung die zu prüfende Fachnbelegung
  191. * @param schriftlichkeit die zu prüfende Schriftlichkeit
  192. * @param halbjahre die zu prüfenden Halbjahre
  193. *
  194. * @return true, falls die Schriftlichkeit in den Halbjahren nicht gegeben ist, sonst false
  195. */
  196. pruefeBelegungErfuelltNichtFallsBelegt(fachbelegung: AbiturFachbelegung | null, schriftlichkeit: GostSchriftlichkeit, ...halbjahre: Array<GostHalbjahr>): boolean;
  197. /**
  198. * Prüft, ob die Belegung des Faches in den angegebenen Halbjahren mindestens einmal die angegebene Schritflichkeit hat.
  199. * Ist die Fachbelegung null, so schlägt die Prüfung fehl. Wird bei einer gültigen Fachbelegung kein Halbjahr
  200. * angegeben, so ist die Prüfung nicht erfolgreich, da kein Halbjahr geprüft werden muss und somit die Schriftlichkeit nicht
  201. * einmal existiert.
  202. *
  203. * @param fachbelegung die zu prüfende Fachbelegung
  204. * @param schriftlichkeit die zu prüfende Schriftlichkeit
  205. * @param halbjahre die zu prüfenden Halbjahre
  206. *
  207. * @return true, falls die angegebene Schriftlichkeit mindestens einmal in den Halbjahren gegeben ist, sonst false
  208. */
  209. pruefeBelegungHatMindestensEinmalSchriftlichkeit(fachbelegung: AbiturFachbelegung | null, schriftlichkeit: GostSchriftlichkeit, ...halbjahre: Array<GostHalbjahr>): boolean;
  210. /**
  211. * Prüft, ob eine Fachbelegung existiert, welche in den angegebenen Halbjahren mindestens einmal die angegebene
  212. * Schritflichkeit hat.
  213. * Ist die Fachbelegung null, so schlägt die Prüfung fehl. Wird bei einer gültigen Fachbelegung kein Halbjahr
  214. * angegeben, so ist die Prüfung nicht erfolgreich, da kein Halbjahr geprüft werden muss und somit die Schriftlichkeit nicht
  215. * einmal existiert.
  216. *
  217. * @param fachbelegungen die zu prüfenden Fachbelegungen
  218. * @param schriftlichkeit die zu prüfende Schriftlichkeit
  219. * @param halbjahre die zu prüfenden Halbjahre
  220. *
  221. * @return true, falls die angegebene Schriftlichkeit bei einer Fachbelegung mindestens einmal in den Halbjahren gegeben ist, sonst false
  222. */
  223. pruefeBelegungExistiertHatMindestensEinmalSchriftlichkeit(fachbelegungen: List<AbiturFachbelegung> | null, schriftlichkeit: GostSchriftlichkeit, ...halbjahre: Array<GostHalbjahr>): boolean;
  224. /**
  225. * Prüft, ob die Belegung eines der angegebenen Fächer mit den angegebenen Halbjahren existiert.
  226. * Ist keine Fachbelegung gegeben, so schlägt die Prüfung fehl. Wird bei einer gültigen Fachbelegung kein Halbjahr
  227. * angegeben, so ist die Prüfung erfolgreich, da kein Halbjahr geprüft werden muss.
  228. * In dieser Methode wird ggf. auch geprüft, ob weitere Fachbelegungen existieren, welche das gleiche
  229. * Statistik-Kürzel haben und Ersatzweise eine Halbjahres-Belegung ersetzen können. Dies ist z.B. bei bilingualen
  230. * Fächern nötig oder bei der Unterscheidung von Sport-Profilen.
  231. *
  232. * @param fachbelegungen die zu prüfenden Fachnbelegungen
  233. * @param halbjahre die zu prüfenden Halbjahre
  234. *
  235. * @return true, falls eine Fachbelegung mit den Halbjahren existiert, sonst false
  236. */
  237. pruefeBelegungExistiert(fachbelegungen: List<AbiturFachbelegung> | null, ...halbjahre: Array<GostHalbjahr>): boolean;
  238. /**
  239. * Prüft, ob die Belegung eines der angegebenen Fächer mit dem angegebenen Halbjahr existiert.
  240. * Ist keine Fachbelegung gegeben, so schlägt die Prüfung fehl.
  241. * In dieser Methode wird ggf. auch geprüft, ob weitere Fachbelegungen existieren, welche das gleiche
  242. * Statistik-Kürzel haben und Ersatzweise eine Halbjahres-Belegung ersetzen können. Dies ist z.B. bei bilingualen
  243. * Fächern nötig oder bei der Unterscheidung von Sport-Profilen.
  244. *
  245. * @param fachbelegungen die zu prüfenden Fachnbelegungen
  246. * @param halbjahr das zu prüfende Halbjahr
  247. *
  248. * @return true, falls eine Fachbelegung mit dem Halbjahr existiert, sonst false
  249. */
  250. pruefeBelegungExistiertEinzeln(fachbelegungen: List<AbiturFachbelegung> | null, halbjahr: GostHalbjahr): boolean;
  251. /**
  252. * Prüft, ob die Belegung eines der angegebenen Fächer mit einer durchgängigen Belegung existiert,
  253. * die zumindest in der Q1 und der Q2.1 schriftlich ist.
  254. * In dieser Methode wird ggf. auch geprüft, ob weitere Fachbelegungen existieren, welche das gleiche
  255. * Statistik-Kürzel haben und Ersatzweise eine Halbjahres-Belegung ersetzen können. Dies ist bei bilingualen
  256. * Fächern nötig.
  257. * Ist keine Fachbelegung gegeben, so schlägt die Prüfung fehl.
  258. *
  259. * @param fachbelegungen die zu prüfenden Fachnbelegungen
  260. *
  261. * @return true, falls eine durchgehend schriftliche Fachbelegung existiert, sonst false
  262. */
  263. pruefeBelegungExistiertDurchgehendSchriftlich(fachbelegungen: List<AbiturFachbelegung> | null): boolean;
  264. /**
  265. * Prüft, ob die Belegung eines der angegebenen Fächer in dem angegebenen Halbjahr der angegebenen Schriftlichkeit entspricht.
  266. * Ist keine Fachbelegung gegeben, so schlägt die Prüfung fehl.
  267. *
  268. * @param fachbelegungen die zu prüfenden Fachnbelegungen
  269. * @param schriftlichkeit die zu prüfende Schriftlichkeit
  270. * @param halbjahr das zu prüfende Halbjahr
  271. *
  272. * @return true, falls bei einer Fachbelegung die Schriftlichkeit in dem Halbjahr gegeben ist, sonst false
  273. */
  274. pruefeBelegungExistiertMitSchriftlichkeitEinzeln(fachbelegungen: List<AbiturFachbelegung | null> | null, schriftlichkeit: GostSchriftlichkeit, halbjahr: GostHalbjahr): boolean;
  275. /**
  276. * Prüft, ob die Belegung eines der angegebenen Fächer in den angegebenen Halbjahren der angegebenen Schriftlichkeit entspricht.
  277. * Ist keine Fachbelegung gegeben, so schlägt die Prüfung fehl. Wird bei einer gültigen Fachbelegung kein Halbjahr
  278. * angegeben, so ist die Prüfung erfolgreich, da kein Halbjahr geprüft werden muss.
  279. *
  280. * @param fachbelegungen die zu prüfenden Fachnbelegungen
  281. * @param schriftlichkeit die zu prüfende Schriftlichkeit
  282. * @param halbjahre die zu prüfenden Halbjahre
  283. *
  284. * @return true, falls bei einer Fachbelegung die Schriftlichkeit in den Halbjahren gegeben ist, sonst false
  285. */
  286. pruefeBelegungExistiertMitSchriftlichkeit(fachbelegungen: List<AbiturFachbelegung> | null, schriftlichkeit: GostSchriftlichkeit, ...halbjahre: Array<GostHalbjahr>): boolean;
  287. /**
  288. * Prüft, ob die Belegung eines der angegebenen Fächer in den angegebenen Halbjahren mindestens einmal die angegebene Kursart
  289. * hat. Ist keine Fachbelegung gegeben, so schlägt die Prüfung fehl. Wird bei einer gültigen Fachbelegung kein Halbjahr
  290. * angegeben, so ist die Prüfung erfolgreich, da kein Halbjahr geprüft werden muss.
  291. *
  292. * @param fachbelegungen die zu prüfenden Fachnbelegungen
  293. * @param kursart die zu prüfende Kursart
  294. * @param halbjahre die zu prüfenden Halbjahre
  295. *
  296. * @return true, falls die Kursart bei einer Fachbelegung mindestens einmal in den Halbjahren gegeben ist, sonst false
  297. */
  298. pruefeBelegungExistiertHatMindestensEinmalKursart(fachbelegungen: List<AbiturFachbelegung> | null, kursart: GostKursart, ...halbjahre: Array<GostHalbjahr>): boolean;
  299. /**
  300. * Prüft, ob die Belegung eines der angegebenen Fächer in den angegebenen Halbjahren existiert,
  301. * bei welchem in mind. einem der Halbjahren die angebene Schriftlichkeit nicht gegeben ist.
  302. * Ist keine Fachbelegung gegeben, so schlägt die Prüfung fehl. Wird bei einer gültigen Fachbelegung kein Halbjahr
  303. * angegeben, so ist die Prüfung erfolgreich, da kein Halbjahr geprüft werden muss.
  304. *
  305. * @param fachbelegungen die zu prüfenden Fachnbelegungen
  306. * @param schriftlichkeit die zu prüfende Schriftlichkeit
  307. * @param halbjahre die zu prüfenden Halbjahre
  308. *
  309. * @return true oder false (siehe oben)
  310. */
  311. pruefeBelegungExistiertErfuelltNicht(fachbelegungen: List<AbiturFachbelegung> | null, schriftlichkeit: GostSchriftlichkeit, ...halbjahre: Array<GostHalbjahr>): boolean;
  312. /**
  313. * Prüft, ob die Belegung eines der angegebenen Fächer in den angegebenen Halbjahren existiert,
  314. * bei welchem in mind. einem der Halbjahren die angebene Schriftlichkeit nicht gegeben ist, sofern
  315. * das Fach überhaupt belegt wurde.
  316. * Ist keine Fachbelegung gegeben, so schlägt die Prüfung fehl. Wird bei einer gültigen Fachbelegung kein Halbjahr
  317. * angegeben, so ist die Prüfung erfolgreich, da kein Halbjahr geprüft werden muss.
  318. *
  319. * @param fachbelegungen die zu prüfenden Fachnbelegungen
  320. * @param schriftlichkeit die zu prüfende Schriftlichkeit
  321. * @param halbjahre die zu prüfenden Halbjahre
  322. *
  323. * @return true oder false (siehe oben)
  324. */
  325. pruefeBelegungExistiertErfuelltNichtFallsBelegt(fachbelegungen: List<AbiturFachbelegung> | null, schriftlichkeit: GostSchriftlichkeit, ...halbjahre: Array<GostHalbjahr>): boolean;
  326. /**
  327. * Prüft, ob die Belegung des Faches in den angegebenen Halbjahren der angegebenen Schriftlichkeit entspricht
  328. * und das Fach durchgehend belegbar ist.
  329. * Ist die Fachbelegung null, so schlägt die Prüfung fehl. Wird bei einer gültigen Fachbelegung kein Halbjahr
  330. * angegeben, so ist die Prüfung erfolgreich, da kein Halbjahr geprüft werden muss.
  331. *
  332. * @param fachbelegung die zu prüfende Fachnbelegung
  333. * @param schriftlichkeit die zu prüfende Schriftlichkeit
  334. * @param halbjahre die zu prüfenden Halbjahre
  335. *
  336. * @return true, falls die Schriftlichkeit in den Halbjahren gegeben ist, sonst false
  337. */
  338. pruefeBelegungDurchgehendBelegbar(fachbelegung: AbiturFachbelegung | null, schriftlichkeit: GostSchriftlichkeit, ...halbjahre: Array<GostHalbjahr>): boolean;
  339. /**
  340. * Prüft, ob die Belegung eines der angegebenen Fächer in den angegebenen Halbjahren der angegebenen Schriftlichkeit entspricht
  341. * und das Fach durchgängig belegbar ist.
  342. * Ist keine Fachbelegung gegeben, so schlägt die Prüfung fehl. Wird bei einer gültigen Fachbelegung kein Halbjahr
  343. * angegeben, so ist die Prüfung erfolgreich, da kein Halbjahr geprüft werden muss.
  344. *
  345. * @param fachbelegungen die zu prüfenden Fachnbelegungen
  346. * @param schriftlichkeit die zu prüfende Schriftlichkeit
  347. * @param halbjahre die zu prüfenden Halbjahre
  348. *
  349. * @return true, falls bei einer Fachbelegung die Schriftlichkeit in den Halbjahren gegeben ist, sonst false
  350. */
  351. pruefeBelegungDurchgehendBelegbarExistiert(fachbelegungen: List<AbiturFachbelegung> | null, schriftlichkeit: GostSchriftlichkeit, ...halbjahre: Array<GostHalbjahr>): boolean;
  352. /**
  353. * Prüft, ob die Belegung eines der angegebenen Fächer in den angegebenen Halbjahren der angegebenen Schriftlichkeit entspricht
  354. * und das Fach durchgängig belegt ist.
  355. * Ist keine Fachbelegung gegeben, so schlägt die Prüfung fehl. Wird bei einer gültigen Fachbelegung kein Halbjahr
  356. * angegeben, so ist die Prüfung erfolgreich sofern das Fach durchgängig belegt wurde, da kein Halbjahr auf die
  357. * Schriftlichkeit geprüft werden muss.
  358. *
  359. * @param fachbelegungen die zu prüfenden Fachnbelegungen
  360. * @param schriftlichkeit die zu prüfende Schriftlichkeit
  361. * @param halbjahre die zu prüfenden Halbjahre
  362. *
  363. * @return true, falls bei eine Fachbelegung durchgängig belegt wurde und die Schriftlichkeit in den Halbjahren gegeben ist, sonst false
  364. */
  365. pruefeBelegungDurchgehendBelegtExistiert(fachbelegungen: List<AbiturFachbelegung> | null, schriftlichkeit: GostSchriftlichkeit, ...halbjahre: Array<GostHalbjahr>): boolean;
  366. /**
  367. * Prüft, ob die Fachbelegung in mindestens einem der Halbjahre die angegebene Kursart aufweist.
  368. * Existiert die Fachbelegung nicht (null), so kommt die Kursart auch nicht vor.
  369. *
  370. * @param fachbelegung die Fachbelegung
  371. * @param kursart die Kursart
  372. *
  373. * @return true, falls mindestens einmal die Kursart belegt wurde, sonst false
  374. */
  375. pruefeAufKursart(fachbelegung: AbiturFachbelegung | null, kursart: GostKursart): boolean;
  376. /**
  377. * Filtert die Fachbelegungen und gibt nur die Fachbelegungen zurück, bei denen die
  378. * Kursart existiert.
  379. * Wird keine Fachbelegung übergeben (null oder leere Liste), so kommt auch keine
  380. * Belegung mit der Kursart vor.
  381. *
  382. * @param fachbelegungen die Fachbelegungen
  383. * @param kursart die Kursart
  384. *
  385. * @return eine Liste mit den Fachbelegungen, welche die kursart haben
  386. */
  387. filterBelegungKursartExistiert(fachbelegungen: List<AbiturFachbelegung> | null, kursart: GostKursart): List<AbiturFachbelegung>;
  388. /**
  389. * Prüft, ob die Fachbelegung eine durchgängige Belegung hat. Zusatzkurse können nicht für eine
  390. * durchgängige Belegung zählen.
  391. *
  392. * @param fachbelegung die zu prüfende Fachbelegung
  393. *
  394. * @return true, wenn die Belegung durchgängig ist.
  395. */
  396. pruefeDurchgaengigkeit(fachbelegung: AbiturFachbelegung | null): boolean;
  397. /**
  398. * Zählt die Fachbelegungen, welche eine durchgängige Belegung aufweisen. Zusatzkurse zählen
  399. * nicht für eine durchgängige Belegung.
  400. * In dieser Methode wird ggf. auch geprüft, ob weitere Fachbelegungen existieren, welche das gleiche
  401. * Statistik-Kürzel haben und Ersatzweise eine Halbjahres-Belegung ersetzen können. Dies ist bei bilingualen
  402. * Fächern nötig.
  403. *
  404. * @param fachbelegungen die zu überprüfenden Fachbelegungen
  405. *
  406. * @return die Anzahl der durchgängigen Belegungen
  407. */
  408. zaehleDurchgaengigeBelegungen(fachbelegungen: List<AbiturFachbelegung> | null): number;
  409. /**
  410. * Prüft, ob die Fachbelegung eine durchgängige Belegung hat und prüft die Schriftlichkeit
  411. * in der Qualifikationsphase. Ein Fach in der Qualifikationsphase gilt als Schriftlich belegt,
  412. * sofern die ersten 3 Halbjahre der Qualifikationsphase schriftlich belegt wurden.
  413. * - Zusatzkurse können nicht für eine durchgängige Belegung zählen.
  414. *
  415. * @param fachbelegung die zu prüfende die zu überprüfenden Fachbelegung
  416. *
  417. * @return true, wenn die Belegung durchgängig ist und die Schriftlichkeit den Anforderungen genügt.
  418. */
  419. pruefeDurchgaengigkeitSchriftlich(fachbelegung: AbiturFachbelegung | null): boolean;
  420. /**
  421. * Prüft, ob unter den angegebenen Fachbelegungen ein Fach als Abiturfach von einem der angegebenen Arten
  422. * gewählt wurde. Wird keine Art angebeben, so wird jede Fachbelegung akzeptiert und true zurückgegeben.
  423. *
  424. * @param fachbelegungen die Fachbelegungen
  425. * @param arten die Arten der Abiturfächer
  426. *
  427. * @return true, falls unter den Fachbelegungen mindestens ein Fach als Abiturfach von einem der
  428. * angegebenen Arten gewählt wurde und false sonst
  429. */
  430. pruefeExistiertAbiFach(fachbelegungen: List<AbiturFachbelegung> | null, ...arten: Array<GostAbiturFach>): boolean;
  431. /**
  432. * Prüft anhand des Statistik-Kürzels, ob in dem angegebenen Halbjahr eine doppelte Fachbelegung
  433. * vorliegt oder nicht. Bei den Fremdsprachen werden nur unterschiedliche Fremdsprachen in einem Halbjahr
  434. * akzeptiert und es dürfen mehrere Vertiefungsfächer (VX) in einem Halbjahr vorkommen.
  435. *
  436. * @param halbjahr das zu prüfende Halbjahr
  437. *
  438. * @return true, falls eine doppelte Belegung vorliegt, sonst false
  439. */
  440. hatDoppelteFachbelegungInHalbjahr(halbjahr: GostHalbjahr): boolean;
  441. /**
  442. * Prüft anhand des Statistik-Kürzels, ob in einem der angegebenen Halbjahre eine doppelte Fachbelegung
  443. * vorliegt oder nicht. Bei den Fremdsprachen werden nur unterschiedliche Fremdsprachen in einem Halbjahr
  444. * akzeptiert und es dürfen mehrere Vertiefungsfächer (VX) in einem Halbjahr vorkommen.
  445. *
  446. * @param halbjahre die zu prüfenden Halbjahre
  447. *
  448. * @return true, falls eine doppelte Belegung vorliegt, sonst false
  449. */
  450. hatDoppelteFachbelegung(...halbjahre: Array<GostHalbjahr>): boolean;
  451. /**
  452. * Gibt zurück, ob der Projektkurs als besondere Lernleistung verwendet wird.
  453. *
  454. * @return true, falls der Projektkurs als besondere Lernleistung verwendet wird
  455. */
  456. istProjektKursBesondereLernleistung(): boolean;
  457. /**
  458. * Bestimmt die erste Fachbelegung mit dem angegebenen Statistik-Kürzel
  459. *
  460. * @param kuerzel das Kürzel des Faches, kann null sein (dann wird auch null zurückgegeben)
  461. *
  462. * @return die Fachbelegung oder null, falls keine vorhanden ist
  463. */
  464. getFachbelegungByKuerzel(kuerzel: String | null): AbiturFachbelegung | null;
  465. /**
  466. * Liefert alle Fachbelegungen der Abiturdaten, welche den angegebenen Fachbereichen zuzuordnen sind.
  467. * Wird kein Fachbereich angegeben, so werden alle Fachbelegungen der Abiturdaten zurückgegeben.
  468. *
  469. * @param fachbereiche die Fachbereiche
  470. *
  471. * @return eine Liste der Fachbelegungen aus den Fachbereichen
  472. */
  473. getFachbelegungen(...fachbereiche: Array<GostFachbereich>): List<AbiturFachbelegung>;
  474. /**
  475. * Liefert alle Fachbelegungen, die bilingual unterrichtet wurden.
  476. *
  477. * @return eine Liste der Fachbelegungen
  478. */
  479. getFachbelegungenBilingual(): List<AbiturFachbelegung>;
  480. /**
  481. * Filtert die Fachbelegungen auf neu einsetzende Fremdsprachen.
  482. *
  483. * @param fachbelegungen die zu filternden Fachbelegungen
  484. *
  485. * @return die gefilterten Fachbelegungen
  486. */
  487. filterFremdspracheNeuEinsetzend(fachbelegungen: List<AbiturFachbelegung> | null): List<AbiturFachbelegung>;
  488. /**
  489. * Filtert die Fachbelegungen auf fortgeführte Fremdsprachen.
  490. *
  491. * @param fachbelegungen die zu filternden Fachbelegungen
  492. *
  493. * @return die gefilterten Fachbelegungen
  494. */
  495. filterFremdspracheFortgefuehrt(fachbelegungen: List<AbiturFachbelegung> | null): List<AbiturFachbelegung>;
  496. /**
  497. * Filtert die Fachbelegungen danach, ob sie durchgehend belegbar sind
  498. *
  499. * @param fachbelegungen die zu filternden Fachbelegungen
  500. *
  501. * @return die gefilterten Fachbelegungen
  502. */
  503. filterDurchgehendBelegbar(fachbelegungen: List<AbiturFachbelegung> | null): List<AbiturFachbelegung>;
  504. /**
  505. * Filtert die Fachbelegungen. Es werden nur Fachbelegungen behalten, die in den angegebenen Halbjahren eine Belegung aufweisen.
  506. * Wird kein Halbjahr angegeben, so wird nichts gefiltert, da kein Halbjahr geprüft werden muss.
  507. *
  508. * @param fachbelegungen die zu filternden Fachbelegungen
  509. * @param halbjahre die Halbjahre, die belegt sein müssen
  510. *
  511. * @return die gefilterten Fachbelegungen
  512. */
  513. filterBelegungen(fachbelegungen: List<AbiturFachbelegung> | null, ...halbjahre: Array<GostHalbjahr>): List<AbiturFachbelegung>;
  514. /**
  515. * Diese Methode zählt die Anzahl der angegebenen Fachbelegungen, welche in allen
  516. * Halbjahren belegt sind. Dabei werden Fachbelegungen, welche dem gleichem Statistik-Fach
  517. * zuzuordnen sind zusammengefasst. Dies ist bei der Abwahl von bilingualen Sachfächern
  518. * relevant.
  519. *
  520. * @param fachbelegungen die zu zählenden Fachbelegungen
  521. *
  522. * @return die Anzahl der Fachbelegungen
  523. */
  524. zaehleBelegungenDurchgaengig(fachbelegungen: List<AbiturFachbelegung> | null): number;
  525. /**
  526. * Diese Methode zählt die Anzahl der angegebenen Fachbelegungen, welche in allen
  527. * Halbjahren belegt sind. Dabei werden Fachbelegungen, welche dem gleichem Statistik-Fach
  528. * zuzuordnen sind zusammengefasst. Dies ist bei der Abwahl von bilingualen Sachfächern
  529. * relevant.
  530. *
  531. * @param fachbelegungen die zu zählenden Fachbelegungen
  532. *
  533. * @return die Anzahl der Fachbelegungen
  534. */
  535. zaehleBelegungenDurchgaengigSchriftlichInQPhase(fachbelegungen: List<AbiturFachbelegung> | null): number;
  536. /**
  537. * Filtert die Fachbelegungen. Es werden nur Belegungen behalten, die in den angegebenen Halbjahren die geforderte Schriftlichkeit aufweisen.
  538. * Wird kein Halbjahr angegeben, so wird nichts gefiltert, da kein Halbjahr geprüft werden muss.
  539. *
  540. * @param fachbelegungen die zu filternden Fachbelegungen
  541. * @param schriftlichkeit die geforderte Schriftlichkeit
  542. * @param halbjahre die Halbjahre, die belegt sein müssen
  543. *
  544. * @return die gefilterten Fachbelegungen
  545. */
  546. filterBelegungenMitSchriftlichkeit(fachbelegungen: List<AbiturFachbelegung> | null, schriftlichkeit: GostSchriftlichkeit, ...halbjahre: Array<GostHalbjahr>): List<AbiturFachbelegung>;
  547. /**
  548. * Liefert die erste Fachbelegung für den Fachbereich - sofern eine existiert
  549. *
  550. * @param fachbereich der Fachbereich
  551. *
  552. * @return die Fachbelegung oder null
  553. */
  554. getFachbelegung(fachbereich: GostFachbereich): AbiturFachbelegung | null;
  555. /**
  556. * Liefert alle Fachbelegungen mit dem angegebenen Statistk-Kürzel des Faches
  557. *
  558. * @param kuerzel das Kürzel des Faches
  559. *
  560. * @return eine Liste mit den Fachbelegungen
  561. */
  562. getFachbelegungByFachkuerzel(kuerzel: String | null): List<AbiturFachbelegung>;
  563. /**
  564. * Prüft, ob der Kurs in dem angegebenen Halbjahr mit der angegebenen Schriftlichkeit belegt ist
  565. * und gibt ggf. die Belegung zurück.
  566. *
  567. * @param fachbelegung die Abiturfachbelegung aus welcher die Belegungsinformationen für das Halbjahr entnommen wird
  568. * @param halbjahr das Halbjahr, in welchem die Belegung gesucht wird.
  569. * @param schriftlich gibt an, ob das Fach schriftlich oder mündlich belegt sein muss
  570. *
  571. * @return die Belegungsinformationen zu dem Fach
  572. */
  573. getBelegungHalbjahr(fachbelegung: AbiturFachbelegung, halbjahr: GostHalbjahr, schriftlich: GostSchriftlichkeit): AbiturFachbelegungHalbjahr | null;
  574. /**
  575. * Liefert die erste Sprachbelegung - sofern eine existiert
  576. *
  577. * @param sprache das einstellige Kürzel der Sprache
  578. *
  579. * @return die Fachbelegung für die Sprache
  580. */
  581. getSprachbelegung(sprache: String | null): AbiturFachbelegung | null;
  582. /**
  583. * Liefert für die übergebene Fachbelegung die Halbjahre, in denen das Fach mit einer der angebenen
  584. * Kursarten belegt wurde. Ist keine Kursart angegeben, so werden die Halbjahre aller Belegungen
  585. * zurückgegeben. Ist keine Fachbelegung angegeben, so wird eine leere Liste zurückgegeben.
  586. *
  587. * @param fachbelegung die Fachbelegung
  588. * @param kursarten die Kursarten
  589. *
  590. * @return eine Liste der Halbjahre in den das Fach mit einer der Kursarten belegt wurde
  591. */
  592. getHalbjahreKursart(fachbelegung: AbiturFachbelegung | null, ...kursarten: Array<GostKursart>): Vector<GostHalbjahr>;
  593. /**
  594. * Gibt die Sprache des bilingualen Bildungsgang zurück oder null, falls keiner gewählt wurde.
  595. *
  596. * @return die Sprache des bilingualen Bildungsgang oder null
  597. */
  598. getBiligualenBildungsgang(): String | null;
  599. /**
  600. * Prüft bei der Sprachenfolge, ob eine laut Sprachenfolge fortgeführte
  601. * Fremdsprache fehlerhafterweise als neu einsetzende Fremdsprache belegt wurde.
  602. * Übergebene Fachbelegungen, die keine Fremdsprachen sind werden ignoriert.
  603. *
  604. * @param fremdsprachen die zu prüfenden Fachbelegungen
  605. *
  606. * @return true, falls eine fortgeführte Fremdsprache bei den übergebenen
  607. * Fachbelegungen existiert, ansonsten false
  608. */
  609. hatFortgefuehrteFremdspracheInSprachendaten(fremdsprachen: List<AbiturFachbelegung> | null): boolean;
  610. /**
  611. * Prüft bei der Sprachenfolge, ob für eine laut Sprachenfolge neu einsetzende
  612. * Fremdsprache fehlerhafterweise ein Kurs in einer fortgeführten Fremdsprache belegt wurde.
  613. * Übergebene Fachbelegungen, die keine Fremdsprachen sind werden ignoriert.
  614. *
  615. * @param fremdsprachen die zu prüfenden Fachbelegungen
  616. *
  617. * @return true, falls eine neu einsetzende Fremdsprache bei den übergebenen
  618. * Fachbelegungen existiert, ansonsten false
  619. */
  620. hatNeuEinsetzendeFremdspracheInSprachendaten(fremdsprachen: List<AbiturFachbelegung> | null): boolean;
  621. /**
  622. * Gibt an, ob am Ende der EF eine Muttersprachenprüfung geplant bzw. erfolgt ist.
  623. *
  624. * @return true, falls eine Muttersprachenprüfung am Ende der EF vorliegt, sonst false
  625. */
  626. hatMuttersprachenPruefungEndeEF(): boolean;
  627. /**
  628. * Gibt an, ob die zweite Fremdsprache in der Sekundarstufe manuell erfolgreich
  629. * geprüft wurde und dort eine entsprechende Belegung existiert.
  630. *
  631. * @return true, falls in der Sek I eine zweite Fremdsprache belegt wurde
  632. */
  633. istSekIZweiteFremdspracheManuellGeprueft(): boolean;
  634. /**
  635. * Prüft, ob die Belegung seit der EF1 vorhanden ist. Hierbei werden
  636. * Zusatz-, Vertiefungs- und Projektkurse auch als später einsetzend akzeptiert.
  637. * Dies gilt auch für Literatur, instrumental- und vokalpraktische Kurse sowie
  638. * für Religion und Philosophie.
  639. *
  640. * @param fachbelegung die Abiturfachbelegungen, die geprüft werden
  641. *
  642. * @return true, falls das Fach seit EF1 durchgängig belegt wurde oder eine der Ausnahmen zutrifft, sonsta false
  643. */
  644. istBelegtSeitEF(fachbelegung: AbiturFachbelegung): boolean;
  645. /**
  646. * Gibt das Ergebnis der Belegprüfung zurück. Dieses enthält eine Liste der Fehler, die bei der Belegprüfung
  647. * festgestellt wurden und ob diese erfolgreich gewesen ist oder nicht.
  648. *
  649. * @return das Ergebnis der Belegprüfung
  650. */
  651. getBelegpruefungErgebnis(): GostBelegpruefungErgebnis;
  652. isTranspiledInstanceOf(name: string): boolean;
  653. }
  654. export declare function cast_de_nrw_schule_svws_core_abschluss_gost_AbiturdatenManager(obj: unknown): AbiturdatenManager;