KursblockungAlgorithmusK.ts 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import { JavaObject, cast_java_lang_Object } from '../../java/lang/JavaObject';
  2. import { KursblockungDynDaten, cast_de_nrw_schule_svws_core_kursblockung_KursblockungDynDaten } from '../../core/kursblockung/KursblockungDynDaten';
  3. import { Logger, cast_de_nrw_schule_svws_logger_Logger } from '../../logger/Logger';
  4. export abstract class KursblockungAlgorithmusK extends JavaObject {
  5. protected readonly logger : Logger;
  6. protected readonly dynDaten : KursblockungDynDaten;
  7. /**
  8. * Der Konstruktor stellt einen Logger und die bei der Blockung benötigten
  9. * dynamischen Daten den Unterklassen zur Verfügung.
  10. *
  11. * @param pLogger Logger für Benutzerhinweise, Warnungen und Fehler.
  12. * @param pDynDaten Die aktuellen Blockunsdaten.
  13. */
  14. public constructor(pLogger : Logger, pDynDaten : KursblockungDynDaten) {
  15. super();
  16. this.logger = pLogger;
  17. this.dynDaten = pDynDaten;
  18. }
  19. /**
  20. * Eine Unterklasse, die diese Methode implementiert, berechnet eine Verteilung
  21. * der Kurse auf die Schienen und beachtet dabei die maximal erlaubte Zeit in
  22. * Millisekunden.
  23. *
  24. * @param pMaxTimeMillis Die maximale Berechnungszeit in Millisekunden.
  25. */
  26. public abstract berechne(pMaxTimeMillis : number) : void;
  27. isTranspiledInstanceOf(name : string): boolean {
  28. return ['de.nrw.schule.svws.core.kursblockung.KursblockungAlgorithmusK'].includes(name);
  29. }
  30. }
  31. export function cast_de_nrw_schule_svws_core_kursblockung_KursblockungAlgorithmusK(obj : unknown) : KursblockungAlgorithmusK {
  32. return obj as KursblockungAlgorithmusK;
  33. }