Class TimeSpecificationCombineDataIterator
java.lang.Object
de.bsvrz.ars.ars.persistence.iter.CombineDataIterator
de.bsvrz.ars.ars.persistence.iter.TimeSpecificationCombineDataIterator
- All Implemented Interfaces:
DataIterator
,java.lang.AutoCloseable
public class TimeSpecificationCombineDataIterator extends CombineDataIterator
Diese Klasse entspricht einem
CombineDataIterator
und bekommt im Konstruktor als zusätzliches Argument einen Zeitbereich.
Diese Klasse filtert alle Datensätze heraus, die nicht im Zeitbereich liegen (außer ggf. den ersten Datensatz vor dem Zeitbereich, der noch im Zeitbereich gültig ist).-
Constructor Summary
Constructors Constructor Description TimeSpecificationCombineDataIterator(java.util.Collection<DataSequence> containerSequences, de.bsvrz.dav.daf.main.archive.ArchiveOrder order, java.util.zip.Inflater inflater, de.bsvrz.dav.daf.main.archive.ArchiveTimeSpecification timeSpecification)
Erstellt eine neue Instanz -
Method Summary
Modifier and Type Method Description ContainerManagementData
getContainerManagementData()
Gibt die Containerheaderdaten des Containers des aktuell betrachteten Datensatzes zurückboolean
isEmpty()
Gibttrue
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.ContainerDataResult
peekNext()
Gibt Daten des auf die gültige Sequenz folgenden Datensatzes zurück, damit kann dann unter anderem bestimmt werden, wie lange der Datensatz gültig ist.void
remove()
Entfernt das aktuelle Element.Methods inherited from class de.bsvrz.ars.ars.persistence.iter.CombineDataIterator
close, getOrder, updateDelegate
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface de.bsvrz.ars.ars.persistence.iter.DataIterator
poll
-
Constructor Details
-
TimeSpecificationCombineDataIterator
public TimeSpecificationCombineDataIterator(java.util.Collection<DataSequence> containerSequences, de.bsvrz.dav.daf.main.archive.ArchiveOrder order, java.util.zip.Inflater inflater, de.bsvrz.dav.daf.main.archive.ArchiveTimeSpecification timeSpecification) throws PersistenceException, SynchronizationFailedExceptionErstellt eine neue Instanz- Parameters:
containerSequences
- Die untergeordneten Sequenzen, eine Pro Datenartorder
- Sortierunginflater
- DekomprimierertimeSpecification
- Zeitbereich- Throws:
PersistenceException
- Lesefehler im PersistenzverzeichnisSynchronizationFailedException
-
-
Method Details
-
peekNext
Description copied from interface:DataIterator
Gibt Daten des auf die gültige Sequenz folgenden Datensatzes zurück, damit kann dann unter anderem bestimmt werden, wie lange der Datensatz gültig ist. Diese Methode darf nur aufgerufen werden, wennDataIterator.isEmpty()
true zurückliefert.- Specified by:
peekNext
in interfaceDataIterator
- Overrides:
peekNext
in classCombineDataIterator
- Returns:
- Ziel-Element oder null falls es keinen nächsten Datensatz gibt
- Throws:
PersistenceException
SynchronizationFailedException
-
peek
Description copied from interface: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.- Specified by:
peek
in interfaceDataIterator
- Overrides:
peek
in classCombineDataIterator
- Parameters:
result
- Ziel-Element- Throws:
PersistenceException
-
peekDataIndex
public long peekDataIndex()Description copied from interface:DataIterator
Ruft den aktuellen Datenindex ab. Entspricht
ist aber wahrscheinlich performanter.ContainerDataResult result = new ContainerDataResult() this.peek(result) return result.getDataIndex()
- Specified by:
peekDataIndex
in interfaceDataIterator
- Overrides:
peekDataIndex
in classCombineDataIterator
- Returns:
- Datenindex des aktuellen Elements
-
peekDataTime
public long peekDataTime()Description copied from interface:DataIterator
Ruft die aktuelle Datenzeit ab. Entspricht
ist aber wahrscheinlich performanter.ContainerDataResult result = new ContainerDataResult() this.peek(result) return result.getDataTime()
- Specified by:
peekDataTime
in interfaceDataIterator
- Overrides:
peekDataTime
in classCombineDataIterator
- Returns:
- Datenzeit des aktuellen Elements
-
peekArchiveTime
public long peekArchiveTime()Description copied from interface:DataIterator
Ruft die aktuelle Archivzeit ab. Entspricht
ist aber wahrscheinlich performanter.ContainerDataResult result = new ContainerDataResult() this.peek(result) return result.getArchiveTime()
- Specified by:
peekArchiveTime
in interfaceDataIterator
- Overrides:
peekArchiveTime
in classCombineDataIterator
- Returns:
- Archivzeit des aktuellen Elements
-
remove
Description copied from interface:DataIterator
Entfernt das aktuelle Element.- Specified by:
remove
in interfaceDataIterator
- Overrides:
remove
in classCombineDataIterator
- Throws:
PersistenceException
SynchronizationFailedException
-
isEmpty
public boolean isEmpty()Description copied from interface:DataIterator
Gibttrue
zurück, wenn der Iterator erschöpft ist. Ist das der Fall liefern alle anderen Funktionen außer close()NoSuchElementException
s.- Specified by:
isEmpty
in interfaceDataIterator
- Overrides:
isEmpty
in classCombineDataIterator
- Returns:
true
, wenn der Iterator erschöpft ist, sonstfalse
-
getContainerManagementData
Description copied from interface:DataIterator
Gibt die Containerheaderdaten des Containers des aktuell betrachteten Datensatzes zurück- Specified by:
getContainerManagementData
in interfaceDataIterator
- Overrides:
getContainerManagementData
in classCombineDataIterator
- Returns:
- ContainerManagementData
- Throws:
PersistenceException
- Lesefehler im Persistenzverzeichnis
-