private static class ArchiveStreamCombiner.RelativeCombinedStream extends java.lang.Object implements ArchiveDataStream
Modifier and Type | Field and Description |
---|---|
private java.util.ArrayDeque<ArchiveData> |
_buffer |
private java.lang.Exception |
_exception |
private ArchiveDataSpecification |
_spec |
Constructor and Description |
---|
RelativeCombinedStream(ArchiveDataStream[] streamsToCombine,
ArchiveDataSpecification spec) |
Modifier and Type | Method and Description |
---|---|
void |
abort()
Bricht die Übertragung von Datensätzen für diesen Ergebnisdatenstrom ab.
|
ArchiveDataSpecification |
getDataSpecification()
Bestimmt die Archivdatenspezifikation, die zu diesem Ergebnisdatenstrom geführt hat.
|
private static boolean |
shouldCount(ArchiveData aData)
Gibt zurück ob ein Datensatz bei Relativanfragen mitgezählt werden soll oder nicht.
|
ArchiveData |
take()
Entfernt einen Datensatz vom Ergebnisdatenstrom und gibt ihn zurück.
|
private final ArchiveDataSpecification _spec
private java.lang.Exception _exception
private final java.util.ArrayDeque<ArchiveData> _buffer
public RelativeCombinedStream(ArchiveDataStream[] streamsToCombine, ArchiveDataSpecification spec)
private static boolean shouldCount(ArchiveData aData)
Gibt zurück ob ein Datensatz bei Relativanfragen mitgezählt werden soll oder nicht.
aData
- Datumpublic ArchiveDataSpecification getDataSpecification()
ArchiveDataStream
Bestimmt die Archivdatenspezifikation, die zu diesem Ergebnisdatenstrom geführt hat.
getDataSpecification
in interface ArchiveDataStream
public ArchiveData take() throws java.lang.InterruptedException, java.io.IOException, java.lang.IllegalStateException
ArchiveDataStream
Entfernt einen Datensatz vom Ergebnisdatenstrom und gibt ihn zurück. Diese Methode wird von einer Applikation aufgerufen um die vom Archivsystem auf diesem Ergebnisdatenstrom zur Verfügung gestellten Datensätze abzurufen. Die einzelnen Datensätze werden mit wiederholten Aufrufen dieser Methode sukzessiv in der gleichen Reihenfolge wie sie im Archivsystem erzeugt werden zur Verfügung gestellt. Sind alle Datensätze so übergeben worden, dann muss dies durch Rückgabe von null
signalisiert werden.
take
in interface ArchiveDataStream
null
, wenn alle Datensätze dieses Ergeebnisdatenstroms abgefragt wurden.java.lang.InterruptedException
- Falls der aufrufende Thread unterbrochen wurde, während auf den nächsten Datensatz gewartet wurde.java.io.IOException
- Falls Probleme in der Kommunikation mit dem Archivsystem aufgetreten sind und noch nicht alle Datensätze übertragen wurden.java.lang.IllegalStateException
- Falls der Ergebnisdatenstrom mit der Methode ArchiveDataStream.abort()
abgebrochen wurde.public void abort()
ArchiveDataStream
Bricht die Übertragung von Datensätzen für diesen Ergebnisdatenstrom ab. Diese Methode kann von einer Applikation aufgerufen werden, um zu signalisieren, dass keine weiteren Datensätze mehr von diesem Ergebnisdatenstrom benötigt werden. Anschließende Aufrufe der Methode ArchiveDataStream.take()
werden mit einer entsprechenden Exception quittiert.
abort
in interface ArchiveDataStream