de.bsvrz.pua.prot.processing
Class ValueProvider

java.lang.Object
  extended by de.bsvrz.pua.prot.processing.ValueProvider
Direct Known Subclasses:
RealArchiveElement, RealOnlineElement

public abstract class ValueProvider
extends java.lang.Object

Abstrakte Basisklassen für Klassen, die aktiv Daten sammeln.

Version:
$Revision: 1.2 $ / $Date: 2008/01/22 16:55:49 $ / ($Author: yvonnes $)
Author:
beck et al. projects GmbH, Martin Hilgers

Field Summary
protected  DataInformation dataInformation
          Markierungsinformation.
protected  ExtResultData value
          Zuletzt erhaltener Datensatz
 
Constructor Summary
ValueProvider(boolean deltaProtocol, boolean isShown, boolean padData)
           
 
Method Summary
abstract  void abort()
          Bricht das Sammeln der Daten ab.
protected abstract  boolean executeTake(long timeout)
          Holt den nächsten Datensatz und legt ihn in value ab.
 DataInformation getDataInformation()
          Liefert die Markierungsinformation zurück
 long getMostRecentDataIndex()
          Liefert den Datenindex des zuletzt erhaltenen Datensatzes ab.
 long getMostRecentTimeStamp()
          Liefert den Datenzeitstempel des zuletzt erhaltenen Datensatzes ab.
 long getUsedDataIndex()
          Liefert den Datenindex des momentan verwendeten Datensatzes ab, der beim Aufruf von getValue() zurückgegeben wird.
 long getUsedTimeStamp()
          Liefert den Datenindex des momentan verwendeten Datensatzes ab, der beim Aufruf von getValue() zurückgegeben wird.
 BaseDataSet getValue()
          Liefert den Wert des Elements.
abstract  boolean hasNext()
          Zeigt an ob noch weitere Daten geliefert werden.
 boolean isShown()
          Zeigt ob der Wertebeschaffer zu einem Element gehört, das im Spalten-Bereich verwendet wird.
 boolean isWinner()
           
 void lost()
          Dieses Objekt hat beim Verschränken nicht den kleinsten Zeitstempel.
protected  void reset()
          Setzt das Objekt auf den Anfangszustand zurück.
 boolean take(long timeout)
          Holt den nächsten Datensatz.
abstract  boolean updateDataInformation()
          Erzeugt die Markierungsinformation.
 void won()
          Dieses Objekt hat beim Verschränken den kleinsten Zeitstempel.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

dataInformation

protected DataInformation dataInformation
Markierungsinformation.


value

protected ExtResultData value
Zuletzt erhaltener Datensatz

Constructor Detail

ValueProvider

public ValueProvider(boolean deltaProtocol,
                     boolean isShown,
                     boolean padData)
Parameters:
deltaProtocol - Soll ein Änderungsprotokoll erzeugt werden?
isShown - Wird das Element im Spalten-Bereich verwendet? trueElement wird im Spalten Bereich verwendet.
padData - true falls Daten aufgefüllt werden dürfen.
Method Detail

updateDataInformation

public abstract boolean updateDataInformation()
Erzeugt die Markierungsinformation.

Returns:
true: Es gibt einen Sprung im Datensatzindex. (Ist dies der Fall, muss muss ein leerer Datensatz eingefügt werden! Siehe TAnf V.1.1 S. 33, "Markierung Pot. Datenlücke"). Falls noch keine Daten vorliegen, wird false zurückgegeben.

hasNext

public abstract boolean hasNext()
Zeigt an ob noch weitere Daten geliefert werden. Der Wert wird nur durch einen Aufruf von take(long) aktualisiert. false wird erst zurückgeliefert, wenn der Versuch weitere Daten mittels take(long) abzurufen fehlschlägt.

Returns:
true falls noch weitere Daten geliefert werden.false sonst.

executeTake

protected abstract boolean executeTake(long timeout)
                                throws FailureException,
                                       java.lang.InterruptedException
Holt den nächsten Datensatz und legt ihn in value ab.

