"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.cast_de_nrw_schule_svws_core_adt_tree_MinHeapIterator = exports.MinHeapIterator = void 0; const JavaObject_1 = require("../../../java/lang/JavaObject"); const ConcurrentModificationException_1 = require("../../../java/util/ConcurrentModificationException"); const NoSuchElementException_1 = require("../../../java/util/NoSuchElementException"); const UnsupportedOperationException_1 = require("../../../java/lang/UnsupportedOperationException"); class MinHeapIterator extends JavaObject_1.JavaObject { _elements; _current = 0; _heap; _expModCount; /** * Erstellt einen neuen Iterator für die Klasse MinHeap * * @param elem die Elemente des Minimum Heaps * @param heap eine Referenz zum Minimum Heap, um auf parallel erfolgende modifizierende Zugriffe reagierenzu können. */ constructor(elem, heap) { super(); this._current = -1; this._elements = elem; this._heap = heap; this._expModCount = heap.getModCount(); } hasNext() { if (this._heap.getModCount() !== this._expModCount) throw new ConcurrentModificationException_1.ConcurrentModificationException(); return ((this._current + 1) < this._heap.size()); } next() { if (!this.hasNext()) throw new NoSuchElementException_1.NoSuchElementException("Keine weiteren Elemente vorhanden. Eine Prüfung mit hasNext() vorab ist empfehlenswert."); let elem = this._elements[++this._current]; if (elem === null) throw new NoSuchElementException_1.NoSuchElementException("Interner Fehler in der Datenstruktur."); return elem; } remove() { throw new UnsupportedOperationException_1.UnsupportedOperationException("remove"); } isTranspiledInstanceOf(name) { return ['java.util.Iterator', 'de.nrw.schule.svws.core.adt.tree.MinHeapIterator'].includes(name); } } exports.MinHeapIterator = MinHeapIterator; function cast_de_nrw_schule_svws_core_adt_tree_MinHeapIterator(obj) { return obj; } exports.cast_de_nrw_schule_svws_core_adt_tree_MinHeapIterator = cast_de_nrw_schule_svws_core_adt_tree_MinHeapIterator; //# sourceMappingURL=MinHeapIterator.js.map