de.bsvrz.ars.ars.mgmt.tasks
Class ArchiveQueryTask.Container

java.lang.Object
  extended by de.bsvrz.ars.ars.mgmt.tasks.ArchiveQueryTask.Container
Enclosing class:
ArchiveQueryTask

private class ArchiveQueryTask.Container
extends Object

Diese Klasse kapselt alle notwendigen Informationen zu einem Ergebnis-Datencontainer.


Field Summary
private  boolean accessed
          Flag, ob dieser Container gerade geoffnet ist.
private  ArchiveQueryTask.SimpleArchiveData afterSentData
          Speichert die Zeitstempel und den Datenindex des Datensatzes, der nach dem zuletzt aus diesem Container versandten Datensatz folgt, allerdings nicht den Datensatz selbst.
private  long contId
          Container-ID
private  int contInfoIdx
          Index, an dem diese Container-Info innerhalb ihres Container-Walk-Indexes einsortiert worden ist.
private  int contWalkIdx
          Container-Walk-Index, an dem diese Container-Info in den Container-Walk einsortiert worden ist.
private  ArchiveDataKind dataKind
          Datensatzart des Containers.
private  boolean deleted
          Flag, ob die Datensaetze des Containers bereits geloescht sind.
private  boolean done
          Flag, ob dieser Container bei der Erstellung der Archivantwort bereits fertig durchlaufen ist.
private  ContainerDataIterator iter
          Iterator ueber die Datensaetze des aktuell auszulesenden Containers.
private  long maxArcTime
          Minimale oder maximale Datenzeit, Archivzeit oder Datenindex.
private  long maxDataIdx
          Minimale oder maximale Datenzeit, Archivzeit oder Datenindex.
private  long maxDataTime
          Minimale oder maximale Datenzeit, Archivzeit oder Datenindex.
private  long minArcTime
          Minimale oder maximale Datenzeit, Archivzeit oder Datenindex.
private  long minDataIdx
          Minimale oder maximale Datenzeit, Archivzeit oder Datenindex.
private  long minDataTime
          Minimale oder maximale Datenzeit, Archivzeit oder Datenindex.
private  ArchiveQueryTask.SimpleArchiveData prevData
          Bei der Suche nach dem ersten zu sendenden Datnsatz im ersten ContWalk-Index, also dann, wenn ArchiveQueryTask.Query.firstDataSent noch false ist, wird beim Durchlaufen der Datensaetze der jeweils gelesene Datensatz immer in dieser Variable vermerkt.
private  boolean saved
          Flag, ob der Container auf ein Medium vom Typ B gesichert wurde.
private  ArchiveQueryTask.SimpleArchiveData sentData
          Speichert die Zeitstempel und den Datenindex des zuletzt aus diesem Container versandten Datensatz, allerdings nicht den Datensatz selbst.
 
Constructor Summary
private ArchiveQueryTask.Container(long contId, ArchiveDataKind dataKind)
          Erzeugt eine neue Container-Info mit den angegebenen Parametern.
 
Method Summary
private  long cmpValMax(ArchiveOrder order)
           
private  long cmpValMin(ArchiveOrder order)
           
private  long getCurrTime(TimingType tt)
          Liefert den Datenindex / die Archivzeit / die Datenzeit des naechsten zu liefernden Datensatzes.
private  long getPrevTime(TimingType tt)
          Liefert den Datenindex / die Archivzeit / die Datenzeit des vorhergehenden Datensatzes.
private  void setAfterSendData(ContainerDataIterator afterSentDataIt, ArchiveDataKind dataKind)
          Setzt die Zeitstempel und den Datenindex des Datensatzes, der im Container nach dem zuletzt versandten Datensatz folgt.
private  void setSendData(ArchiveQueryTask.SimpleArchiveData sentData)
          Setzt die Zeitstempel und den Datenindex des zuletzt versandten Datensatzes dieses Containers.
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

contId

private long contId
Container-ID


dataKind

private ArchiveDataKind dataKind
Datensatzart des Containers.


minDataTime

private long minDataTime
Minimale oder maximale Datenzeit, Archivzeit oder Datenindex. Werden aus den Indexen gefuellt.


minArcTime

private long minArcTime
Minimale oder maximale Datenzeit, Archivzeit oder Datenindex. Werden aus den Indexen gefuellt.


minDataIdx

private long minDataIdx
Minimale oder maximale Datenzeit, Archivzeit oder Datenindex. Werden aus den Indexen gefuellt.


maxDataTime

private long maxDataTime
Minimale oder maximale Datenzeit, Archivzeit oder Datenindex. Werden aus den Indexen gefuellt.


