import { JavaObject, cast_java_lang_Object } from '../../java/lang/JavaObject'; import { KursblockungDynDaten, cast_de_nrw_schule_svws_core_kursblockung_KursblockungDynDaten } from '../../core/kursblockung/KursblockungDynDaten'; import { Logger, cast_de_nrw_schule_svws_logger_Logger } from '../../logger/Logger'; export abstract class KursblockungAlgorithmusK extends JavaObject { protected readonly logger : Logger; protected readonly dynDaten : KursblockungDynDaten; /** * Der Konstruktor stellt einen Logger und die bei der Blockung benötigten * dynamischen Daten den Unterklassen zur Verfügung. * * @param pLogger Logger für Benutzerhinweise, Warnungen und Fehler. * @param pDynDaten Die aktuellen Blockunsdaten. */ public constructor(pLogger : Logger, pDynDaten : KursblockungDynDaten) { super(); this.logger = pLogger; this.dynDaten = pDynDaten; } /** * Eine Unterklasse, die diese Methode implementiert, berechnet eine Verteilung * der Kurse auf die Schienen und beachtet dabei die maximal erlaubte Zeit in * Millisekunden. * * @param pMaxTimeMillis Die maximale Berechnungszeit in Millisekunden. */ public abstract berechne(pMaxTimeMillis : number) : void; isTranspiledInstanceOf(name : string): boolean { return ['de.nrw.schule.svws.core.kursblockung.KursblockungAlgorithmusK'].includes(name); } } export function cast_de_nrw_schule_svws_core_kursblockung_KursblockungAlgorithmusK(obj : unknown) : KursblockungAlgorithmusK { return obj as KursblockungAlgorithmusK; }