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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaborted(java.lang.String errorMessage)Setzt eine Fehlermeldung und bewirkt, dass nicht weiter auf eine Antwort vom Archivsystem gewartet wird.voidaddQuery(int size, ArchiveDataSpecification spec)Wird mehrmals aufgerufen.java.lang.StringgetErrorMessage()Bestimmt eine Fehlernachricht, falls die entsprechende Archivanfrage nicht erfolgreich war.ArchiveDataStream[]getStreams()Bestimmt die Ergebnisdatenströme der entsprechenden Archivdatenspezifikationen aus der Archivanfrage.booleanisRequestSuccessful()Bestimmt, ob die Archivanfrage erfolgreich war.voidsetRawResult(ArchiveDataQueryResult rawResult)
-
-
-
Method Detail
-
getStreams
public ArchiveDataStream[] getStreams() throws java.lang.InterruptedException, java.lang.IllegalStateException
Description copied from interface:ArchiveDataQueryResultBestimmt 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:
getStreamsin 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:ArchiveQueryResultBestimmt, 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:
isRequestSuccessfulin 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:ArchiveQueryResultBestimmt eine Fehlernachricht, falls die entsprechende Archivanfrage nicht erfolgreich war.- Specified by:
getErrorMessagein 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:ArchiveQueryResultSetzt eine Fehlermeldung und bewirkt, dass nicht weiter auf eine Antwort vom Archivsystem gewartet wird.- Specified by:
abortedin interfaceArchiveQueryResult- Parameters:
errorMessage- Fehlermeldung, mit der die Anfrage terminiert wird.
-
setRawResult
public void setRawResult(ArchiveDataQueryResult rawResult)
-
addQuery
public void addQuery(int size, ArchiveDataSpecification spec)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
-
-