de.inovat.kex.bast.importer
Class ImportLineSplitterBASt

java.lang.Object
  extended by de.inovat.kex.bast.importer.ImportLineSplitterBASt

public class ImportLineSplitterBASt
extends java.lang.Object

Hilfsklasse um aus den Zeilen der BASt-Band VerkehrsMenge2004 Importdatei die Werte auszulesen.

Version:
$Revision: 318 $ / $Date: 2010-08-17 07:13:09 +0200 (Di, 17 Aug 2010) $ / ($Author: DR $)
Author:
inovat, innovative systeme - verkehr - tunnel - technik, Dagmar Rostek (DR)

Field Summary
private  java.lang.String[] _arVerkehrsDatenLzz5Plus1V2004
          Array mit allen relevanten Werten für einen Datensatz BASt-Format V2004, Klassifizierung 5 Plus 1.
private  java.lang.String[] _arVerkehrsDatenLzz8Plus1V2004
          Array mit allen relevanten Werten für einen Datensatz BASt-Format V2004, Klassifizierung 8 Plus 1.
private  BastBestandsbandformat _bastDatensatz
          Instanz der Klasse BastBestandsbandformat.
private  SendeBAStStatusDaten _bastStatusDaten
          Statusinformationen die an den Datenverteiler gesendet werden.
private  int[] _bPAValues
           
private  int[] _lVoValues
          Geschwindigkeitsklassen.
private  int[] _sGVValues
           
private  java.lang.String[] ar_VerkehrsDatenLzzKlasseBPAV2007
           
private  java.lang.String[] ar_VerkehrsDatenLzzKlasseLVoV2007
          Array mit allen LVo Werten für einen Datensatz BASt-Format 2007.
private  java.lang.String[] ar_VerkehrsDatenLzzKlasseSGVV2007
           
private static java.lang.String BPA
          Konstante repräsentiert die Fahrzeuggruppe Busse und Pkw mit Anhänger.
private static de.bsvrz.sys.funclib.debug.Debug debug
          DebugLogger fuer Debug-Ausgaben.
private static java.lang.String LVO
          Konstante reprästentiert die Fahrzeuggruppe Leichtverkehr ohne Anhänger.
private static java.lang.String SGV
          Konstante repräsentiert die Fahrzeuggruppe schwerer Güterverkehr.
 
Constructor Summary
ImportLineSplitterBASt(BastBestandsbandformat bastDatensatz, SendeBAStStatusDaten bastStatusDaten)
           
 
Method Summary
private  long bestimmeStundensatzZeit(java.util.Date date)
          Die Methode bestimmt die Zeit des Stundendatensatzes.
private  void importiereStundendatensatz(Fahrstreifen fahrstreifen, ParseStundensatzV2007 teilString, long longDatumZeit, java.lang.String line)
          Stundendatensatzwerte (vLVo, vSGV, vBPA, sLVo, sSGV, sBPA, v85LVo, v85SGV, v85BPA, v15LVo, v15SGV, v15BPA, qLVoGeschwKlasse, qSGVGeschwKlasse, qBPAGeschwKlasse) werden eingelesen.
 boolean parseDritteHeaderLine2004(java.lang.String line, java.lang.String dateiName)
          Parsing der dritten Header Zeile.
 boolean parseDritteHeaderLine2007(java.lang.String line, java.lang.String dateiName)
          Parsing der dritten Header Zeile.
 LangZeitZaehlStelle parseErsteHeaderLineV2004(java.lang.String line, java.lang.String dateiName)
          Parsing der ersten Header Zeile.
 LangZeitZaehlStelle parseErsteHeaderLineV2007(java.lang.String line, java.lang.String dateiName)
          Parsing der ersten Header Zeile.
 BastBestandsbandformat parseStundenDatensaetze2004(java.lang.String line)
          Die Methode parseStundenDatensaetze2004 ruft je nach Konfiguration die richtige Parsemethode auf, die sich bzgl.
private  BastBestandsbandformat parseStundenDatensaetzeKlassifizierung5Plus18Plus1V2004(java.lang.String line, java.lang.String[] arVerkehrsDaten)
          Die Methode liest die Stundendatensätze entsprechend es Formates 5Plus1 oder 8Plus1 ein.
 BastBestandsbandformat parseStundenDatensaetzeKlassifizierungV2007(java.lang.String line)
          Die Methode liest die Stundendatensatzdaten ein.
 boolean parseZweiteHeaderLine2004(java.lang.String line, java.lang.String dateiName)
          Parsing der zweiten Header Zeile.
 boolean parseZweiteHeaderLine2007(java.lang.String line, java.lang.String dateiName)
          Parsing der zweiten Header Zeile.
