Class ValueProvider

  • Direct Known Subclasses:
    RealArchiveElement, RealOnlineElement

    public abstract class ValueProvider
    extends java.lang.Object
    Abstrakte Basisklassen für Klassen, die aktiv Daten sammeln.
    • Constructor Summary

      Constructors 
      Constructor Description
      ValueProvider​(de.bsvrz.sys.funclib.losb.datk.ProtocolType protocolType, boolean isShown, boolean padData)  
    • Method Summary

      Modifier and Type Method Description
      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​(de.bsvrz.sys.funclib.losb.datk.ProtocolType protocolType,
                             boolean isShown,
                             boolean padData)
        Parameters:
        protocolType - Protokollart
        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 de.bsvrz.sys.funclib.losb.exceptions.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:
        de.bsvrz.sys.funclib.losb.exceptions.FailureException - Fehler beim Datenempfang.
        java.lang.InterruptedException - Warten auf Antwortdatensatz wurde unterbrochen.
      • take

        public boolean take​(long timeout)
                     throws de.bsvrz.sys.funclib.losb.exceptions.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:
        de.bsvrz.sys.funclib.losb.exceptions.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.