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 KursblockungAlgorithmusS 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 logger Logger für Benutzerhinweise, Warnungen und Fehler. * @param dynDaten Die aktuellen Blockunsdaten. */ public constructor(logger : Logger, dynDaten : KursblockungDynDaten) { super(); this.logger = logger; this.dynDaten = dynDaten; } /** * Eine Unterklasse, die diese Methode implementiert, berechnet eine Verteilung * der SuS auf die Kurse. * * @param pMaxTimeMillis Die maximale Berechnungszeit in Millisekunden. */ public abstract berechne(pMaxTimeMillis : number) : void; isTranspiledInstanceOf(name : string): boolean { return ['de.nrw.schule.svws.core.kursblockung.KursblockungAlgorithmusS'].includes(name); } } export function cast_de_nrw_schule_svws_core_kursblockung_KursblockungAlgorithmusS(obj : unknown) : KursblockungAlgorithmusS { return obj as KursblockungAlgorithmusS; }