Class AbstractDataChannelBASt
- java.lang.Object
-
- de.inovat.kex.bast.exporter.FileDataChannel
-
- de.inovat.kex.bast.exporter.AbstractDataChannelBASt
-
- All Implemented Interfaces:
ResultDataChannel
- Direct Known Subclasses:
DataChannelAxlBAStEF1
,DataChannelBAStV2_0
,DataChannelBAStVV2007
public abstract class AbstractDataChannelBASt extends FileDataChannel
stellt die Funktionalität bereit die von allen Channels zur Ausgabe von BASt-Formaten benötigt werden.Vor der Bearbeitung der eigentlichen Daten durch die Aufrufe der Methode { @link ResultDataChannel#processData()}, muss der Channel vollständig initialisiert sein.
-
-
Field Summary
Fields Modifier and Type Field Description protected int
_CountOfFS
Anzahl der Fahrstreifen der aktuellen Zählstelle, wird in setZaehlstelle berechnet.protected int
_LastHour
die letzte bearbeitete Stunde (um Sommer-/Winterzeitumstellung zu behandeln).protected LangZeitZaehlStelle
_ZaehlStelle
aktuelle Langzeitzählstelleprotected static char[]
MONATE
Array für MonatsCodes 1=Jan .. c=Dez (laut Tabelle der BASt)static java.text.DecimalFormat
TWO_DIGIT_FORMAT
DecimalFormat initialisiert mit "00"
-
Constructor Summary
Constructors Constructor Description AbstractDataChannelBASt(SendeBAStStatusDaten bastStatusDaten)
erzeugt einen DataChannel, der mit einer reset-Methode und eventuellsetZaehlstelle()
initialisiert werden muss.
-
Method Summary
Modifier and Type Method Description protected abstract java.lang.String
constructFilename(LangZeitZaehlStelle zaehlStelle, int year, int month)
gibt den Dateinamen zurück, der sich aus den Daten der Zählstelle, dem Jahr, dem Monat ergibt.protected abstract java.lang.String
constructFilename(LangZeitZaehlStelle zaehlStelle, int year, int month, int day)
gibt den Dateinamen zurück, der sich aus den Daten der Zählstelle, dem Jahr, dem Monat und dem Tag ergibt.static boolean
hasData(de.bsvrz.dav.daf.main.Dataset[] rsArray)
Hilfsmethode, die prüft, ob das ResulData[] irgendwelche Data hat.void
reset(LangZeitZaehlStelle zaehlStelle, int year, int month)
ist der Channel geöffnet, werden gepufferte Daten in die Datei geschrieben und der Channel zur Ausgabe in die Datei neu geöffnet, dessen Namen durch die Implementation der Methode { @link #constructFilename(LangZeitZaehlStelle zaehlStelle, String path, int year, int monthOrQuartal, boolean isQuartal) constructFilename} aus den Daten der Zählstelle, Jahr, Monat bzw Quartal bestimmt wird.void
reset(LangZeitZaehlStelle zaehlStelle, int year, int month, int day)
ist der Channel geöffnet, werden gepufferte Daten in die Datei geschrieben und der Channel zur Ausgabe in die Datei neu geöffnet, dessen Namen durch die Implementaiton der Methode { @link #constructFilename(LangZeitZaehlStelle zaehlStelle, String path, int year, int startDayOfYear, int endDayOfYear) constructFilename} aus den Daten der Zählstelle, Jahr, Monat bzw Quartal bestimmt wird.abstract void
setZaehlstelle(LangZeitZaehlStelle zaehlstelle)
setzt die Zählstelle.-
Methods inherited from class de.inovat.kex.bast.exporter.FileDataChannel
close, deleteLastLine, flush, reset, spool, writeHeader, writeHeaderFTP
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface de.inovat.kex.bast.common.ResultDataChannel
processRecord
-
-
-
-
Field Detail
-
MONATE
protected static final char[] MONATE
Array für MonatsCodes 1=Jan .. c=Dez (laut Tabelle der BASt)
-
TWO_DIGIT_FORMAT
public static java.text.DecimalFormat TWO_DIGIT_FORMAT
DecimalFormat initialisiert mit "00"
-
_LastHour
protected int _LastHour
die letzte bearbeitete Stunde (um Sommer-/Winterzeitumstellung zu behandeln).
-
_CountOfFS
protected int _CountOfFS
Anzahl der Fahrstreifen der aktuellen Zählstelle, wird in setZaehlstelle berechnet.
-
_ZaehlStelle
protected LangZeitZaehlStelle _ZaehlStelle
aktuelle Langzeitzählstelle
-
-
Constructor Detail
-
AbstractDataChannelBASt
public AbstractDataChannelBASt(SendeBAStStatusDaten bastStatusDaten)
erzeugt einen DataChannel, der mit einer reset-Methode und eventuellsetZaehlstelle()
initialisiert werden muss.- Parameters:
bastStatusDaten
- Statusinformationen.
-
-
Method Detail
-
constructFilename
protected abstract java.lang.String constructFilename(LangZeitZaehlStelle zaehlStelle, int year, int month)
gibt den Dateinamen zurück, der sich aus den Daten der Zählstelle, dem Jahr, dem Monat ergibt.- Parameters:
zaehlStelle
- Zählstelle.year
- Jahr.month
- Monat.- Returns:
- vollständig klassifizierter Dateiname
-
constructFilename
protected abstract java.lang.String constructFilename(LangZeitZaehlStelle zaehlStelle, int year, int month, int day)
gibt den Dateinamen zurück, der sich aus den Daten der Zählstelle, dem Jahr, dem Monat und dem Tag ergibt.- Parameters:
zaehlStelle
- Zählstelle.year
- Jahr.month
- Monat.day
- Tag.- Returns:
- Filename als String.
-
hasData
public static boolean hasData(de.bsvrz.dav.daf.main.Dataset[] rsArray)
Hilfsmethode, die prüft, ob das ResulData[] irgendwelche Data hat.
Funktion wird verwendet, um zu prüfen, ob ein Totalausfall einer Zählstelle vorliegt.
- Parameters:
rsArray
- zu prüfendes ResultData[]- Returns:
- true, wenn das Array hasData, sonst false.
-
reset
public void reset(LangZeitZaehlStelle zaehlStelle, int year, int month) throws ChannelException
ist der Channel geöffnet, werden gepufferte Daten in die Datei geschrieben und der Channel zur Ausgabe in die Datei neu geöffnet, dessen Namen durch die Implementation der Methode { @link #constructFilename(LangZeitZaehlStelle zaehlStelle, String path, int year, int monthOrQuartal, boolean isQuartal) constructFilename} aus den Daten der Zählstelle, Jahr, Monat bzw Quartal bestimmt wird.
- Parameters:
zaehlStelle
- LangZeitZaehlStelle dessen Daten ausgegeben werden sollen.year
- das Jahr für das die Datei erzeugt werden soll.month
- der Monat für das die Datei erzeugt werden soll (Januar=0).- Throws:
ChannelException
- .
-
reset
public void reset(LangZeitZaehlStelle zaehlStelle, int year, int month, int day) throws ChannelException
ist der Channel geöffnet, werden gepufferte Daten in die Datei geschrieben und der Channel zur Ausgabe in die Datei neu geöffnet, dessen Namen durch die Implementaiton der Methode { @link #constructFilename(LangZeitZaehlStelle zaehlStelle, String path, int year, int startDayOfYear, int endDayOfYear) constructFilename} aus den Daten der Zählstelle, Jahr, Monat bzw Quartal bestimmt wird.
- Parameters:
zaehlStelle
- LangZeitZaehlStelle dessen Daten ausgegeben werden sollen.year
- das Jahr für das die Datei erzeugt werden soll.month
- der Monat für das die Datei erzeugt werden soll.day
- der erste Tag des Monats, für den die Daten ausgegeben werden.- Throws:
ChannelException
- .
-
setZaehlstelle
public abstract void setZaehlstelle(LangZeitZaehlStelle zaehlstelle) throws ChannelException
setzt die Zählstelle.
- Parameters:
zaehlstelle
- LangZeitZaehlStelle- Throws:
ChannelException
- .
-
-