Class Datensatz

java.lang.Object
gdv.xport.satz.Satz
gdv.xport.satz.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 Details

    • 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 Details

    • 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:
    • 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:
    • readTeildatensatzNummer

      @Deprecated public static TeildatensatzNummer readTeildatensatzNummer(PushbackReader reader) throws IOException
      Read teildatensatz nummer.

      TODO: wird mit v7 entfernt

      Parameters:
      reader - the reader
      Returns:
      the teildatensatz nummer
      Throws:
      IOException - Signals that an I/O exception has occurred.