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, waitempty, pollprivate 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 DatenartenPersistenceExceptionpublic CombineAdkDataIterator(java.util.List<DataIterator> iterators, ArchiveOrder order)
Konstruktor
iterators - Die Iteratoren der verschiedenen DatenartenPersistenceExceptionpublic void peek(ContainerDataResult result) throws PersistenceException
DataIteratorKopiert 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 DataIteratorresult - Ziel-ElementPersistenceExceptionpublic long peekDataIndex()
DataIteratorRuft den aktuellen Datenindex ab. Entspricht ContainerDataResult result = new ContainerDataResult() this.peek(result) return result.getDataIndex()
ist aber wahrscheinlich performanter.
peekDataIndex in interface DataIteratorpublic long peekDataTime()
DataIteratorRuft die aktuelle Datenzeit ab. Entspricht ContainerDataResult result = new ContainerDataResult() this.peek(result) return result.getDataTime()
ist aber wahrscheinlich performanter.
peekDataTime in interface DataIteratorpublic long peekArchiveTime()
DataIteratorRuft die aktuelle Archivzeit ab. Entspricht ContainerDataResult result = new ContainerDataResult() this.peek(result) return result.getArchiveTime()
ist aber wahrscheinlich performanter.
peekArchiveTime in interface DataIteratorpublic void remove()
throws PersistenceException
DataIteratorEntfernt das aktuelle Element.
remove in interface DataIteratorPersistenceExceptionprivate void updateDelegate()
public boolean isEmpty()
DataIteratorGibt true zurück, wenn der Iterator erschöpft ist. Ist das der Fall liefern alle anderen Funktionen außer close() NoSuchElementExceptions.
isEmpty in interface DataIteratorpublic void close()
throws PersistenceException
DataIteratorTerminiert das iterieren. Hierdurch werden alle ggf. noch offenen Containerdateien geschlossen.
close in interface DataIteratorclose in interface java.lang.AutoCloseablePersistenceExceptionpublic long getCurContFileIdx()
getCurContFileIdx in interface DataIterator