de.bsvrz.ars.ars.persistence
Class ContainerDataIterator

java.lang.Object
  extended by de.bsvrz.ars.ars.persistence.ContainerDataIterator

public class ContainerDataIterator
extends java.lang.Object

Iterator fuer Datensaetze, die ein Datencontainer auf Anfrage geliefert hat. Mit readNextDataHdr() kann geprueft werden, ob ein weiterer Datensatz verfuegbar ist. Falls ja, koennen seine Header-Daten mit getArcTime(), etc. eingesehen werden und der Datensatz selbst mit #deserializeData() abgeholt oder mit skipData() uebersprungen werden.

Beispiel:

 ContainerDataIterator it = myPersistenceManager.getArchiveData(...);
 while(it.readNextDataHdr()) {
     if (it.getDataIndex() > myBorder) {
         Data data = it.deserializeData();
     } else {
         it.skipData();
     }
 }
 

Version:
$Revision: 1.2 $ / $Date: 2008/01/22 16:55:57 $ / ($Author: yvonnes $)
Author:
beck et al. projects GmbH, Thomas Schaefer

Method Summary
 void close()
          Schliesst den Iterator und verwirft die zu iterierende Ergebnis-Menge.
 ArchiveDataKind getArchiveDataKind()
           
 long getArcTime()
          Liefert den Archivzeitstempel des Datensatzes dessen Header-Daten zuvor mittels readNextDataHdr() eingelesen worden sind.
 int getCounter()
          Liefert die Position des Datensatzes dessen Header-Daten zuvor mittels readNextDataHdr() eingelesen worden sind.
 long getDataIndex()
          Liefert den Datenindex des Datensatzes dessen Header-Daten zuvor mittels readNextDataHdr() eingelesen worden sind.
 long getDataIndexLfdNr()
           
 int getDataSize()
           
 DataState getDataState()
          Liefert die Markierung fuer diesen Datensatz.
 long getDataTime()
          Liefert den Datenzeitstempel des Datensatzes dessen Header-Daten zuvor mittels readNextDataHdr() eingelesen worden sind.
 int getDataUncSize()
           
 java.lang.String getHeader()
           
 byte[] getRawData(java.util.zip.Inflater decompresser)
          Liefert den serialisierten Datensatz dessen Header-Daten zuvor mittels readNextDataHdr() eingelesen worden sind.
 long getTimeIndex(TimingType tt)
           
 boolean isCompressed()
           
 boolean isData()
           
 boolean isHdrMaxVal()
           
 boolean isHdrMinVal()
           
 boolean isNoData()
          Nachdem readNextDataHdr() aufgerufen wurde, gibt diese Methode an, ob der eingelesene Datensatz eine "keine Daten"-Markierung besitzt.
 boolean isNoRights()
          Nachdem readNextDataHdr() aufgerufen wurde, gibt diese Methode an, ob der eingelesene Datensatz eine "keine Rechte"-Markierung besitzt.
 boolean isNoSource()
          Nachdem readNextDataHdr() aufgerufen wurde, gibt diese Methode an, ob der eingelesene Datensatz eine "keine Quelle"-Markierung besitzt.
 boolean isPotDataGap()
          Nachdem readNextDataHdr() aufgerufen wurde, gibt diese Methode an, ob der eingelesene Datensatz als "potentielle Datenluecke" gekennzeichnet wurde.
 boolean isStillCompressed()
           
 boolean readNextDataHdr()
          Prueft, ob ein weiterer Datensatz verfuegbar ist.
 void skipData()
          Ueberspringt den Datensatz dessen Header-Daten zuvor mittels readNextDataHdr() eingelesen worden sind.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

readNextDataHdr

public boolean readNextDataHdr()
                        throws PersistenceException
Prueft, ob ein weiterer Datensatz verfuegbar ist. Wenn dies der Fall ist, wird true zurueck geliefert und die Header-Daten des Datensatzes koennen mit getArcTime(), getDataTime() und getDataIndex() eingesehen werden. Der Datensatz selbst ist ueber die Methode #deserializeData() abrufbar, oder kann mit der Methode skipData() uebersprungen werden. Wenn kein Datensatz verfuegbar ist, wird false zurueck geliefert.

Returns:
Kennzeichen, ob Datensatz verfuegbar ist
Throws:
PersistenceException, - falls ein Fehler in der Persistenz aufgetreten ist
PersistenceException

getHeader

public java.lang.String getHeader()

close

public void close()
           throws PersistenceException
Schliesst den Iterator und verwirft die zu iterierende Ergebnis-Menge.

