1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.cast_de_nrw_schule_svws_core_kursblockung_KursblockungStatic = exports.KursblockungStatic = void 0;
- const JavaObject_1 = require("../../java/lang/JavaObject");
- const KursblockungInputRegel_1 = require("../../core/data/kursblockung/KursblockungInputRegel");
- class KursblockungStatic extends JavaObject_1.JavaObject {
- constructor() {
- super();
- }
- /**
- * Erzeugt ein Array der Größe {@code n}, füllt es mit den Zahlen
- * {@code 0 bis n-1} und permutiert das Array dann zufällig.
- *
- * @param n Die Größe des Arrays.
- * @return Eine Array-Referenz.
- */
- static gibPermutation(n) {
- let temp = Array(n).fill(0);
- for (let i = 0; i < n; i++) {
- temp[i] = i;
- }
- KursblockungStatic.aktionPermutiere(temp);
- return temp;
- }
- /**
- * Permutiert das Array {@code perm} zufällig.
- *
- * @param perm Das zu permutierende Array.
- */
- static aktionPermutiere(perm) {
- let n = perm.length;
- for (let i1 = 0; i1 < n; i1++) {
- let i2 = (Math.random() * n);
- let s1 = perm[i1];
- let s2 = perm[i2];
- perm[i1] = s2;
- perm[i2] = s1;
- }
- }
- /**
- * Erweitert die Eingabedaten {@link KursblockungInput} um eine Regel, welche
- * bestimmte Schienen für bestimmte Kursarten sperrt.
- *
- * @param pInput Das Eingabeojekt, welchem eine neue Regel hinzugefügt wird.
- * @param pKursart Eine String-Darstellung der Kursart.
- * @param pVon Sperrung aller Schienen von (inklusive, 0-indiziert).
- * @param pBis Sperrung aller Schienen bis (inklusive, 0-indiziert).
- */
- static aktionSperreSchieneFuerKursart(pInput, pKursart, pVon, pBis) {
- for (let i = 0; i < pInput.kursarten.size(); i++) {
- let kursart = pInput.kursarten.get(i);
- if (JavaObject_1.JavaObject.equalsTranspiler(kursart.representation, (pKursart))) {
- let r = new KursblockungInputRegel_1.KursblockungInputRegel();
- r.id = 1;
- r.daten = [kursart.id, pVon, pBis];
- pInput.regeln.add(r);
- }
- }
- }
- /**
- * Erweitert die Eingabedaten {@link KursblockungInput} um Regeln, die bestimmte
- * Kurse in einer Schiene fixieren, andere Kurse die Schiene verbieten.
- *
- * @param pInput Das Eingabeojekt, welchem eine neue Regel hinzugefügt wird.
- * @param pKursnamen Die zu fixierenden Kursnamen
- * @param pSchiene Die Schiene in der die Kurse (und nur diese) liegen sollen.
- */
- static aktionFixiereKurseInSchieneSonstNichts(pInput, pKursnamen, pSchiene) {
- for (let i = 0; i < pInput.kurse.size(); i++) {
- let kurs = pInput.kurse.get(i);
- let gefunden = false;
- for (let j = 0; j < pKursnamen.length; j++) {
- if (JavaObject_1.JavaObject.equalsTranspiler(kurs.representation, (pKursnamen[j]))) {
- gefunden = true;
- }
- }
- let r = new KursblockungInputRegel_1.KursblockungInputRegel();
- if (gefunden) {
- r.id = 2;
- r.daten = [kurs.id, pSchiene];
- }
- else {
- r.id = 3;
- r.daten = [kurs.id, pSchiene];
- }
- pInput.regeln.add(r);
- }
- }
- isTranspiledInstanceOf(name) {
- return ['de.nrw.schule.svws.core.kursblockung.KursblockungStatic'].includes(name);
- }
- }
- exports.KursblockungStatic = KursblockungStatic;
- function cast_de_nrw_schule_svws_core_kursblockung_KursblockungStatic(obj) {
- return obj;
- }
- exports.cast_de_nrw_schule_svws_core_kursblockung_KursblockungStatic = cast_de_nrw_schule_svws_core_kursblockung_KursblockungStatic;
- //# sourceMappingURL=KursblockungStatic.js.map
|