de.bsvrz.dav.daf.main.impl.archive.request
Class RequestInfo

java.lang.Object
  extended by de.bsvrz.dav.daf.main.impl.archive.request.RequestInfo
All Implemented Interfaces:
ArchiveInfoQueryResult, ArchiveQueryResult

public class RequestInfo
extends Object
implements ArchiveInfoQueryResult

Diese Klasse stellt ein Objekt zur Verfügung, über das eine Archivinformationsanfrage gestartet werden kann. Diese Klasse wird von der Klasse StreamedArchiveRequester benutzt.

Author:
Kappich+Kniß Systemberatung Aachen (K2S), Achim Wullenkord (AW)

Constructor Summary
RequestInfo(List<ArchiveDataSpecification> specs, ArchiveQueryID archiveRequestID, StreamedArchiveRequester streamedArchiveRequester, short defaultSimulationVariant)
           
 
Method Summary
 void archiveResponse(Data data)
          Diese Methode wird aufgerufen, wenn die Antwort des Archivsystems empfangen wurde.
 List<ArchiveInformationResult> getArchiveInfoQueryResult()
          Diese Methode gibt eine Liste zurück, die alle Zeit/Indexbereiche einer Archivinformationsanfrage beinhaltet.
 ArchiveQueryID getArchiveRequestID()
           
 String getErrorMessage()
          Diese Methode liefert einen String mit der Fehlermeldung, die dazu geführt hat das die Informationsanfrage nicht ausgeführt werden konnte.
 boolean isRequestSuccessful()
          Diese Methode ist blockierend, bis die Antwort des Archivs vorliegt.
 void sendRequestInfo()
          Diese Methode verschickt eine Archivinfoanfrage an das entsprechende Archivsystem und meldet sich wieder als Sender ab.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RequestInfo

public RequestInfo(List<ArchiveDataSpecification> specs,
                   ArchiveQueryID archiveRequestID,
                   StreamedArchiveRequester streamedArchiveRequester,
                   short defaultSimulationVariant)
Method Detail

getArchiveInfoQueryResult

public List<ArchiveInformationResult> getArchiveInfoQueryResult()
Diese Methode gibt eine Liste zurück, die alle Zeit/Indexbereiche einer Archivinformationsanfrage beinhaltet. Der Aufruf ist blockierend, bis ein Ergebnis vorliegt. War die Anfrage erfolgreich, wird die Liste zurückgegeben. War die Anfrage nicht erfolgreich wird eine RuntimeException ausgelöst ! Ein Aufruf dieser Methode sollte also nur erfolgen, nach dem sichergestellt wurde das isRequestSuccessful den Wert true zurückliefert.

Specified by:
getArchiveInfoQueryResult in interface ArchiveInfoQueryResult
Returns:

isRequestSuccessful

public boolean isRequestSuccessful()
                            throws InterruptedException
Diese Methode ist blockierend, bis die Antwort des Archivs vorliegt.

Specified by:
isRequestSuccessful in interface ArchiveQueryResult
Returns:
true = Die Anfrage konnte fehlerfrei bearbeitet werden; false = Während der Bearbeitung der Anfrage kam es zu einem Fehler, dieser kann mit getErrorMessage angezeigt werden
Throws:
InterruptedException - Der Thread, der den Auftrag bearbeitet, wurde abgebrochen

getErrorMessage

public String getErrorMessage()
                       throws InterruptedException
Diese Methode liefert einen String mit der Fehlermeldung, die dazu geführt hat das die Informationsanfrage nicht ausgeführt werden konnte. Dieser Aufruf blockiert solange, bis ein Ergebnis des Archivsystems vorliegt.

Specified by:
getErrorMessage in interface ArchiveQueryResult
Returns:
String mit einer Fehlermeldung
Throws:
InterruptedException - Der Thread, der den Auftrag bearbeitet, wurde abgebrochen

sendRequestInfo

public void sendRequestInfo()
Diese Methode verschickt eine Archivinfoanfrage an das entsprechende Archivsystem und meldet sich wieder als Sender ab.


archiveResponse

public void archiveResponse(Data data)
Diese Methode wird aufgerufen, wenn die Antwort des Archivsystems empfangen wurde. Die Antwort wird analysiert und die betreffenden Objekte zur Verfügung gestellt, wartende Threads werden benachrichtigt.


getArchiveRequestID

public ArchiveQueryID getArchiveRequestID()
Returns:
Eindeutige Identifikation der Archivanfrage (RequestInfo in diesem Fall)