Parameters:
timeout - Maximale Wartezeit. Wird die Wartezeit überschritten, so wird due Methode abgebrochen und false zurückgegeben. Ist dieser Parameter 0 so wird solange gewartet, bis Daten eintreffen.
Returns:
True falls Daten empfangen wurde, false falls es innerhalb der vorgegebenen Wartezeit keine Daten gibt.
Throws:
FailureException - Fehler beim Datenempfang.
java.lang.InterruptedException - Warten auf Antwortdatensatz wurde unterbrochen.

take

public boolean take(long timeout)
             throws FailureException,
                    java.lang.InterruptedException
Holt den nächsten Datensatz. Wartet, bis Daten empfangen werden.

Parameters:
timeout - Maximale Wartezeit. Wird die Wartezeit überschritten, so wird due Methode abgebrochen und false zurückgegeben. Ist dieser Parameter 0 so wird solange gewartet, bis Daten eintreffen.
Returns:
True falls Daten empfangen wurde, false falls es innerhalb der vorgegebenen Wartezeit keine Daten gibt.
Throws:
FailureException - Fehler beim Datenempfang.
java.lang.InterruptedException - Warten auf Antwortdatensatz wurde unterbrochen.

getValue

public BaseDataSet getValue()
Liefert den Wert des Elements. Je nach Ergebnis von isWinner() wird der aktuellste Wert oder ein aufgefüllter Wert zurückgegeben.

Returns:
Wert des Elements.
See Also:
BaseDataSet.isPaddedData()

getDataInformation

public DataInformation getDataInformation()
Liefert die Markierungsinformation zurück

Returns:
Markierungsinformation

abort

public abstract void abort()
Bricht das Sammeln der Daten ab.


lost

public void lost()
Dieses Objekt hat beim Verschränken nicht den kleinsten Zeitstempel. Der nächste Aufruf von getValue() muss den vorletzten, zum Auffüllen zu verwendenden Datensatz zurückgeben, und nicht den aktuellen.


won

public void won()
Dieses Objekt hat beim Verschränken den kleinsten Zeitstempel. Falls der Wert des Elements zum Auffüllen tauglich ist, wird dieser gespeichert. Sonst wird er verworfen, d.h. es existiert kein auffüllbarer Datensatz für dieses Element mehr.

See Also:
DataInformation.dataForPadding()

isWinner

public boolean isWinner()
Returns:
true falls das Element einen minimalen Zeitstempel besitzt. false sonst.

getMostRecentTimeStamp

public long getMostRecentTimeStamp()
Liefert den Datenzeitstempel des zuletzt erhaltenen Datensatzes ab.

Returns:
Zeitstempel. Wurde kein Datensatz erhalten, so wird Long.MAX_VALUE zurückgegeben

getMostRecentDataIndex

public long getMostRecentDataIndex()
Liefert den Datenindex des zuletzt erhaltenen Datensatzes ab.

Returns:
Zeitstempel. Wurde kein Datensatz erhalten, so wird der Wert -1 zurückgegeben.

getUsedTimeStamp

public long getUsedTimeStamp()
Liefert den Datenindex des momentan verwendeten Datensatzes ab, der beim Aufruf von getValue() zurückgegeben wird.

Returns:
Zeitstempel. Wurde kein Datensatz erhalten, so wird Long.MAX_VALUE zurückgegeben

getUsedDataIndex

public long getUsedDataIndex()
Liefert den Datenindex des momentan verwendeten Datensatzes ab, der beim Aufruf von getValue() zurückgegeben wird.

Returns:
Zeitstempel. Wurde kein Datensatz erhalten, so wird der Wert -1 zurückgegeben.

isShown

public boolean isShown()
Zeigt ob der Wertebeschaffer zu einem Element gehört, das im Spalten-Bereich verwendet wird.

Returns:
trueElement wird im Spalten Bereich verwendet. false sonst.

reset

protected void reset()
Setzt das Objekt auf den Anfangszustand zurück. Methode sollte zu Beginn eines neuen Intervalls aufgerufen werden, damit die Markierungsinformation und die Daten zum Auffüllen zurückgesetzt werden.



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