maxArcTime

private long maxArcTime
Minimale oder maximale Datenzeit, Archivzeit oder Datenindex. Werden aus den Indexen gefuellt.


maxDataIdx

private long maxDataIdx
Minimale oder maximale Datenzeit, Archivzeit oder Datenindex. Werden aus den Indexen gefuellt.


deleted

private boolean deleted
Flag, ob die Datensaetze des Containers bereits geloescht sind.


saved

private boolean saved
Flag, ob der Container auf ein Medium vom Typ B gesichert wurde.


iter

private ContainerDataIterator iter
Iterator ueber die Datensaetze des aktuell auszulesenden Containers.


contWalkIdx

private int contWalkIdx
Container-Walk-Index, an dem diese Container-Info in den Container-Walk einsortiert worden ist. Index ist -1 falls noch nicht im Container-Walk einsortiert.


contInfoIdx

private int contInfoIdx
Index, an dem diese Container-Info innerhalb ihres Container-Walk-Indexes einsortiert worden ist. Index ist -1 falls noch nicht im Container-Walk einsortiert.


accessed

private boolean accessed
Flag, ob dieser Container gerade geoffnet ist.


done

private boolean done
Flag, ob dieser Container bei der Erstellung der Archivantwort bereits fertig durchlaufen ist.


prevData

private ArchiveQueryTask.SimpleArchiveData prevData
Bei der Suche nach dem ersten zu sendenden Datnsatz im ersten ContWalk-Index, also dann, wenn ArchiveQueryTask.Query.firstDataSent noch false ist, wird beim Durchlaufen der Datensaetze der jeweils gelesene Datensatz immer in dieser Variable vermerkt. Falls naemlich der erste gefundene Ergebnisdatensatz nicht ganau auf der Anfangsgrenze des Suchintervalls liegt, muss der letzte Datensatz davor als Anfangszustand gesendet werden. Dieser Vorgaenger befindet sich dann automatisch in dieser Variablen.


sentData

private ArchiveQueryTask.SimpleArchiveData sentData
Speichert die Zeitstempel und den Datenindex des zuletzt aus diesem Container versandten Datensatz, allerdings nicht den Datensatz selbst.


afterSentData

private ArchiveQueryTask.SimpleArchiveData afterSentData
Speichert die Zeitstempel und den Datenindex des Datensatzes, der nach dem zuletzt aus diesem Container versandten Datensatz folgt, allerdings nicht den Datensatz selbst.

Constructor Detail

ArchiveQueryTask.Container

private ArchiveQueryTask.Container(long contId,
                                   ArchiveDataKind dataKind)
Erzeugt eine neue Container-Info mit den angegebenen Parametern.

Parameters:
contId - Container-ID
dataKind - Datensatzart
Method Detail

toString

public String toString()
Overrides:
toString in class Object

getCurrTime

private long getCurrTime(TimingType tt)
Liefert den Datenindex / die Archivzeit / die Datenzeit des naechsten zu liefernden Datensatzes. Bei geloeschten Containern wird der entsprechende minimale Wert aus dem Header geliefert. Der Aufrufer dieser Methode muss vorher selbst sicherstellen, dass der Container-Data-Iterator auf einem Datensatz steht, dessen Wert returniert werden kann.

Returns:
Naechster Datenindex/Archivzeit/Datenzeit

getPrevTime

private long getPrevTime(TimingType tt)
Liefert den Datenindex / die Archivzeit / die Datenzeit des vorhergehenden Datensatzes. Bei geloeschten Containern wird der entsprechende minimale Wert aus dem Header geliefert. Der Aufrufer dieser Methode muss vorher selbst sicherstellen, dass prevData einen Datensatz enthaelt, dessen Wert returniert werden kann.

Returns:
Naechster Datenindex/Archivzeit/Datenzeit

setSendData

private void setSendData(ArchiveQueryTask.SimpleArchiveData sentData)
Setzt die Zeitstempel und den Datenindex des zuletzt versandten Datensatzes dieses Containers.

Parameters:
sentData - Zuletzt versandter Datensatz

setAfterSendData

private void setAfterSendData(ContainerDataIterator afterSentDataIt,
                              ArchiveDataKind dataKind)
Setzt die Zeitstempel und den Datenindex des Datensatzes, der im Container nach dem zuletzt versandten Datensatz folgt.

Parameters:
afterSentDataIt - Iterator auf dem Datensatz nach dem zuletzt versandten Datensatz
dataKind - Datensatzart des Datensatzes

cmpValMin

private long cmpValMin(ArchiveOrder order)

cmpValMax

private long cmpValMax(ArchiveOrder order)