KursblockungAlgorithmus.js 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.cast_de_nrw_schule_svws_core_kursblockung_KursblockungAlgorithmus = exports.KursblockungAlgorithmus = void 0;
  4. const KursblockungOutputs_1 = require("../../core/data/kursblockung/KursblockungOutputs");
  5. const KursblockungAlgorithmusKMatching_1 = require("../../core/kursblockung/KursblockungAlgorithmusKMatching");
  6. const KursblockungDynDaten_1 = require("../../core/kursblockung/KursblockungDynDaten");
  7. const Service_1 = require("../../core/Service");
  8. const KursblockungAlgorithmusSZufaellig_1 = require("../../core/kursblockung/KursblockungAlgorithmusSZufaellig");
  9. const Vector_1 = require("../../java/util/Vector");
  10. const System_1 = require("../../java/lang/System");
  11. class KursblockungAlgorithmus extends Service_1.Service {
  12. constructor() {
  13. super();
  14. }
  15. handle(input) {
  16. this.logger.modifyIndent(+4);
  17. let kursblockungOutputs = new KursblockungOutputs_1.KursblockungOutputs();
  18. kursblockungOutputs.outputs = new Vector_1.Vector();
  19. let dynDaten = new KursblockungDynDaten_1.KursblockungDynDaten(this.logger, input);
  20. let timeMaxGlobal = dynDaten.gibBlockungszeitMillis();
  21. let algorithmenK = [new KursblockungAlgorithmusKMatching_1.KursblockungAlgorithmusKMatching(this.logger, dynDaten)];
  22. let algorithmenS = [new KursblockungAlgorithmusSZufaellig_1.KursblockungAlgorithmusSZufaellig(this.logger, dynDaten, false)];
  23. let timeStart = System_1.System.currentTimeMillis();
  24. let timeMaxLocal = 1000;
  25. do {
  26. for (let iK = 0; iK < algorithmenK.length; iK++) {
  27. for (let iS = 0; iS < algorithmenS.length; iS++) {
  28. algorithmenK[iK].berechne(timeMaxLocal);
  29. algorithmenS[iS].berechne(timeMaxLocal);
  30. let out = dynDaten.gibErzeugtesKursblockungOutput();
  31. kursblockungOutputs.outputs.add(out);
  32. }
  33. }
  34. timeMaxLocal += 100;
  35. } while (System_1.System.currentTimeMillis() - timeStart < timeMaxGlobal);
  36. this.logger.modifyIndent(-4);
  37. return kursblockungOutputs;
  38. }
  39. isTranspiledInstanceOf(name) {
  40. return ['de.nrw.schule.svws.core.Service', 'de.nrw.schule.svws.core.kursblockung.KursblockungAlgorithmus'].includes(name);
  41. }
  42. }
  43. exports.KursblockungAlgorithmus = KursblockungAlgorithmus;
  44. function cast_de_nrw_schule_svws_core_kursblockung_KursblockungAlgorithmus(obj) {
  45. return obj;
  46. }
  47. exports.cast_de_nrw_schule_svws_core_kursblockung_KursblockungAlgorithmus = cast_de_nrw_schule_svws_core_kursblockung_KursblockungAlgorithmus;
  48. //# sourceMappingURL=KursblockungAlgorithmus.js.map