Klasse SatzFactory

java.lang.Object
gdv.xport.util.SatzFactory

public final class SatzFactory extends Object
Diese Klasse dient dazu, um einen vorgegebene Satz, der z.B. aus einem Import kommt, in den entsprechenden Satz wandeln zu koennen.

Mit 5.0 wurde die Funktionalitaet in SatzRegistry ausgelagert. Im Gegensatz zu SatzFactory kann man sich von der SatzRegistry auch verschiedene Instanzen geben lassen - z.B. zur Unterstuetzung von aelteren Versionen der GDV-Satzbeschreibungen.

Seit:
0.1.0 (30.10.2009)
Autor:
oliver (ob@aosd.de)
  • Methodendetails

    • register

      public static void register(Class<? extends Satz> clazz, int satzart)
      Mit dieser Methode koennen eigene Klassen fuer (z.B. noch nicht unterstuetzte Datensaetze) registriert werden. Die Kasse muss einen Default-Konstruktor bereitstellen. Ansonsten wird hier eine IllegalArgumentException geworfen (seit 0.6).
      Parameter:
      clazz - the clazz
      satzart - the satzart
      Seit:
      0.2
    • unregister

      public static void unregister(SatzTyp typ)
      Hiermit kann man eine Registrierung rueckgaengig machen (was z.B. fuer's Testen hilfreich sein kann). Diese unregister-Methode ersetzt ab 4.2 die anderen uregister-Methoden.
      Parameter:
      typ - SatzTyp bzw. Satzart
      Seit:
      5.0
    • register

      public static void register(Class<? extends Datensatz> clazz, SatzTyp satzNr)
      Mit dieser Methode koennen eigene Klassen fuer (z.B. noch nicht unterstuetzte Datensaetze) registriert werden.
      Parameter:
      clazz - the clazz
      satzNr - the satz nr
      Seit:
      5.0
    • getSatz

      public static Satz getSatz(SatzTyp satztyp)
      Holt einen Satz.
      Parameter:
      satztyp - der Satztyp
      Gibt zurück:
      angeforderter Satz
      Seit:
      3.2
    • getSatz

      public static Satz getSatz(String content)
      Versucht anhand des uebergebenen Strings herauszufinden, um was fuer eine Satzart es sich handelt und liefert dann einen entsprechenden (gefuellten) Satz zurueck.

      Im ersten Schritt wird nach der passenden Satzart gesucht. Das klappt nur, wenn satzart = 0001, 0052, 0100, 0102, 0200, 0202, 0300, 0342, 0350, 0352, 0372, 0382, 0390, 0392, 0400, 0410, 0420, 0430, 0450, 0500, 0550, 0600, 9950, 9951, 9952, 9999. Daher wird im 2. Versuch noch die Sparte hinzugenommen.

      Das klappt nicht, wenn satzart= 0220.580.01, 0220.580.2, 0220.020.1, 0220.020.2, 0220.020.3, 0220.010.13.1, 0220.010.13.6, 0220.010.13.7, 0220.010.13.8, 0220.010.13.9, 0220.010.2.1, 0220.010.2.6, 0220.010.2.7, 0220.010.2.8, 0220.010.2.9, 0220.010.48.1, 0220.010.48.6, 0220.010.48.8, 0220.010.48.9, 0220.010.5.1, 0220.010.5.6, 0220.010.5.8, 0220.010.5.9, 0220.010.6.1, 0220.010.6.6, 0220.010.6.8, 0220.010.6.9, 0220.010.7.1, 0220.010.7.6, 0220.010.7.8, 0220.010.7.9, 0220.010.9.1, 0220.010.9.6, 0220.010.9.7, 0220.010.9.8, 0220.010.9.9 !! Diese Satzarten benoetigen weitere Angaben (Wagnisart (Sparte 010), Satznummer (Sparte 010), KrankenfolgeNummer (Sparte 020), BausparenArt (Sparte 580). Fuer diese Satzarten kann diese Methode nicht verwendet werden.

      ACHTUNG: Um den ganz korrekten Satzaufbau zu liefern, muesste dazu die Version der Satzatz bekannt sein! Diese Info steht immer im Vorsatz des zugehörigen Datenpaketes. Lt. Auskunft vom GDV werden z.T. noch Saetze aus Release 01.11.2009 verarbeitet. Da hier aber die aktuellste Version verwendet wird, kann der zurueckgegebene Satz mehr Felder enthalten, als die tatsaechliche Version. Diese Unschaerfe wird hier in Kauf genommen, da i.d.R. immer nur Felder hinzugefuegt werden. Dies muss beim Zugriff ueber die Feld-Nr. beachtet werden.

      Parameter:
      content - the content
      Gibt zurück:
      einen gefuellten Satz
      Seit:
      0.2
    • getDatensatz

      @Deprecated public static Datensatz getDatensatz(SatzTyp satzNr)
      Veraltet.
      durch SatzRegistry.getSatz(SatzTyp) abgeloest (TODO: wird mit v8 entfernt)
      Liefert den gewuenschten Datensatz. Mit der uebergebenen Satznummer wird der Datensatz spezifizert, der folgendes enthaelt:
      • Satzart (z.B. 210)
      • Sparte (z.B. 70 fuer Rechtsschutz)
      • Wagnisart (z.B. 1 fuer Kapitallebensversicherung)
      • Teildatensatz-Nummer (6 = Bezugsrechte, 7 = Auszahlungen, 8 = zukünftige Summenänderungen, 9 = Wertungssummen)

      Falls der gewuenschte Datensatz nicht registriert ist, wird der Datensatz anhand der von XmlService bestimmt.

      Parameter:
      satzNr - z.B. SatzTyp.of("0210.070.1.6")
      Gibt zurück:
      den passenden Datensatz
    • getAllSupportedSaetze

      public static Datenpaket getAllSupportedSaetze()
      Liefert ein Datenpaket mit allen unterstuetzten Satzarten.

      Satzarten, die mit register(Class, int) registriert wurden, werden nicht aufgefuehrt!

      Grund: Ein Objekt vom Typ <code>Satz</code> kann nicht auf <code>Datensatz</code> gecastet werden.

      Gibt zurück:
      Datenpaket mit allen unterstuetzten Satzarten
      Seit:
      0.6
    • getVorsatz

      public static Vorsatz getVorsatz()
      Liefert den passenden Vorsatz.
      Gibt zurück:
      Vorsatz
      Seit:
      5.0
    • getNachsatz

      public static Nachsatz getNachsatz()
      Liefert den passenden Nachsatz.
      Gibt zurück:
      Nachsatz
      Seit:
      5.0
    • getGdvRelease

      public static String getGdvRelease()
      Liefert das Release der jeweiligen XML-Beschreibung, aus der die GDV-Datensaetze erzeugt wurden.
      Gibt zurück:
      das Release der erzeugten XmlSaetze