Class ResultDataProvider


  • public class ResultDataProvider
    extends java.lang.Object

    Klasse zum Lesen von Daten für eine Reihe von Zeitpunkten innerhalb eines Zeitraumes aus dem Archiv und die weitere Verarbeitung durch einen oder mehrere ResultDataChannel(s).

    In der Methode processData() wird für alle Zeitpunkte die aktuell gütigen Daten der Kombinationen SystemObject/DataDescription eines Zeitpunktes als ResultData[] an den oder die ResultDataChannel(s) übergeben.

    Die zu verarbeitenden Kombinationen aus SystemObject und DataDescription werden durch die Methode addDataKombination festgelegt.

    Die Reihenfolge im an den/die Channel übergebenen DataResult[] entspricht der Reihenfolge der Methodenaufrufe addDataCombination(SystemObject so, DataDescription dataDescription).
       Die Zeitpunkte wird bestimmt durch:
         1. Zeitraum (Period) - Periodenanfang, Periodenlänge, Einheit der Periodenlänge
         2. Schrittweite (Increment) - IncrementWert, IncrementEinheit
       

    Der erste Zeitpunkt ist gleich dem Periodenanfang, der letzte ist kleiner als Periodenanfang + Periodenlänge.

      Beispiel für die Berechnung der Zeitpunkte:
      
          ResultDataProvider provider = new ResultDataProvider();
          provider.setIncrement(1, Calendar.HOUR);
          Calendar cal = Calendar.getInstance();
          cal.set(2004, Calendar.JANUARY, 1, 0, 0, 0);
          cal.set(Calendar.MILLISECOND, 0);
          provider.setPeriod(cal, 5, Calendar.HOUR);
          provider.checkSequence(System.out);
      
      ergibt:
          01.01.2004 00:00:00.000
          01.01.2004 01:00:00.000
          01.01.2004 02:00:00.000
          01.01.2004 03:00:00.000
          01.01.2004 04:00:00.000
      

    Die Daten werden nicht unbedingt für den gesamten zu bearbeitenen Zeitraum aus der Datenbank geholt, sondern abschnittsweise. Die Länge des Zeitbereiches, für den die Daten mit einmal aus dem Archiv gelesen wird, ergibt sich aus (ReadIntervallLength * IncrementUnit).

    • Method Summary

      Modifier and Type Method Description
      void addChannel​(ResultDataChannel dataChannel)
      meldet einen Channel an.
      void addDataCombination​(de.bsvrz.dav.daf.main.config.SystemObject so, de.bsvrz.dav.daf.main.DataDescription dataDescription)
      fügt eine Kombination aus SystemObject und DataDescription zur Liste der Kombinationen hinzu, dessen Daten verarbeitet werden soll.
      static int calculateTotalPeriodInMinutes​(java.util.Calendar calPeriodStart, int periodLengthUnit, int periodLength)
      berechnet den gesamten zu bearbeitenden Zeitraum in Minuten, um ein Mass für den Fortschritt zu haben.
      static int calculateTotalPeriodInMinutes​(java.util.Calendar calPeriodStart, java.util.Calendar calPeriodEnd)
      berechnet den gesamten zu bearbeitenden Zeitraum in Minuten, um ein Mass für den Fortschritt zu haben.
      void checkSequence​(java.io.PrintStream out)
      ermöglicht das Prüfen der Zeitpunkt, die sich aus der Periode und Schrittweise ergeben.
      void clearChannels()
      löscht alle Channel.
      void clearDataCombinations()
      löscht alle DatenKombinationen.
      int getProgressedPeriodInMinutes()
      gibt den bereits bearbeiteten Zeitraum in Minuten zurück, um ein Mass für den Fortschritt zu haben.
      static java.lang.String getTimeUnit​(int unit)  
      void interrupt()  
      void processData()
      Für alle Zeitpunkte werden die Daten der Kombinationen aus SystemObject und DataDescription aus dem Archiv gelesen und an die die angemeldeten Channels übergeben.
      void processDataOld()
      Für alle Zeitpunkte werden die Daten der Kombinationen aus SystemObject und DataDescription aus dem Archiv gelesen und an die die angemeldeten Channels übergeben.
      void setAchslastExportEF1​(boolean achslastExportEF1)  
      void setIncrement​(int incrementValue, int incrementUnit)
      setzt die Schrittweite zur Berechnung der Zeitpunkte.
      void setPeriod​(java.util.Calendar periodStart, int periodLength, int unit)
      setzt den Zeitraum für den die Zeitpunkte erzeugt werden.
      void setReadIntervallLength​(int readIntervallLength)
      setzt die ReadIntervallLength.
      java.lang.String toString()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • ResultDataProvider

        public ResultDataProvider()
    • Method Detail

      • addDataCombination

        public void addDataCombination​(de.bsvrz.dav.daf.main.config.SystemObject so,
                                       de.bsvrz.dav.daf.main.DataDescription dataDescription)
        fügt eine Kombination aus SystemObject und DataDescription zur Liste der Kombinationen hinzu, dessen Daten verarbeitet werden soll. Die Daten der Kombination werden entsprechend der Reihenfolge in der Liste zum ResultData[] zusammengefasst und an die Channels übergeben.
        Parameters:
        so - SystemObject
        dataDescription - DataDescription
      • calculateTotalPeriodInMinutes

        public static int calculateTotalPeriodInMinutes​(java.util.Calendar calPeriodStart,
                                                        java.util.Calendar calPeriodEnd)
        berechnet den gesamten zu bearbeitenden Zeitraum in Minuten, um ein Mass für den Fortschritt zu haben.
        Parameters:
        calPeriodStart - ToDo.
        calPeriodEnd - ToDo.
        Returns:
        der insgesamt zu bearbeitende Zeitraum.
      • calculateTotalPeriodInMinutes

        public static int calculateTotalPeriodInMinutes​(java.util.Calendar calPeriodStart,
                                                        int periodLengthUnit,
                                                        int periodLength)
        berechnet den gesamten zu bearbeitenden Zeitraum in Minuten, um ein Mass für den Fortschritt zu haben.
        Parameters:
        calPeriodStart - ToDo.
        periodLengthUnit - ToDo.
        periodLength - ToDo.
        Returns:
        der insgesamt zu bearbeitende Zeitraum.
      • checkSequence

        public void checkSequence​(java.io.PrintStream out)
        ermöglicht das Prüfen der Zeitpunkt, die sich aus der Periode und Schrittweise ergeben.
        Parameters:
        out - PrintStream
      • clearChannels

        public void clearChannels()
        löscht alle Channel.
      • clearDataCombinations

        public void clearDataCombinations()
        löscht alle DatenKombinationen.
      • getProgressedPeriodInMinutes

        public int getProgressedPeriodInMinutes()
        gibt den bereits bearbeiteten Zeitraum in Minuten zurück, um ein Mass für den Fortschritt zu haben.
        Returns:
        der insgesamt zu bearbeitende Zeitraum.
      • getTimeUnit

        public static final java.lang.String getTimeUnit​(int unit)
      • interrupt

        public void interrupt()
      • setAchslastExportEF1

        public void setAchslastExportEF1​(boolean achslastExportEF1)
      • setIncrement

        public void setIncrement​(int incrementValue,
                                 int incrementUnit)
        setzt die Schrittweite zur Berechnung der Zeitpunkte. Der erste Zeitpunkt ist gleich dem Anfangszeitpunktes des Zeitraumes.
        Parameters:
        incrementValue - Wert der Schrittweite
        incrementUnit - Einhet der Schrittweite
      • setPeriod

        public void setPeriod​(java.util.Calendar periodStart,
                              int periodLength,
                              int unit)
        setzt den Zeitraum für den die Zeitpunkte erzeugt werden. Der erste Zeitpunkt ist gleich dem Anfangszeitpunkt.
        Parameters:
        periodStart - Anfang der Zeitraumes
        periodLength - Wert der Länge der Zeitraumes.
        unit - Einheit der Zeitraumlänge
      • setReadIntervallLength

        public void setReadIntervallLength​(int readIntervallLength)

        setzt die ReadIntervallLength. (ReadIntervallLength * IncrementUnit) ergibt die Zeitspanne, für die Daten vom Archiv geholt werden.

        Parameters:
        readIntervallLength - int
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object