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.IllegalStateException
      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 interface ArchiveDataQueryResult
      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.InterruptedException
      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 Methode ArchiveQueryResult.getErrorMessage() abgerufen werden kann.
      Specified by:
      isRequestSuccessful in interface ArchiveQueryResult
      Returns:
      true, falls die Anfrage erfolgreich war, sonst false.
      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.InterruptedException
      Description copied from interface: ArchiveQueryResult
      Bestimmt eine Fehlernachricht, falls die entsprechende Archivanfrage nicht erfolgreich war.
      Specified by:
      getErrorMessage in interface ArchiveQueryResult
      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 interface ArchiveQueryResult
      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 1
      spec - Originale Anfrage