de.inovat.kex.bast.exporter
Class AbstractDataChannelBASt

java.lang.Object
  extended by de.inovat.kex.bast.exporter.FileDataChannel
      extended by 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.

Version:
$Id: AbstractDataChannelBASt.java 452 2008-11-10 07:09:39Z Schawaller $
Author:
LOGOS GmbH Rostock (www.logos-ib.de), R. Trier

Field Summary
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ählstelle
protected 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
AbstractDataChannelBASt(SendeBAStStatusDaten bastStatusDaten)
          erzeugt einen DataChannel, der mit einer reset-Methode und eventuell setZaehlstelle() initialisiert werden muss.
 
Method Summary
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 eventuell setZaehlstelle() 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 - .