import { JavaObject } from '../../java/lang/JavaObject'; import type { JavaSet } from '../../java/util/JavaSet'; import { Schulform } from '../../asd/types/schule/Schulform'; import { ValidatorFehlerartKontext } from '../../asd/validate/ValidatorFehlerartKontext'; import { ValidatorFehlerart } from '../../asd/validate/ValidatorFehlerart'; import type { List } from '../../java/util/List'; import { Class } from '../../java/lang/Class'; import type { JavaMap } from '../../java/util/JavaMap'; import { Validator } from '../../asd/validate/Validator'; export declare class ValidatorManager extends JavaObject { /** * Die Version der Fehlerart-Kontexte */ private static _version; /** * Die Fehlerart-Kontexte für jeden Validator als Historienliste */ private static _data; /** * Die ValidatorManager pro Schulform für den SVWS-Kontext */ private static _managerSVWS; /** * Die ValidatorManager pro Schulform für deb Zebras-Kontext */ private static _managerZebras; /** * Die Schulform, für den der ValidatorManager gilt */ private readonly _schulform; /** * Die Umgebung, für den der ValidatorManager erzeugt wurde: true = ZeBrAS ; false = SVWS */ private readonly _isZebras; /** * Eine geschachtelte Map, die einem Schuljahr eine Map mit der Zuordnung der Validatoren zu den Prüfschritten und deren Fehlerarten für die Schulform _schulform */ private readonly _mapSchuljahrValidatornameToFehlerart; /** * Eine geschachtelte Map, die einem Schuljahr eine Map mit der Zuordnung der Validatoren zu den Fehlercode-Präfixen des Validators */ private readonly _mapSchuljahrValidatornameToFehlercodePraefix; /** * Erstellt einen neuen Manager für die übergebene Schulform und die Entsprechene Validierungsumgebung * (Zebras oder SVWS) * * @param zebras die Umgebung, in der gerade validiert wird: true: ZeBrAS false: SVWS * @param schulform die Schulform, für die gerade */ private constructor(); /** * Initialisierung des Validators mit den Daten, die aus einem json eingelesen wurden. * * @param version Die Versionsnummer der Daten zu den Fehlerart-Kontexten. * @param data Die aus der JSON-Datei eingelesenen Daten. */ static init(version: number, data: JavaMap>): void; /** * Gibt den Manager für die Schulform und Umgebung zurück, wobei er erzeugt wird, wenn * er nicht existiert. * * @param schulform die Schulform, für die der Manager benötigt wird * @param isZebras die entsprechende Umgebung * * @return der Validator-Manager */ static getManager(schulform: Schulform, isZebras: boolean): ValidatorManager; /** * Gibt die Version der Fehler-Kontext-Daten zurück. * * @return die Version */ static getVersion(): number; /** * Gibt die Liste der Validatorennamen als nicht-leeres Set zurück. * * @return das nicht-leeres Set der Validatoren-Namen */ static getValidatornamenAsSet(): JavaSet; /** * Gibt die Historie der Fehlerart-Kontexte für den angegebenen Validator zurück. * * @param validator der kanonische Name des Validators * * @return die Historie */ static getValidatorHistorie(validator: string): List; /** * Liefert für das angegebene Schuljahr die Map von dem Validatornamen zu der Fehlerart. * Ist der Cache für das Schuljahr noch nicht aufgebaut, so wird dieser erstellt. * * @param schuljahr das zu prüfende Schuljahr * * @return die Map, die für das gegebene Schuljahr die Fehlerart pro Validator enthält */ private getValidatornameToFehlerartCache; /** * Holt das Objekt aus der HashMap oder erzeugt es wenn es nicht vorhanden ist. * * @param schuljahr das Schuljahr, für das das Objekt geholt wird * * @return das benötigte Objekt */ private computeIfAbsentValidatornameToFehlerart; /** * Liefert für das angegebene Schuljahr die Map von dem Validatornamen zu dem Fehlercode-Präfix. * Ist der Cache für das Schuljahr noch nicht aufgebaut, so wird dieser erstellt. * * @param schuljahr das zu prüfende Schuljahr * * @return die Map, die für das gegebene Schuljahr das Fehlercode-Präfix pro Validator enthält */ private getValidatornameToFehlercodePraefixCache; /** * Holt das Objekt aus der HashMap oder erzeugt es wenn es nicht vorhanden ist. * * @param schuljahr das Schuljahr, für das das Objekt geholt wird * * @return das benötigte Objekt */ private computeIfAbsentValidatornameToFehlercodePraefix; /** * Holt das Objekt aus der HashMap oder erzeugt es wenn es nicht vorhanden ist. * * @param art - die Fehlerart, für die die Liste ggfs. erzeugt wird * @param map - die HashMap mit den ArrayLists * * @return das benötigte Objekt */ private static computeIfAbsentFehlerartValidator; /** * holt das Objekt aus der HashMap oder erzeugt es wenn es nicht vorhanden ist. * * @param schulform - die Fehlerart, für die die Liste ggfs. erzeugt wird * @param map - die HashMap mit den ArrayLists * @return das benötigte Objekt */ private static computeIfAbsentZeitraeumeSchulform; /** * Erstellt den Cache für das angegeben Schuljahr. * * @param schuljahr das Schuljahr */ private createCache; /** * Gibt die Fehlerart eines Validators für das angegebene Schuljahr zurück. * * @param schuljahr das Schuljahr * @param validator der kanonische Name des Validators * @param pruefschritt die Nummer des Prüfschrittes * * @return die Fehlerart des Validators für das angegebene Schuljahr */ getFehlerartBySchuljahrAndValidatorNameAndPruefschritt(schuljahr: number, validator: string, pruefschritt: number): ValidatorFehlerart | null; /** * Gibt die Fehlerart eines Validators für das angegebene Schuljahr zurück. * * @param der Type des Validators * @param schuljahr das Schuljahr * @param validator die Klasse des Validators * @param pruefschritt die Nummer des Prüfschrittes * * @return die Fehlerart des Validators für das angegebene Schuljahr */ getFehlerartBySchuljahrAndValidatorClassAndPruefschritt(schuljahr: number, validator: Class, pruefschritt: number): ValidatorFehlerart; /** * Setzt die Fehlerart eines Prüfschrittes eines Validators für das angegebene Schuljahr. * * @param schuljahr das Schuljahr * @param validator der kanonische Name des Validators * @param fehlerart die Fehlerart des Validators * @param pruefschritt die Nummer des Prüfschrittes */ setFehlerartBySchuljahr(schuljahr: number, validator: string, fehlerart: ValidatorFehlerart, pruefschritt: number): void; /** * Prüft, ob der übergebene Validator in dem angegebenen Schuljahr aktiv ist oder nicht. * * @param schuljahr das Schuljahr * @param validator der kanonische Name des Validators * * @return true, falls der Validator in dem Schuljahr aktiv ist. */ isValidatorActiveInSchuljahr(schuljahr: number, validator: string): boolean; /** * Prüft, ob der übergebene Prüfschritt des übergebenen Validators in dem angegebenen Schuljahr aktiv ist oder nicht. * * @param schuljahr das Schuljahr * @param validator der kanonische Name des Validators * @param pruefschritt die Nummer des Prüfschrittes * * @return true, falls der Validator in dem Schuljahr aktiv ist. */ isPruefschrittActiveInSchuljahr(schuljahr: number, validator: string, pruefschritt: number): boolean; /** * Gibt das Fehlercode-Präfix eines Validators für das angegebene Schuljahr zurück. * * @param schuljahr das Schuljahr * @param validator der kanonische Name des Validators * * @return das Fehlercode-Präfix des Validators für das angegebene Schuljahr */ getFehlercodePraefixBySchuljahrAndValidatorName(schuljahr: number, validator: string): string; /** * Gibt das Fehlercode-Präfix eines Validators für das angegebene Schuljahr zurück. * * @param der Type des Validators * @param schuljahr das Schuljahr * @param validator die Klasse des Validators * * @return das Fehlercode-Präfix des Validators für das angegebene Schuljahr */ getFehlercodePraefixBySchuljahrAndValidatorClass(schuljahr: number, validator: Class): string; /** * Trägt aus der Liste von Schulformen den angegebenen Zeitraum in die Liste Zeiträume der jeweiligen Schulform ein. * * @param mapZeitraeumeBySchulform Die map, die für jede Schulform die Liste der gültigen Zeiträume speichert * @param zeitraum Ein Zeitraum, in dem die Schulformen in der Liste schulformen gültig sind * @param schulformen Die Liste der in dem Zeitraum gültigen Schulformen. */ private static addZeitraum; /** * Bildet aus der Historie der Schulformen eine Liste der Zeiträume. * * @param historie die Historie der Schulformen * * @return die Liste der Zeiträume */ private static createSchulformZeitraumListe; /** * Prüft ob die Zeiträumen der zweiten Liste komplett innerhalb der Zeiträume der ersten Liste liegen. In diesem Zusammenhang wird geprüft, * ob alle Zeiträume, wo ein Validator gültig sein soll auch durch die Gültigkeit bei der entsprechenden Schulform abgedeckt ist.
*
* Kurzbeschreibung des Algorithmus:
* * Beide Zeitstrahlen können als ggfs. unterbrochene Linien aufgefasst werden. Dort wo der Zeitstrahl 'obermenge' unterbrochen ist, muss * der Zeitstrahl 'untermenge' auch unterbrochen sein. Falls nicht wird false zurückgegeben.
*
* Gültige Beispiele für 'obermenge' enthält 'untermenge':
* Zeitstrahl obermenge: a) ------- b) -------- ---------- c) -------- ----------
* Zeitstrahl untermenge: ------- ----- ----- ----------
* scanPoints: ^ ^ ^^ ^ . . . ^ ^ ^^ ^ ^ // . werden nicht mehr geprüft, da Ergebnis fest steht
*
* Ungültige Beispiele für 'obermenge' enthält 'untermenge'
* Zeitstrahl obermenge: a) ----- b) -------- ---------- c) -------- ----------
* Zeitstrahl untermenge: ------- -------- ----- ----------
* scanPoints: ^ . . ^^ ^^ . . ^^ ^ ^ ^. .. // . werden nicht mehr geprüft, da Ergebnis fest steht
*
* Der Position des Scanpoints wird für das Verfahren nicht benötigt (Es ist immer der kleinere der beiden Punkte die mit iObermenge und iUntermenge * referenziert werden.)
* * @param validatorName der Name des Validators * @param obermenge die Liste der Zeiträume, die die Zeiträume der Untermenge beinhaltet * @param untermenge die Liste der Zeiträume, die überprüft wird, ob sie in der Liste der Obermenge beinhaltet ist. * * @return true, falls untermenge wirklich eine Untermenge von Obermenge ist und ansonsten false */ private static pruefeAufZeitraumueberdeckung; /** * Erstellt ein Liste mit den Jahreszahlen, welche immer eine gerade Anzahl von Einträgen hat. Ein Paar besteht aus Zeitraum-Werten von * und bis. Das nächste Paar wird nur eingetragen, wenn eine Lücke vorhanden ist, so dass ggf. Zeiträume zusammengefasst werden. * Die Zeiträume sind werden hier in der Form [von,bis[ erwartet: Schuljahr 'von' ist Teil des Zeitraums und Schuljahr 'bis' nicht, * so dass kontinuierliche Intervalle entstehen.
*
* Beispiel: 2021-2022, 2023-null => 2021-(2022+1), 2023-null (in aufrufenden Klassen so umgesetzt) * * @param validatorName der Name des Validators * @param vbs die Liste mit den Zeitraum-Paaren * * @return Liste mit den Jahreszahlen, welche die Paare von gültigen Zeiträumen für den Algorithmus aufbereitet enthält. */ private static getZeitraumListe; /** * Erzeugt ein PairNN, dass den Anfangszeitpunkt und den Endzeitpunkt enthält. Die Zeiträume sind werden * hier in der Form [von,bis[ erwartet, Schuljahr 'von' ist Teil des Zeitraums Schuljahr 'bis' nicht, * Die null-Werte aus gueltigVon und gueltigBis werden in 0 bzw. MAX_VALUE übersetzt, sowie der * gueltigBis-Wert um 1 erhöht, damit kontinuierliche Zeiträume entstehen können. * * @param von Beginn des Zeitraums * @param bis Ende des Zeitraums * * @return Das Zeitraum-Paar mit übersetzten Null-Werten. */ private static createZeitraum; transpilerCanonicalName(): string; isTranspiledInstanceOf(name: string): boolean; static class: Class; } export declare function cast_de_svws_nrw_asd_validate_ValidatorManager(obj: unknown): ValidatorManager; //# sourceMappingURL=ValidatorManager.d.ts.map