private  void sendeStatusMeldungUndDebugInfo(java.lang.String statusMeldungUndDebugInfo)
          Die Methode sendet die Statusmeldung und via Debug eine Information.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

BPA

private static final java.lang.String BPA
Konstante repräsentiert die Fahrzeuggruppe Busse und Pkw mit Anhänger.

See Also:
Constant Field Values

LVO

private static final java.lang.String LVO
Konstante reprästentiert die Fahrzeuggruppe Leichtverkehr ohne Anhänger.

See Also:
Constant Field Values

debug

private static de.bsvrz.sys.funclib.debug.Debug debug
DebugLogger fuer Debug-Ausgaben.


SGV

private static final java.lang.String SGV
Konstante repräsentiert die Fahrzeuggruppe schwerer Güterverkehr.

See Also:
Constant Field Values

_arVerkehrsDatenLzz5Plus1V2004

private java.lang.String[] _arVerkehrsDatenLzz5Plus1V2004
Array mit allen relevanten Werten für einen Datensatz BASt-Format V2004, Klassifizierung 5 Plus 1.


_arVerkehrsDatenLzz8Plus1V2004

private java.lang.String[] _arVerkehrsDatenLzz8Plus1V2004
Array mit allen relevanten Werten für einen Datensatz BASt-Format V2004, Klassifizierung 8 Plus 1.


_bPAValues

private int[] _bPAValues

_lVoValues

private int[] _lVoValues
Geschwindigkeitsklassen.


_sGVValues

private int[] _sGVValues

ar_VerkehrsDatenLzzKlasseBPAV2007

private java.lang.String[] ar_VerkehrsDatenLzzKlasseBPAV2007

ar_VerkehrsDatenLzzKlasseLVoV2007

private java.lang.String[] ar_VerkehrsDatenLzzKlasseLVoV2007
Array mit allen LVo Werten für einen Datensatz BASt-Format 2007.


ar_VerkehrsDatenLzzKlasseSGVV2007

private java.lang.String[] ar_VerkehrsDatenLzzKlasseSGVV2007

_bastDatensatz

private BastBestandsbandformat _bastDatensatz
Instanz der Klasse BastBestandsbandformat.


_bastStatusDaten

private SendeBAStStatusDaten _bastStatusDaten
Statusinformationen die an den Datenverteiler gesendet werden.

Constructor Detail

ImportLineSplitterBASt

public ImportLineSplitterBASt(BastBestandsbandformat bastDatensatz,
                              SendeBAStStatusDaten bastStatusDaten)
Method Detail

bestimmeStundensatzZeit

private long bestimmeStundensatzZeit(java.util.Date date)
Die Methode bestimmt die Zeit des Stundendatensatzes.

Parameters:
date - Datum.
Returns:
Zeit in millisekunden.

importiereStundendatensatz

private void importiereStundendatensatz(Fahrstreifen fahrstreifen,
                                        ParseStundensatzV2007 teilString,
                                        long longDatumZeit,
                                        java.lang.String line)
Stundendatensatzwerte (vLVo, vSGV, vBPA, sLVo, sSGV, sBPA, v85LVo, v85SGV, v85BPA, v15LVo, v15SGV, v15BPA, qLVoGeschwKlasse, qSGVGeschwKlasse, qBPAGeschwKlasse) werden eingelesen.

Parameters:
fahrstreifen - Fahrstreifen.
teilString - zu parsende Teilstring.
longDatumZeit - Datum.
line - Zeile.

parseDritteHeaderLine2004

public boolean parseDritteHeaderLine2004(java.lang.String line,
                                         java.lang.String dateiName)
