Class Datensatz

  • All Implemented Interfaces:
    Cloneable
    Direct Known Subclasses:
    SatzXml

    public class Datensatz
    extends Satz
    Datensatz ist von Satz abgeleitet, enthaelt aber zusaetzlich noch die Sparte.
    Since:
    12.10.2009
    Author:
    oliver
    • Constructor Detail

      • Datensatz

        public Datensatz()
        Default-Konstruktor (wird zur Registrierung bei der SatzFactory benoetigt).

        Anm.: In SatzRegistry.getSatz(SatzTyp) wird der Default-Constructor per Reflection aufgerufen. Daher kann er nicht einfach entfernt werden.

        Since:
        0.6
      • Datensatz

        public Datensatz​(int satzart)
        Instantiiert einen neuen Datensatz mit 1 Teildatensatz.
        Der Teildatensatz besteht nur aus 8 Feldern:
        • Satzart
        • VU_NUMMER
        • BUENDELUNGSKENNZEICHEN
        • SPARTE
        • VERSICHEURUNGSSCHEINNUMMER
        • FOLGENUMMER
        • VERMITTLER
        • SATZNUMMER

        Anm.: Dieser Constructor wird noch von SatzFactory.register(Class, int) verwendet.

        Parameters:
        satzart - z.B. 100
      • Datensatz

        public Datensatz​(SatzTyp satzTyp)
        Instantiiert einen neuen Datensatz mit 1 Teildatensatz.
        Der Teildatensatz besteht nur aus 8 oder 9 Feldern:
        • Satzart
        • VU_NUMMER
        • BUENDELUNGSKENNZEICHEN
        • SPARTE
        • VERSICHEURUNGSSCHEINNUMMER
        • FOLGENUMMER
        • VERMITTLER
        • ART ("0220.580.X") oder WAGNISART (bei "0220.010.X")
        • SATZNUMMER
        Das Feld 4 (Sparte) im Teildatensatz wird nur bei den vordefinierten GDV-Spartensaetzen belegt.
        Parameters:
        satzTyp - z.B. "0210.040" (Vertragsspezifischer Teil, Haftpflicht)
        Since:
        5.0
      • Datensatz

        protected Datensatz​(SatzTyp satzTyp,
                            Config cfg)
      • Datensatz

        public Datensatz​(SatzTyp satzTyp,
                         int n)
        Instantiiert einen neuen Datensatz. Die Teildatensaetze bestehen nur aus 8 oder 9 Feldern:
        • Satzart
        • VU_NUMMER
        • BUENDELUNGSKENNZEICHEN
        • SPARTE
        • VERSICHEURUNGSSCHEINNUMMER
        • FOLGENUMMER
        • VERMITTLER
        • ART ("0220.580.X") oder WAGNISART (bei "0220.010.X")
        • SATZNUMMER
        Das Feld 4 (Sparte) im Teildatensatz wird nur bei vordefinierten Spartensaetzen belegt.
        Parameters:
        satzTyp - z.B. "0100" (Adressteil) oder "0220.110" (Glas)
        n - Anzahl der Teildatensaetze
        Since:
        5.0
      • Datensatz

        protected Datensatz​(SatzTyp satzTyp,
                            int n,
                            Config cfg)
      • Datensatz

        public Datensatz​(Datensatz other)
        Dies ist der Copy-Constructor, mit dem man einen bestehenden Datensatz kopieren kann.
        Parameters:
        other - der originale Datensatz
    • Method Detail

      • setUpTeildatensaetze

        protected void setUpTeildatensaetze()
        Kann von Unterklassen verwendet werden, um die Teildatensaetze aufzusetzen.
      • setUpTeildatensatz

        protected void setUpTeildatensatz​(Teildatensatz tds)
        Hiermit kann ein einzelner Teildatensatz aufgesetzt werden.

        Wenn alle Datensaetze nur noch ueber Enums (Soplets) initialisiert werden, duerfte die Inialisierung hier hinfaellig sein.

        Parameters:
        tds - der (leere) Teildatensatz
        Since:
        0.4
      • setUpTeildatensatz

        protected static void setUpTeildatensatz​(Teildatensatz tds,
                                                 NumFeld sparte)
      • completeTeildatensaetze

        protected final void completeTeildatensaetze()
        Kann von Unterklassen verwendet werden, um fehlende Felder in den Teildatensaetze zu vervollstaendigen. Kann aber seit 1.0 nicht mehr ueberschrieben werden, da diese Methode vom Konstruktor waehrend der Objekt-Kreierung benoetigt wird.
        Since:
        0.6
      • addFiller

        public void addFiller()
        Description copied from class: Satz
        Fuellt fuer alle leeren Stellen ein entsprechendes Fuellfeld auf.
        Overrides:
        addFiller in class Satz
      • init

        public void init​(SatzTyp satztyp)
        Dient dazu, um mit den Informationen des Satztyps Sparte und andere Felder vorzubelegen.
        Parameters:
        satztyp - SatzTyp, z.B. "0220.010.13.1"
        Since:
        5.1
      • setSparte

        public void setSparte​(int x)
        Setzt die Sparte.
        Parameters:
        x - z.B. 70 (Rechtsschutz)
      • setSparte

        public void setSparte​(String x)
        Setzt die Sparte. Der uebergebene String kann dabei auch die Art der Sparte enthalten.
        Parameters:
        x - z.B. "580.01" fuer Sparte 580, Art 01
      • getSparte

        public int getSparte()
        Gets the sparte.
        Overrides:
        getSparte in class Satz
        Returns:
        die Sparte als int
      • getArt

        public int getArt()
        Manche Satzarten wie Bausparen haben eine Element fuer die Untersparte, im Feld Wagnisart oder Art abgespeichert. Dies ist z.B. fuer Satz 220.580.1 (Bausparen) der Fall.
        Returns:
        0 oder Untersparte / Art
      • hasArt

        public boolean hasArt()
        Wenn der Datensatz ein Element fuer eine Untersparte hat, wird 'true' zurueckgegeben. Dies ist z.B. fuer Satz 220.580.1 (Bausparen) der Fall.
        Returns:
        true, falls der Datensatz eine Untersparte hat.
      • hasSparte

        public boolean hasSparte()
        Ueberprueft, ob der Datensatz ueberhaupt eine Sparte gesetzt hat.
        Overrides:
        hasSparte in class Satz
        Returns:
        true, if successful
        Since:
        0.6
      • getSparteFeld

        public NumFeld getSparteFeld()
        Gets the sparte feld.
        Returns:
        die Sparte als Feld
      • hasSatzartNummer

        public boolean hasSatzartNummer()
        Wenn der Datensatz ein Element fuer eine Untersparte hat, wird 'true' zurueckgegeben. Dies ist z.B. fuer Satz 220.580.1 (Bausparen) der Fall.
        Returns:
        true, falls der Datensatz eine Untersparte hat.
      • setVuNummer

        public void setVuNummer​(String s)
        Sets the vu nummer.
        Parameters:
        s - VU-Nummer (max. 5 Stellen)
      • getVuNummer

        public String getVuNummer()
        Gets the vu nummer.
        Returns:
        die VU-Nummer
      • hasVuNummer

        public boolean hasVuNummer()
        Nicht jeder Datensatz hat eine VU-Nummer. So kommt sie in Satzart 0291.550 nicht vor.
        Returns:
        true, if VU-Nummer vorhanden ist
        Since:
        5.2
      • setVersicherungsscheinNummer

        public void setVersicherungsscheinNummer​(String nr)
        Sets the versicherungsschein nummer.
        Parameters:
        nr - die Versicherungsschein-Nummer
        Since:
        0.3
      • getVersicherungsscheinNummer

        public String getVersicherungsscheinNummer()
        Gets the versicherungsschein nummer.
        Returns:
        die Versicherungsschein-Nummer
        Since:
        0.3
      • setSatznummer

        @Deprecated
        public void setSatznummer​(Zeichen satznummer)
        Deprecated.
        ab 5.1 nicht mehr noetig, da Teildatensatz.getSatznummer() jetzt die tatsaechliche Satznummer liefert
        Da nicht alle Satzarten die Satznummer am Ende des Satzes haben, kann man dies ueber diese Methode korrigieren.

        TODO: wird ab v7 nicht mehr unterstuetzt

        Parameters:
        satznummer - das neue Feld fuer die Satznummer
        Since:
        3.2
      • setFolgenummer

        public void setFolgenummer​(int nr)
        Hiermit kann die Folgenummer gesetzt werden.
        Parameters:
        nr - man sollte hier bei 1 anfangen mit zaehlen
        Since:
        0.3
      • getFolgenummer

        public int getFolgenummer()
        Gets the folgenummer.
        Returns:
        die Folgenummer
        Since:
        0.3
      • readSparte

        protected static int readSparte​(PushbackReader reader)
                                 throws IOException
        Liest 14 Bytes, um die Sparte zu bestimmen und stellt die Bytes anschliessend wieder zurueck in den Reader.

        ACHTUNG: Ab v6.1 nur fuer den internen Gebrauch gedacht. Ansonsten auf Importer.readSparte() ausweichen.

        Parameters:
        reader - muss mind. einen Pushback-Puffer von 14 Zeichen bereitstellen
        Returns:
        Sparte
        Throws:
        IOException - falls was schief gegangen ist
        See Also:
        Importer.readSparte()
      • readKrankenFolgeNr

        @Deprecated
        public static int readKrankenFolgeNr​(PushbackLineNumberReader reader)
                                      throws IOException
        Deprecated.
        wurde nach Importer.readKrankenFolgeNr() verschoben
        Liest 49 Bytes, um die Folge-Nr. in Satzart 220, Sparte 20 (Kranken) zu bestimmen und stellt die Bytes anschliessend wieder zurueck in den Reader.
        Parameters:
        reader - muss mind. einen Pushback-Puffer von 14 Zeichen bereitstellen
        Returns:
        Folge-Nr
        Throws:
        IOException - falls was schief gegangen ist
      • readBausparenArt

        @Deprecated
        public static int readBausparenArt​(PushbackLineNumberReader reader)
                                    throws IOException
        Deprecated.
        wurde nach Importer.readBausparenArt() verschoben
        Liest 45 Bytes, um die Bauspar-Art in Satzart 220, Sparte 580 (Bausparen) zu bestimmen und stellt die Bytes anschliessend wieder zurueck in den Reader.
        Parameters:
        reader - muss mind. einen Pushback-Puffer von 14 Zeichen bereitstellen
        Returns:
        Folge-Nr
        Throws:
        IOException - falls was schief gegangen ist
      • readWagnisart

        @Deprecated
        public static WagnisartLeben readWagnisart​(PushbackReader reader)
                                            throws IOException
        Deprecated.
        wurde nach Importer.readWagnisart() verschoben
        Liest 1 Byte, um die Wagnisart zu bestimmen und stellt das Byte anschliessend wieder zurueck in den Reader.
        Parameters:
        reader - muss mind. einen Pushback-Puffer von 60 Zeichen bereitstellen
        Returns:
        Wagnisart
        Throws:
        IOException - falls was schief gegangen ist
      • matchesNextTeildatensatz

        protected boolean matchesNextTeildatensatz​(PushbackLineNumberReader reader,
                                                   char[] lastFeld1To7,
                                                   Character satznummer)
                                            throws IOException
        Prüfe ob die kommende Zeile ein Teildatensatz der letzten ist. Dazu werden (normalerweise) die ersten 7 Felder abgeglichen. Leider fuehrt dieses Verfahren nicht immer zum Erfolg, sodass wir uns in bestimmten Situationen doch den ganzen naechsten Teildatensatz anschauen muessen.
        Overrides:
        matchesNextTeildatensatz in class Satz
        Parameters:
        reader - ein Reader
        lastFeld1To7 - Feld1..7 als Char-Array (42 Zeichen) der letzten Zeile oder null für ersten Teildatensatz
        satznummer - die Satznummer
        Returns:
        true, falls ein Teildatensatz, false falls nicht, d.h. neuer Datensatz.
        Throws:
        IOException - bei I/O-Fehlern
        Since:
        0.5.1
        See Also:
        Satz.matchesNextTeildatensatz(PushbackLineNumberReader, char[], Character)