public class CombineAdkDataIterator extends java.lang.Object implements DataIterator
Diese Klasse kombiniert mehrere Iteratoren
über verschiedene Archivdatenarten
um daraus einen einzelnen Iterator zu erstellen, der alle Daten enthält.
Die Daten werden dabei entweder Anhand ihrer Datenzeit oder ihres Datenindex einsortiert.
Modifier and Type | Field and Description |
---|---|
private DataIterator |
_currentDelegate |
private java.util.List<DataIterator> |
_iterators |
private ArchiveOrder |
_order |
Constructor and Description |
---|
CombineAdkDataIterator(java.util.Collection<DataSequence> containerSequences,
ArchiveOrder order)
Konstruktor
|
CombineAdkDataIterator(java.util.List<DataIterator> iterators,
ArchiveOrder order)
Konstruktor
|
Modifier and Type | Method and Description |
---|---|
void |
close()
Terminiert das iterieren.
|
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.
|
void |
remove()
Entfernt das aktuelle Element.
|
private void |
updateDelegate() |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
empty, poll
private DataIterator _currentDelegate
private final java.util.List<DataIterator> _iterators
private final ArchiveOrder _order
public CombineAdkDataIterator(java.util.Collection<DataSequence> containerSequences, ArchiveOrder order) throws PersistenceException
Konstruktor
containerSequences
- Die Sequenzen der verschiedenen DatenartenPersistenceException
public CombineAdkDataIterator(java.util.List<DataIterator> iterators, ArchiveOrder order)
Konstruktor
iterators
- Die Iteratoren der verschiedenen DatenartenPersistenceException
public void peek(ContainerDataResult result) throws PersistenceException
DataIterator
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.
peek
in interface DataIterator
result
- Ziel-ElementPersistenceException
public long peekDataIndex()
DataIterator
Ruft den aktuellen Datenindex ab. Entspricht ContainerDataResult result = new ContainerDataResult() this.peek(result) return result.getDataIndex()
ist aber wahrscheinlich performanter.
peekDataIndex
in interface DataIterator
public long peekDataTime()
DataIterator
Ruft die aktuelle Datenzeit ab. Entspricht ContainerDataResult result = new ContainerDataResult() this.peek(result) return result.getDataTime()
ist aber wahrscheinlich performanter.
peekDataTime
in interface DataIterator
public long peekArchiveTime()
DataIterator
Ruft die aktuelle Archivzeit ab. Entspricht ContainerDataResult result = new ContainerDataResult() this.peek(result) return result.getArchiveTime()
ist aber wahrscheinlich performanter.
peekArchiveTime
in interface DataIterator
public void remove() throws PersistenceException
DataIterator
Entfernt das aktuelle Element.
remove
in interface DataIterator
PersistenceException
private void updateDelegate()
public boolean isEmpty()
DataIterator
Gibt true zurück, wenn der Iterator erschöpft ist. Ist das der Fall liefern alle anderen Funktionen außer close() NoSuchElementException
s.
isEmpty
in interface DataIterator
public void close() throws PersistenceException
DataIterator
Terminiert das iterieren. Hierdurch werden alle ggf. noch offenen Containerdateien geschlossen.
close
in interface DataIterator
close
in interface java.lang.AutoCloseable
PersistenceException
public long getCurContFileIdx()
getCurContFileIdx
in interface DataIterator