import { JavaObject, cast_java_lang_Object } from '../../java/lang/JavaObject'; import { KursblockungOutput, cast_de_nrw_schule_svws_core_data_kursblockung_KursblockungOutput } from '../../core/data/kursblockung/KursblockungOutput'; import { KursblockungOutputs, cast_de_nrw_schule_svws_core_data_kursblockung_KursblockungOutputs } from '../../core/data/kursblockung/KursblockungOutputs'; import { KursblockungInput, cast_de_nrw_schule_svws_core_data_kursblockung_KursblockungInput } from '../../core/data/kursblockung/KursblockungInput'; import { KursblockungAlgorithmusS, cast_de_nrw_schule_svws_core_kursblockung_KursblockungAlgorithmusS } from '../../core/kursblockung/KursblockungAlgorithmusS'; import { KursblockungAlgorithmusKMatching, cast_de_nrw_schule_svws_core_kursblockung_KursblockungAlgorithmusKMatching } from '../../core/kursblockung/KursblockungAlgorithmusKMatching'; import { KursblockungDynDaten, cast_de_nrw_schule_svws_core_kursblockung_KursblockungDynDaten } from '../../core/kursblockung/KursblockungDynDaten'; import { Service, cast_de_nrw_schule_svws_core_Service } from '../../core/Service'; import { KursblockungAlgorithmusSZufaellig, cast_de_nrw_schule_svws_core_kursblockung_KursblockungAlgorithmusSZufaellig } from '../../core/kursblockung/KursblockungAlgorithmusSZufaellig'; import { KursblockungAlgorithmusK, cast_de_nrw_schule_svws_core_kursblockung_KursblockungAlgorithmusK } from '../../core/kursblockung/KursblockungAlgorithmusK'; import { Vector, cast_java_util_Vector } from '../../java/util/Vector'; import { System, cast_java_lang_System } from '../../java/lang/System'; export class KursblockungAlgorithmus extends Service { public constructor() { super(); } public handle(input : KursblockungInput) : KursblockungOutputs { this.logger.modifyIndent(+4); let kursblockungOutputs : KursblockungOutputs = new KursblockungOutputs(); kursblockungOutputs.outputs = new Vector(); let dynDaten : KursblockungDynDaten = new KursblockungDynDaten(this.logger, input); let timeMaxGlobal : number = dynDaten.gibBlockungszeitMillis(); let algorithmenK : Array = [new KursblockungAlgorithmusKMatching(this.logger, dynDaten)]; let algorithmenS : Array = [new KursblockungAlgorithmusSZufaellig(this.logger, dynDaten, false)]; let timeStart : number = System.currentTimeMillis(); let timeMaxLocal : number = 1000; do { for (let iK : number = 0; iK < algorithmenK.length; iK++){ for (let iS : number = 0; iS < algorithmenS.length; iS++){ algorithmenK[iK].berechne(timeMaxLocal); algorithmenS[iS].berechne(timeMaxLocal); let out : KursblockungOutput = dynDaten.gibErzeugtesKursblockungOutput(); kursblockungOutputs.outputs.add(out); } } timeMaxLocal += 100; } while (System.currentTimeMillis() - timeStart < timeMaxGlobal); this.logger.modifyIndent(-4); return kursblockungOutputs; } isTranspiledInstanceOf(name : string): boolean { return ['de.nrw.schule.svws.core.Service', 'de.nrw.schule.svws.core.kursblockung.KursblockungAlgorithmus'].includes(name); } } export function cast_de_nrw_schule_svws_core_kursblockung_KursblockungAlgorithmus(obj : unknown) : KursblockungAlgorithmus { return obj as KursblockungAlgorithmus; }