Class ArchiveStreamCombiner
java.lang.Object
de.bsvrz.dav.daf.main.impl.archive.request.ArchiveStreamCombiner
- All Implemented Interfaces:
ArchiveDataQueryResult
,ArchiveQueryResult
Diese Klasse bündelt bei Anfragen nach Pids eventuell mehrere Ergebnis-Streams (pro historischem Objekt) zu einem einzigen Stream (pro Pid), sodass
die Streams den angefragten Daten entsprechen.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
Setzt eine Fehlermeldung und bewirkt, dass nicht weiter auf eine Antwort vom Archivsystem gewartet wird.void
addQuery
(int size, ArchiveDataSpecification spec) Wird mehrmals aufgerufen.Bestimmt eine Fehlernachricht, falls die entsprechende Archivanfrage nicht erfolgreich war.Bestimmt die Ergebnisdatenströme der entsprechenden Archivdatenspezifikationen aus der Archivanfrage.boolean
Bestimmt, ob die Archivanfrage erfolgreich war.void
setRawResult
(ArchiveDataQueryResult rawResult)
-
Constructor Details
-
ArchiveStreamCombiner
public ArchiveStreamCombiner()
-
-
Method Details
-
getStreams
Description copied from interface:ArchiveDataQueryResult
Bestimmt die Ergebnisdatenströme der entsprechenden Archivdatenspezifikationen aus der Archivanfrage. Diese Methode wird von einer Applikation aufgerufen, um auf die Ergebnisdatenströme zuzugreifen. Eine Implementierung dieser Methode muss zu jeder Archivdatenspezifikation aus der Archivanfrage einen entsprechenden Ergebnisdatenstrom bereitstellen.- Specified by:
getStreams
in interfaceArchiveDataQueryResult
- Returns:
- Array mit mit Ergebnisdatenströmen entsprechend den Archivdatenspezifikationen aus der Archivanfrage. Zu jeder Archivdatenspezifikation aus der Archivanfrage wird ein korrespondierender Ergebnisdatenstrom im Array erzeugt.
- Throws:
InterruptedException
- Falls der aufrufende Thread unterbrochen wurde, während auf die entsprechende Antwortnachricht aus dem Archivsystem gewartet wurde.IllegalStateException
- Falls die Archivanfrage nicht erfolgreich war und keine Ergebnisdatenströme bestimmt werden können.- See Also:
-
isRequestSuccessful
Description copied from interface:ArchiveQueryResult
Bestimmt, ob die Archivanfrage erfolgreich war. Die Methode wird von einer Applikation aufgerufen um festzustellen, ob die Anfrage erfolgreich war und weitere anfragespezifische Ergebnisse aus den verschiedenen abgeleiteten Interfaces abgerufen werden können oder ob die Anfrage nicht erfolgreich war und eine entsprechende Fehlermeldung über die MethodeArchiveQueryResult.getErrorMessage()
abgerufen werden kann.- Specified by:
isRequestSuccessful
in interfaceArchiveQueryResult
- Returns:
true
, falls die Anfrage erfolgreich war, sonstfalse
.- Throws:
InterruptedException
- Falls der aufrufende Thread unterbrochen wurde, während auf die entsprechende Antwortnachricht aus dem Archivsystem gewartet wurde.
-
getErrorMessage
Description copied from interface:ArchiveQueryResult
Bestimmt eine Fehlernachricht, falls die entsprechende Archivanfrage nicht erfolgreich war.- Specified by:
getErrorMessage
in interfaceArchiveQueryResult
- Returns:
- Fehlernachricht, wenn die entsprechende Archivanfrage nicht erfolgreich, sonst leerer String.
- Throws:
InterruptedException
- Falls der aufrufende Thread unterbrochen wurde, während auf die entsprechende Antwortnachricht aus dem Archivsystem gewartet wurde.
-
aborted
Description copied from interface:ArchiveQueryResult
Setzt eine Fehlermeldung und bewirkt, dass nicht weiter auf eine Antwort vom Archivsystem gewartet wird.- Specified by:
aborted
in interfaceArchiveQueryResult
- Parameters:
errorMessage
- Fehlermeldung, mit der die Anfrage terminiert wird.
-
setRawResult
-
addQuery
Wird mehrmals aufgerufen. Vermerkt jeweils, wie zusammengehörige Streams zu bündeln sind.- Parameters:
size
- Anzahl zu bündelnder Streams, bei Anfragen ohne Pid 1spec
- Originale Anfrage
-