Throws:
PersistenceException, - falls ein Fehler in der Persistenz aufgetreten ist
PersistenceException

getRawData

public byte[] getRawData(java.util.zip.Inflater decompresser)
                  throws PersistenceException
Liefert den serialisierten Datensatz dessen Header-Daten zuvor mittels readNextDataHdr() eingelesen worden sind. Der Datensatz kann komprimiert sein.

Returns:
Datensatz
Throws:
PersistenceException, - falls ein Fehler in der Persistenz aufgetreten ist
PersistenceException

skipData

public void skipData()
              throws PersistenceException
Ueberspringt den Datensatz dessen Header-Daten zuvor mittels readNextDataHdr() eingelesen worden sind.

Throws:
PersistenceException, - falls ein Fehler in der Persistenz aufgetreten ist
PersistenceException

isCompressed

public boolean isCompressed()
Returns:
Ob der Datensatz im Header als komprimiert gekennzeichnet wurde

isStillCompressed

public boolean isStillCompressed()
Returns:
Ob der Datensatz nach dem Lesen mit #getRawData() immer noch komprimiert ist. Das ArS kann so konfiguriert werden, dass es beim Lesen die Datensaetze dekomprimiert und sie unkomprimiert verschickt. Ist deutlich schneller als das Dekomprimieren durch das Stream-Interface.

getArcTime

public long getArcTime()
Liefert den Archivzeitstempel des Datensatzes dessen Header-Daten zuvor mittels readNextDataHdr() eingelesen worden sind.

Returns:
Archivzeitstempel in Millisekunden seit 1970.

getDataIndex

public long getDataIndex()
Liefert den Datenindex des Datensatzes dessen Header-Daten zuvor mittels readNextDataHdr() eingelesen worden sind.

Returns:
Datenindex

getTimeIndex

public long getTimeIndex(TimingType tt)
Parameters:
tt - Datenzeit, Archivzeit, Datenindex
Returns:
Datenzeit, Archivzeit, Datenindex (je nach Parameter)

getDataIndexLfdNr

public long getDataIndexLfdNr()
Returns:
Laufende Nummer des Datenindex (ohne Anmeldezeit Quelle und Modifier-Bits)

getDataTime

public long getDataTime()
Liefert den Datenzeitstempel des Datensatzes dessen Header-Daten zuvor mittels readNextDataHdr() eingelesen worden sind.

Returns:
Datenzeitstempel in Millisekunden seit 1970.

getDataState

public DataState getDataState()
Liefert die Markierung fuer diesen Datensatz.

Returns:

getCounter

public int getCounter()
Liefert die Position des Datensatzes dessen Header-Daten zuvor mittels readNextDataHdr() eingelesen worden sind.

Returns:
Position (0 = erster)

isHdrMinVal

public boolean isHdrMinVal()

isHdrMaxVal

public boolean isHdrMaxVal()

isData

public boolean isData()
Returns:
Wahr, falls der Datensatz keine spezielle Markierung besitzt

isNoData

public boolean isNoData()
Nachdem readNextDataHdr() aufgerufen wurde, gibt diese Methode an, ob der eingelesene Datensatz eine "keine Daten"-Markierung besitzt.

Returns:
Wahr, falls der Datensatz eine "keine Daten"-Markierung besitzt

isNoRights

public boolean isNoRights()
Nachdem readNextDataHdr() aufgerufen wurde, gibt diese Methode an, ob der eingelesene Datensatz eine "keine Rechte"-Markierung besitzt.

Returns:
Wahr, falls der Datensatz eine "keine Rechte"-Markierung besitzt

isNoSource

public boolean isNoSource()
Nachdem readNextDataHdr() aufgerufen wurde, gibt diese Methode an, ob der eingelesene Datensatz eine "keine Quelle"-Markierung besitzt.

Returns:
Wahr, falls der Datensatz eine "keine Quelle"-Markierung besitzt

isPotDataGap

public boolean isPotDataGap()
Nachdem readNextDataHdr() aufgerufen wurde, gibt diese Methode an, ob der eingelesene Datensatz als "potentielle Datenluecke" gekennzeichnet wurde.

Returns:
Wahr, falls der Datensatz als "potentielle Datenluecke" gekennzeichnet wurde

getArchiveDataKind

public ArchiveDataKind getArchiveDataKind()

getDataSize

public int getDataSize()

getDataUncSize

public int getDataUncSize()


Copyright © 2005-2008 beck et al. projects GmbH All Rights Reserved.