Class 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ä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"
    • 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 java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • 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.
    • 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 - .