Klasse BucketContainerIterator
java.lang.Object
de.bsvrz.ars.ars.persistence.iter.BucketContainerIterator
- Alle implementierten Schnittstellen:
DataIterator,AutoCloseable
Iteriert wie der
SequentialContainerIterator über eine Menge von Containern. Diese Klasse muss benutzt werden, wenn sich die Containerdateien
zeitlich bzw. datenindexmäßig überschneiden.
In diesem Fall, werden die Container-Dateien in Buckets sortiert, wobei ein Bucket immer eine Menge an sich überschneidenden Containerdateien enthält. Die Buckets selbst werden aufsteigend nach Datenindex sortiert.
Diese Klasse erzeugt die Buckets nicht selbst, sondern sie werden im Konstruktor übergeben. Diese Klasse übernimmt das Iterieren und Sortieren von den einzelnen Datensätzen.
-
Konstruktorübersicht
KonstruktorenKonstruktorBeschreibungBucketContainerIterator(List<List<QueryDataSequence.IndexedContainer>> containerFiles, de.bsvrz.dav.daf.main.archive.ArchiveDataKind adk, de.bsvrz.dav.daf.main.archive.ArchiveOrder order, IdDataIdentification idDataIdentification, DataGapManager gapManager) Erstellt einen neuen BucketContainerIterator -
Methodenübersicht
Modifizierer und TypMethodeBeschreibungvoidclose()Terminiert das iterieren.Gibt die Containerheaderdaten des Containers des aktuell betrachteten Datensatzes zurückbooleanisEmpty()Gibttruezurück, wenn der Iterator erschöpft ist.voidpeek(ContainerDataResult result) Kopiert die Daten des aktuellen Elements in das angegebene Result-Objekt.longRuft die aktuelle Archivzeit ab.longRuft den aktuellen Datenindex ab.longRuft die aktuelle Datenzeit ab.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.voidremove()Entfernt/Überspringt das aktuelle Element.Von Klasse geerbte Methoden java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitVon Schnittstelle geerbte Methoden de.bsvrz.ars.ars.persistence.iter.DataIterator
poll
-
Konstruktordetails
-
BucketContainerIterator
public BucketContainerIterator(List<List<QueryDataSequence.IndexedContainer>> containerFiles, de.bsvrz.dav.daf.main.archive.ArchiveDataKind adk, de.bsvrz.dav.daf.main.archive.ArchiveOrder order, IdDataIdentification idDataIdentification, DataGapManager gapManager) throws PersistenceException Erstellt einen neuen BucketContainerIterator- Parameter:
containerFiles- Vorsortierte Container-Dateien. Eine Liste von Container-Dateien-Gruppen, die sich jeweils zeitlich überschneiden. Die äußere Liste ist nach Datenindex sortiert. Die Liste darf nicht leer sein.adk- Archivdatenartorder- SortierungidDataIdentification- DatenidentifikationgapManager- Verwaltung von Datenlücken- Löst aus:
PersistenceException- Lesefehler beim Lesen von Daten
-
-
Methodendetails
-
peek
Beschreibung aus Schnittstelle kopiert: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.- Angegeben von:
peekin SchnittstelleDataIterator- Parameter:
result- Ziel-Element- Löst aus:
PersistenceException- Lesefehler im Persistenzverzeichnis
-
peekNext
Beschreibung aus Schnittstelle kopiert:DataIteratorGibt 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.- Angegeben von:
peekNextin SchnittstelleDataIterator- Gibt zurück:
- Ziel-Element oder null, falls es keinen nächsten Datensatz gibt
-
peekDataIndex
public long peekDataIndex()Beschreibung aus Schnittstelle kopiert:DataIteratorRuft den aktuellen Datenindex ab. Entspricht
ist aber wahrscheinlich performanter.ContainerDataResult result = new ContainerDataResult() this.peek(result) return result.getDataIndex()- Angegeben von:
peekDataIndexin SchnittstelleDataIterator- Gibt zurück:
- Datenindex des aktuellen Elements
-
peekDataTime
public long peekDataTime()Beschreibung aus Schnittstelle kopiert:DataIteratorRuft die aktuelle Datenzeit ab. Entspricht
ist aber wahrscheinlich performanter.ContainerDataResult result = new ContainerDataResult() this.peek(result) return result.getDataTime()- Angegeben von:
peekDataTimein SchnittstelleDataIterator- Gibt zurück:
- Datenzeit des aktuellen Elements
-
peekArchiveTime
public long peekArchiveTime()Beschreibung aus Schnittstelle kopiert:DataIteratorRuft die aktuelle Archivzeit ab. Entspricht
ist aber wahrscheinlich performanter.ContainerDataResult result = new ContainerDataResult() this.peek(result) return result.getArchiveTime()- Angegeben von:
peekArchiveTimein SchnittstelleDataIterator- Gibt zurück:
- Archivzeit des aktuellen Elements
-
remove
Beschreibung aus Schnittstelle kopiert:DataIteratorEntfernt/Überspringt das aktuelle Element. Der Container wird nicht modifiziert, nur der Iterator.- Angegeben von:
removein SchnittstelleDataIterator- Löst aus:
PersistenceException- Lesefehler im PersistenzverzeichnisSynchronizationFailedException- Synchronisierung fehlgeschlagen
-
isEmpty
public boolean isEmpty()Beschreibung aus Schnittstelle kopiert:DataIteratorGibttruezurück, wenn der Iterator erschöpft ist. Ist das der Fall liefern alle anderen Funktionen außer close()NoSuchElementExceptions.- Angegeben von:
isEmptyin SchnittstelleDataIterator- Gibt zurück:
true, wenn der Iterator erschöpft ist, sonstfalse
-
close
public void close()Beschreibung aus Schnittstelle kopiert:DataIteratorTerminiert das iterieren. Hierdurch werden alle ggf. noch offenen Containerdateien geschlossen.- Angegeben von:
closein SchnittstelleAutoCloseable- Angegeben von:
closein SchnittstelleDataIterator
-
getContainerManagementData
Beschreibung aus Schnittstelle kopiert:DataIteratorGibt die Containerheaderdaten des Containers des aktuell betrachteten Datensatzes zurück- Angegeben von:
getContainerManagementDatain SchnittstelleDataIterator- Gibt zurück:
- ContainerManagementData
- Löst aus:
PersistenceException- Lesefehler im Persistenzverzeichnis
-