Parsing der dritten Header Zeile.
  • Position 1: Headerkennung 3. Datensatz -- Bsp. S
  • Position 2-3: Anzahl der FAhrzeuggruppen -- Bsp. 02
  • Position 4: Leerzeichen
  • Position 5-6: Anzahl der Fahrzeugarten -- Bsp. 09
  • .... je nach Konfiguration.

    Parameters:
    line - Zeile des dirtten Headerdatensatzes.
    dateiName - DateiName der gerade einzulesenden Datei.
    Returns:
    true wenn der aktuelle Import abgebrochen werden soll.

    parseDritteHeaderLine2007

    public boolean parseDritteHeaderLine2007(java.lang.String line,
                                             java.lang.String dateiName)
    Parsing der dritten Header Zeile.
  • Position 1: Headerkennung 3. Datensatz -- Bsp. S
  • Position 2-3: Anzahl der FAhrzeuggruppen -- Bsp. 02
  • .... je nach Konfiguration.

    Parameters:
    line - Zeile des dirtten Headerdatensatzes.
    dateiName - Dateiname der aktuell importierten Datei.
    Returns:
    true wenn der aktuelle Importvorgang abgebrochen werden soll.

    parseErsteHeaderLineV2004

    public LangZeitZaehlStelle parseErsteHeaderLineV2004(java.lang.String line,
                                                         java.lang.String dateiName)
    Parsing der ersten Header Zeile.
  • Position 1: Headerkennung 1. Datensatz -- Bsp. H
  • Position 2-5: Blatt-Nr. der TK25 -- Bsp. 3608
  • Position 6-9: Zählstellennummer -- Bsp. 3357
  • Position 10: Leerzeichen
  • Position 11-12: Bundesland: Kennung -- Bsp. 03
  • Position 13: Leerzeichen
  • Position 14: Straßenklasse -- Bsp. A
  • Position 15: Leerzeichen --
  • Position 16-20: Straßennummer und ggf. Buchstabe -- Bsp. 30
  • Position 21: Leerzeichen --
  • Position 22-46: Zählstellenname -- Bsp. Gildehaus
  • Position 47-50: Versionsnummer der Struktur -- Bsp V2.0
  • Position 51: Zeilenende -- ;
  • Parameters:
    line - Zeile aus der Datei.
    dateiName - Dateiname der aktuell eingelesenen Datei.
    Returns:
    LangZeitZaehlStelle.

    parseErsteHeaderLineV2007

    public LangZeitZaehlStelle parseErsteHeaderLineV2007(java.lang.String line,
                                                         java.lang.String dateiName)
    Parsing der ersten Header Zeile.
  • Position 1-4: Blattnummer der TK25 -- Bsp. 4807
  • Position 5-8:Zählstellennummer -- Bsp. 50300
  • Position 9: Leerzeichen
  • Position 10-11: Bundesland: Kennung -- Bsp. 03
  • Position 12: Leerzeichen
  • Position 13: Straßenklasse -- Bsp. A
  • Position 14: Leerzeichen --
  • Position 15-20: Straßennummer und ggf. Buchstabe -- Bsp. 30
  • Position 21: Leerzeichen --
  • Position 22-61: Zählstellenname -- Bsp. Gildehaus
  • Position 62: Leerzeichen --
  • Position 63-66: Versionsnummer der Struktur -- Bsp. V2.0
  • Position 67: Zeilenende -- ;
  • Parameters:
    line - Zeile aus der Datei.
    dateiName - Dateiname der aktuell eingelesenen Datei.
    Returns:
    LangZeitZaehlStelle.

    parseStundenDatensaetze2004

    public BastBestandsbandformat parseStundenDatensaetze2004(java.lang.String line)
    Die Methode parseStundenDatensaetze2004 ruft je nach Konfiguration die richtige Parsemethode auf, die sich bzgl. der Einzulesenden Daten unterscheidet.

    Parameters:
    line - Zeile die eingelesen wird.
    Returns:
    map.

    parseStundenDatensaetzeKlassifizierung5Plus18Plus1V2004

    private BastBestandsbandformat parseStundenDatensaetzeKlassifizierung5Plus18Plus1V2004(java.lang.String line,
                                                                                           java.lang.String[] arVerkehrsDaten)
    Die Methode liest die Stundendatensätze entsprechend es Formates 5Plus1 oder 8Plus1 ein. Start bei Position 13
  • Position 14-17: Anzahl KFZ auf FS1 Richtung I
  • Position 18: Kennzeichen KFZ auf FS1 Richtung 1
  • Position 19: Leerzeichen
  • Position 20-23: Anzahl SV auf FS1 Richtung I
  • Position 24: Kennzeichen SV auf FS1 Richtung I
  • Position 25: Leerzeichen
  • .... s. BASt.Besatandsformat_Version2004 Für jeden Fahrstreifen Verkehrsmengen der Fahrzeuggruppen wie folgt für 8Plus1 bestimmt: FS i R1: FZGruppe I: Son + Mot + Pkw + Lfw + PmA (Attribut _fsGruppe1R1) FS i R1: FZGruppe II: LoA + LmA + Sat + Bus (Attribut _fsGruppe2R1) FS i+1 R1: analog FS i+1 R1: analog ... FS i+n R2: FZGruppe I: Son + Mot + Pkw + Lfw + PmA Fs i+n R2: FZGruppe II: LoA + LmA + Sat + Bus ... Fs i R2: FZGruppe I: Son + Mot + Pkw + Lfw + PmA (Attribut _fsGruppe1R2) Fs i R2: FZGruppe II: LoA + LmA + Sat + Bus (Attribut _fsGruppe2R2)

    Reihenfolge der auszulesenden Datensätze: Mot Pkw LfW PmA Bus LoA LmA Sat Son Krad Pkw Lfw PkwA Bus Lkw LkwA Sattel-Kfz nkKfz "qKrad" "qPkw" "qLfw" "qPkwA" "qBus" "qLkw" "qLkwA" "qSattelKfz" "qKfzNk" (Map mit Schlüssel Fahrzeugart, Wert VerkehrsMenge _mapFZArtVerkehrsMege, wobei die Werte direkt den DaV Werten entsprechen, d.h. z.B. (qKrad, 0) entspricht dann einem Eintrag in den Stundensätzen Mot. Dafür wird eine Schlüsselmap verwendet, die die unterschiedlichen Bezeichnungen TLS2002 <-> BASt-Bezeichnung aufeinander abbildet.) "qKfz", "qPkwÄ", "qPkwG", "qLkwÄ", "qLkwK",

    Parameters:
    line - Zeile die ausgelesen wird.
    arVerkehrsDaten - Array mit den Verkehrsdaten.
    Returns:
    Map mit allen ermittelten Informationen aus der Datei zu dem Fahrstreifen.

    int iAnzahlKFZ = Integer.parseInt(line.substring(14, 17));


    parseStundenDatensaetzeKlassifizierungV2007

    public BastBestandsbandformat parseStundenDatensaetzeKlassifizierungV2007(java.lang.String line)
    Die Methode liest die Stundendatensatzdaten ein.

    Parameters:
    line - Zeile die eingelesen wird.
    Returns:
    BastBestandsbandformat.

    parseZweiteHeaderLine2004

    public boolean parseZweiteHeaderLine2004(java.lang.String line,
                                             java.lang.String dateiName)
    Parsing der zweiten Header Zeile.
  • Position 1: Headerkennung 2. Datensatz -- Bsp. R
  • Position 2-3: Anzahl der Fahrstreifen in Richtung I -- Bsp. 02
  • Position 4: Leerzeichen
  • Position 5-6: Anzahl der Fahrstreifen in Richtung II -- Bsp. 02
  • Position 7: Leerzeichen
  • Position 8-27: Fernziel in Richtung I -- Bsp. Gildehaus
  • Position 28: Himmelsrichtung I -- Bsp. O
  • Position 29: Leerzeichen
  • Position 30-49: Fernziel in Richtung II -- Bsp. Hengelo (NL)
  • Position 50: Himmelsrichtung II -- Bsp. W
  • Position 51: Zeilenende
  • Parameters:
    line - Zeile des zweiten Headerdatensatzes.
    dateiName - DateiName der aktuell einzulesenden Datei.
    Returns:
    true wenn die aktuelle Datei nicht eingelesen werden kann.

    parseZweiteHeaderLine2007

    public boolean parseZweiteHeaderLine2007(java.lang.String line,
                                             java.lang.String dateiName)
    Parsing der zweiten Header Zeile.
  • Position 1: Anzahl der Fahrstreifen in Richtung I -- Bsp. 02
  • Position 2: Leerzeichen
  • Position 3: Anzahl der Fahrstreifen in Richtung II -- Bsp. 02
  • Position 4: Leerzeichen
  • Position 5-39: Fernziel in Richtung I -- Bsp. Oberhausen
  • Position 40: Leerzeichen
  • Position 41-85: Nahziel in Richtung I -- AS Solingen
  • Position 86: Leerzeichen
  • Position 87-121: Fernziel in Richtung II -- Bsp. Köln
  • Position 122: Leerzeichen
  • Position 123-167: Nahziel in Richtung II -- Bsp. AS Opladen
  • Position 168: Zeilenende -- ;
  • Parameters:
    line - Zeile des zweiten Headerdatensatzes.
    dateiName - DateiName
    Returns:
    true wenn die Datei nicht eingelesen werden kann.

    sendeStatusMeldungUndDebugInfo

    private void sendeStatusMeldungUndDebugInfo(java.lang.String statusMeldungUndDebugInfo)
    Die Methode sendet die Statusmeldung und via Debug eine Information.

    Parameters:
    statusMeldungUndDebugInfo - Meldung als String.