public interface DataIterator
extends java.lang.AutoCloseable
Ein Iterator über die Datensätze von mehreren Containern. Der Iterator verhält sich anders als der Standard-Java-iterator und mehr wie eine Queue. peek
rufe den aktuellen Datensatz am Kopf der Queue ab, remove
entfernt diesen, sodass der nächste Datensatz abgerufen werden kann (falls vorhanden). poll(ContainerDataResult)
gibt den aktuellen Datensatz zurück und entfernt ihn in einem Schritt.
Die Iteration mit dieser Klasse erfolg wie beispielsweise folgt: ContainerDataResult result = new ContainerDataResult() while(!iter.isEmpty()) { iter.poll(result); // tue was mit result } iter.close()
Modifier and Type | Method and Description |
---|---|
void |
close()
Terminiert das iterieren.
|
static DataIterator |
empty() |
long |
getCurContFileIdx() |
boolean |
isEmpty()
Gibt true zurück, wenn der Iterator erschöpft ist.
|
void |
peek(ContainerDataResult result)
Kopiert die Daten des aktuellen Elements in das angegebene Result-Objekt.
|
long |
peekArchiveTime()
Ruft die aktuelle Archivzeit ab.
|
long |
peekDataIndex()
Ruft den aktuellen Datenindex ab.
|
long |
peekDataTime()
Ruft die aktuelle Datenzeit ab.
|
default void |
poll(ContainerDataResult result)
Entspricht dem Aufruf von
peek(result)´ gefolgt von remove()`. |
void |
remove()
Entfernt das aktuelle Element.
|
void peek(ContainerDataResult result) throws PersistenceException
Kopiert die Daten des aktuellen Elements in das angegebene Result-Objekt. Dies ist eine Optimierung, damit nicht ständig neue Result-Objekt angelegt werden müssen.
result
- Ziel-Elementjava.util.NoSuchElementException
- falls kein Element mehr Verfügbar (isEmpty == true)PersistenceException
long peekDataIndex()
Ruft den aktuellen Datenindex ab. Entspricht ContainerDataResult result = new ContainerDataResult() this.peek(result) return result.getDataIndex()
ist aber wahrscheinlich performanter.
java.util.NoSuchElementException
- falls kein Element mehr Verfügbar (isEmpty == true)long peekDataTime()
Ruft die aktuelle Datenzeit ab. Entspricht ContainerDataResult result = new ContainerDataResult() this.peek(result) return result.getDataTime()
ist aber wahrscheinlich performanter.
java.util.NoSuchElementException
- falls kein Element mehr Verfügbar (isEmpty == true)long peekArchiveTime()
Ruft die aktuelle Archivzeit ab. Entspricht ContainerDataResult result = new ContainerDataResult() this.peek(result) return result.getArchiveTime()
ist aber wahrscheinlich performanter.
java.util.NoSuchElementException
- falls kein Element mehr Verfügbar (isEmpty == true)default void poll(ContainerDataResult result) throws PersistenceException
Entspricht dem Aufruf von peek(result)´ gefolgt von
remove()`.
result
- PersistenceException
void remove() throws PersistenceException
Entfernt das aktuelle Element.
PersistenceException
boolean isEmpty()
Gibt true zurück, wenn der Iterator erschöpft ist. Ist das der Fall liefern alle anderen Funktionen außer close() NoSuchElementException
s.
void close() throws PersistenceException
Terminiert das iterieren. Hierdurch werden alle ggf. noch offenen Containerdateien geschlossen.
close
in interface java.lang.AutoCloseable
PersistenceException
long getCurContFileIdx()
static DataIterator empty()