Class ResultDataProvider
- java.lang.Object
-
- de.inovat.kex.bast.common.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 dieResultDataChannel(s)
übergeben.Die zu verarbeitenden Kombinationen aus SystemObject und DataDescription werden durch die Methode
Die Reihenfolge im an den/die Channel übergebenen DataResult[] entspricht der Reihenfolge der MethodenaufrufeaddDataKombination
festgelegt.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.000Die 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).
-
-
Constructor Summary
Constructors Constructor Description ResultDataProvider()
-
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()
-
-
-
Method Detail
-
addChannel
public void addChannel(ResultDataChannel dataChannel) throws ChannelException
meldet einen Channel an.- Parameters:
dataChannel
- ResultDataChannel- Throws:
ChannelException
- Exception.
-
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
- SystemObjectdataDescription
- 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()
-
processData
public void processData() throws ChannelException, DataProviderException
Für alle Zeitpunkte werden die Daten der Kombinationen aus SystemObject und DataDescription aus dem Archiv gelesen und an die die angemeldeten Channels übergeben.- Throws:
DataProviderException
- Exception.ChannelException
- Exception.
-
processDataOld
public void processDataOld() throws ChannelException, DataProviderException
Für alle Zeitpunkte werden die Daten der Kombinationen aus SystemObject und DataDescription aus dem Archiv gelesen und an die die angemeldeten Channels übergeben.- Throws:
DataProviderException
- Exception.ChannelException
- Exception.
-
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 SchrittweiteincrementUnit
- 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 ZeitraumesperiodLength
- 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 classjava.lang.Object
-
-