Class ArchiveStreamCombiner
java.lang.Object
de.bsvrz.dav.daf.main.impl.archive.request.ArchiveStreamCombiner
- All Implemented Interfaces:
ArchiveDataQueryResult
,ArchiveQueryResult
public class ArchiveStreamCombiner extends java.lang.Object implements ArchiveDataQueryResult
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 Constructor Description ArchiveStreamCombiner()
-
Method Summary
Modifier and Type Method Description void
aborted(java.lang.String errorMessage)
Setzt eine Fehlermeldung und bewirkt, dass nicht weiter auf eine Antwort vom Archivsystem gewartet wird.void
addQuery(int size, ArchiveDataSpecification spec)
Wird mehrmals aufgerufen.java.lang.String
getErrorMessage()
Bestimmt eine Fehlernachricht, falls die entsprechende Archivanfrage nicht erfolgreich war.ArchiveDataStream[]
getStreams()
Bestimmt die Ergebnisdatenströme der entsprechenden Archivdatenspezifikationen aus der Archivanfrage.boolean
isRequestSuccessful()
Bestimmt, ob die Archivanfrage erfolgreich war.void
setRawResult(ArchiveDataQueryResult rawResult)
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Constructor Details
-
ArchiveStreamCombiner
public ArchiveStreamCombiner()
-
-
Method Details
-
getStreams
public ArchiveDataStream[] getStreams() throws java.lang.InterruptedException, java.lang.IllegalStateExceptionDescription 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:
java.lang.InterruptedException
- Falls der aufrufende Thread unterbrochen wurde, während auf die entsprechende Antwortnachricht aus dem Archivsystem gewartet wurde.java.lang.IllegalStateException
- Falls die Archivanfrage nicht erfolgreich war und keine Ergebnisdatenströme bestimmt werden können.- See Also:
ArchiveRequestManager.request(ArchiveQueryPriority, ArchiveDataSpecification)
,ArchiveRequestManager.request(ArchiveQueryPriority, java.util.List)
-
isRequestSuccessful
public boolean isRequestSuccessful() throws java.lang.InterruptedExceptionDescription 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:
java.lang.InterruptedException
- Falls der aufrufende Thread unterbrochen wurde, während auf die entsprechende Antwortnachricht aus dem Archivsystem gewartet wurde.
-
getErrorMessage
public java.lang.String getErrorMessage() throws java.lang.InterruptedExceptionDescription 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:
java.lang.InterruptedException
- Falls der aufrufende Thread unterbrochen wurde, während auf die entsprechende Antwortnachricht aus dem Archivsystem gewartet wurde.
-
aborted
public void aborted(java.lang.String errorMessage)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
-