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)

Field Summary
private  List<ArchiveInformationResult> _archiveInformationResults
          Liste, die die Antwort des Archivs speichert
private  ArchiveQueryID _client
           
private static Debug _debug
          DebugLogger für Debug-Ausgaben
private  short _defaultSimulationVariant
          Falls keine Simulationsvariante gesetzt wird, dann wird dieser default-Wert benutzt.
private  String _errorMessage
           
private  boolean _lock
          Diese Variable sperrt alle Anfrage, bis die Antwort des Archivsystems vorliegt.
private  boolean _requestSuccessful
          Diese Variable speichert, ob die Infoanfrage erfolgreich war.
private  List<ArchiveDataSpecification> _specs
           
private  StreamedArchiveRequester _streamedArchiveRequester
           
 
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.
private  void sendData()
           
 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
 

Field Detail

_client

private final ArchiveQueryID _client

_specs

private final List<ArchiveDataSpecification> _specs

_debug

private static final Debug _debug
DebugLogger für Debug-Ausgaben


_errorMessage

private String _errorMessage

_archiveInformationResults

private List<ArchiveInformationResult> _archiveInformationResults
Liste, die die Antwort des Archivs speichert


_lock

private boolean _lock
Diese Variable sperrt alle Anfrage, bis die Antwort des Archivsystems vorliegt.


_requestSuccessful

private boolean _requestSuccessful
Diese Variable speichert, ob die Infoanfrage erfolgreich war.


_streamedArchiveRequester

private final StreamedArchiveRequester _streamedArchiveRequester

_defaultSimulationVariant

private final short _defaultSimulationVariant
Falls keine Simulationsvariante gesetzt wird, dann wird dieser default-Wert benutzt.

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.


sendData

private void sendData()

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)