MinHeapIterator.js 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.cast_de_nrw_schule_svws_core_adt_tree_MinHeapIterator = exports.MinHeapIterator = void 0;
  4. const JavaObject_1 = require("../../../java/lang/JavaObject");
  5. const ConcurrentModificationException_1 = require("../../../java/util/ConcurrentModificationException");
  6. const NoSuchElementException_1 = require("../../../java/util/NoSuchElementException");
  7. const UnsupportedOperationException_1 = require("../../../java/lang/UnsupportedOperationException");
  8. class MinHeapIterator extends JavaObject_1.JavaObject {
  9. _elements;
  10. _current = 0;
  11. _heap;
  12. _expModCount;
  13. /**
  14. * Erstellt einen neuen Iterator für die Klasse MinHeap
  15. *
  16. * @param elem die Elemente des Minimum Heaps
  17. * @param heap eine Referenz zum Minimum Heap, um auf parallel erfolgende modifizierende Zugriffe reagierenzu können.
  18. */
  19. constructor(elem, heap) {
  20. super();
  21. this._current = -1;
  22. this._elements = elem;
  23. this._heap = heap;
  24. this._expModCount = heap.getModCount();
  25. }
  26. hasNext() {
  27. if (this._heap.getModCount() !== this._expModCount)
  28. throw new ConcurrentModificationException_1.ConcurrentModificationException();
  29. return ((this._current + 1) < this._heap.size());
  30. }
  31. next() {
  32. if (!this.hasNext())
  33. throw new NoSuchElementException_1.NoSuchElementException("Keine weiteren Elemente vorhanden. Eine Prüfung mit hasNext() vorab ist empfehlenswert.");
  34. let elem = this._elements[++this._current];
  35. if (elem === null)
  36. throw new NoSuchElementException_1.NoSuchElementException("Interner Fehler in der Datenstruktur.");
  37. return elem;
  38. }
  39. remove() {
  40. throw new UnsupportedOperationException_1.UnsupportedOperationException("remove");
  41. }
  42. isTranspiledInstanceOf(name) {
  43. return ['java.util.Iterator', 'de.nrw.schule.svws.core.adt.tree.MinHeapIterator'].includes(name);
  44. }
  45. }
  46. exports.MinHeapIterator = MinHeapIterator;
  47. function cast_de_nrw_schule_svws_core_adt_tree_MinHeapIterator(obj) {
  48. return obj;
  49. }
  50. exports.cast_de_nrw_schule_svws_core_adt_tree_MinHeapIterator = cast_de_nrw_schule_svws_core_adt_tree_MinHeapIterator;
  51. //# sourceMappingURL=MinHeapIterator.js.map