Class BAStImportSteuerung

  • All Implemented Interfaces:
    de.bsvrz.dav.daf.main.ClientReceiverInterface, de.bsvrz.dav.daf.main.ClientSenderInterface, de.bsvrz.sys.funclib.application.StandardApplication, java.lang.Runnable

    public class BAStImportSteuerung
    extends java.lang.Object
    implements de.bsvrz.sys.funclib.application.StandardApplication, de.bsvrz.dav.daf.main.ClientReceiverInterface, de.bsvrz.dav.daf.main.ClientSenderInterface, java.lang.Runnable
    Die Klasse dient der Importsteuerung der BASt-Band Daten.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected static java.lang.String DATEI_BEARBEITET  
      protected static java.lang.String DATEI_LOCK  
      protected static java.lang.String FILESEPARATOR_SERVER
      TODO Fileseparator auf dem Server.
      • Fields inherited from interface de.bsvrz.dav.daf.main.ClientSenderInterface

        START_SENDING, STOP_SENDING, STOP_SENDING_NO_RIGHTS, STOP_SENDING_NOT_A_VALID_SUBSCRIPTION
    • Method Summary

      Modifier and Type Method Description
      protected void anmeldenDavEmpfaengerBAStImport()
      Anmeldung beim Datenverteiler als Empfänger für die Attribute bzgl.
      void dataRequest​(de.bsvrz.dav.daf.main.config.SystemObject so, de.bsvrz.dav.daf.main.DataDescription datenBeschreibung, byte status)  
      void erzeugeDatensatzV2004​(BastBestandsbandformat bastFormat2004, Fahrstreifen fs, int prozentSchritt)
      Die Methode erzeugt einen Datensatz und übergibt diesen zum Senden an den Dav.
      LangZeitZaehlStelle getLzz()
      Get-Methode für die TESTZWECKE.
      void initialize​(de.bsvrz.dav.daf.main.ClientDavInterface dav)  
      boolean isRequestSupported​(de.bsvrz.dav.daf.main.config.SystemObject systemObject, de.bsvrz.dav.daf.main.DataDescription dataDescription)  
      BastBestandsbandformat konvertiereDateiInBastFormat​(java.lang.String dateiName, java.io.InputStream dateiStream)
      Die Methode liest die Date mit dem übergebenen Dateinamen vom FTP-Server ein.
      static void main​(java.lang.String[] args)  
      void parseArguments​(de.bsvrz.sys.funclib.commandLineArgs.ArgumentList argumentList)  
      void run()
      In der run Methode des Threads BAStBandImport wird der Import der Datei durchgeführt.
      void setzeDatenFuerTestzwecke​(KonstantenBast.BAST_FORMAT bastFormat, de.bsvrz.dav.daf.main.ClientDavInterface dav)
      Methode für die TESTZWECKE.
      void update​(de.bsvrz.dav.daf.main.ResultData[] resultDatas)
      Update-Methode wird vom Datenverteiler aufgerufen.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • DATEI_BEARBEITET

        protected static final java.lang.String DATEI_BEARBEITET
        See Also:
        Constant Field Values
      • FILESEPARATOR_SERVER

        protected static final java.lang.String FILESEPARATOR_SERVER
        TODO Fileseparator auf dem Server.
        See Also:
        Constant Field Values
    • Constructor Detail

      • BAStImportSteuerung

        public BAStImportSteuerung()
    • Method Detail

      • anmeldenDavEmpfaengerBAStImport

        protected void anmeldenDavEmpfaengerBAStImport()
        Anmeldung beim Datenverteiler als Empfänger für die Attribute bzgl. BASt-Band Import und Verzeichnisüberwachung.
      • dataRequest

        public void dataRequest​(de.bsvrz.dav.daf.main.config.SystemObject so,
                                de.bsvrz.dav.daf.main.DataDescription datenBeschreibung,
                                byte status)
        Specified by:
        dataRequest in interface de.bsvrz.dav.daf.main.ClientSenderInterface
      • erzeugeDatensatzV2004

        public void erzeugeDatensatzV2004​(BastBestandsbandformat bastFormat2004,
                                          Fahrstreifen fs,
                                          int prozentSchritt)
                                   throws java.lang.Exception
        Die Methode erzeugt einen Datensatz und übergibt diesen zum Senden an den Dav. Dabei wird die Attributgruppe atg.VerkehrsdatenLangZeitIntervall mit dem Aspekt asp.messWertErsetzung geschrieben. Um einen vollständigen Datensatz zu erzeugen, wird der zugehörige Archivdatensatz abgerufen asp.ExterneErfassung und als Default verwendet, d.h. nur die zusätzlich importierten Daten werden in dem Archivdatensatz entsprechend angepasst, dann aber via Aspekt asp.messWertErsetzung publiziert. Methode ist public für die TESTZWECKE.
        Parameters:
        bastFormat2004 - BastBand Format.
        fs - Fahrstreifen.
        prozentSchritt - Prozentschritt.
        Throws:
        java.lang.Exception - .
      • getLzz

        public LangZeitZaehlStelle getLzz()
        Get-Methode für die TESTZWECKE.
        Returns:
        LangZeitZaehlStelle.
      • initialize

        public void initialize​(de.bsvrz.dav.daf.main.ClientDavInterface dav)
                        throws java.lang.Exception
        Specified by:
        initialize in interface de.bsvrz.sys.funclib.application.StandardApplication
        Throws:
        java.lang.Exception
      • isRequestSupported

        public boolean isRequestSupported​(de.bsvrz.dav.daf.main.config.SystemObject systemObject,
                                          de.bsvrz.dav.daf.main.DataDescription dataDescription)
        Specified by:
        isRequestSupported in interface de.bsvrz.dav.daf.main.ClientSenderInterface
      • konvertiereDateiInBastFormat

        public BastBestandsbandformat konvertiereDateiInBastFormat​(java.lang.String dateiName,
                                                                   java.io.InputStream dateiStream)
        Die Methode liest die Date mit dem übergebenen Dateinamen vom FTP-Server ein. Methode ist public für die TESTZWECKE.
        Parameters:
        dateiName - der Datei die importiert werden soll.
        dateiStream - Inhalt der Datei.
        Returns:
        instanz BastBestandsbandformat mit allen relevanten Attributen.
      • main

        public static void main​(java.lang.String[] args)
      • parseArguments

        public void parseArguments​(de.bsvrz.sys.funclib.commandLineArgs.ArgumentList argumentList)
                            throws java.lang.Exception
        Specified by:
        parseArguments in interface de.bsvrz.sys.funclib.application.StandardApplication
        Throws:
        java.lang.Exception
      • run

        public void run()
        In der run Methode des Threads BAStBandImport wird der Import der Datei durchgeführt. Folgende Schritte sind dabei zu vollziehen, nachdem eine erfolgreiche Verbindung zum FTP-Server statt gefunden hat. Sollte dies nicht möglich sein, wird eine Statusmeldung versendet. Für alle Dateien die importiert werden sollen:
        • 0. Sperren der Datei via DATEI_LOCK Endung
        • 1. Lese Datei vom FTP-Server ein
        • 2. Konvertiere die Zeilen in das interne DaV-Format.
        • 3. Schreibe Datensatz in DaV.
        • 4. Bestätige Import der Datei via Statusmeldung.
        • 5. Benenne Datei in bearbeitet um.
        Specified by:
        run in interface java.lang.Runnable
      • setzeDatenFuerTestzwecke

        public void setzeDatenFuerTestzwecke​(KonstantenBast.BAST_FORMAT bastFormat,
                                             de.bsvrz.dav.daf.main.ClientDavInterface dav)
        Methode für die TESTZWECKE.
        Parameters:
        bastFormat - BASt-Format.
        dav - DaV.
      • update

        public void update​(de.bsvrz.dav.daf.main.ResultData[] resultDatas)
        Update-Methode wird vom Datenverteiler aufgerufen. Die übergebenen Datensätze werden verarbeitet.
        Specified by:
        update in interface de.bsvrz.dav.daf.main.ClientReceiverInterface
        Parameters:
        resultDatas - Resultdata, entspricht den Attributen eines BASt-Band importes, d.h. Referenz auf Langzeitzählstellen username passwort url zum FTP-Server auf dem die Importierten Daten abgelegt werden.