Klasse XmlService

java.lang.Object
gdv.xport.satz.xml.XmlService

public class XmlService extends Object
Hier wird jetzt eine XML-Beschreibung verwendet, um die Saetze fuer die einzelnen Satzarten aufzusetzen. Als Basis fuer die XML-Beschreibung wurde urspruenglich die Datei "VUVM2013_010713.xml" genommen, die ueber www.gdv-online.de heruntergeladen werden kann. Inzwischen wird die aktuelle "VUVM2018.xml" verwendet.
Seit:
1.0 (15.08.2014)
Autor:
oliver
  • Konstruktordetails

  • Methodendetails

    • getInstance

      public static XmlService getInstance()
      Liefert einen Service anhand des Standard-XML-Handbuchs von 2018.
      Gibt zurück:
      der frisch instantiierte XmlService
    • getInstance

      public static XmlService getInstance(Config cfg) throws XMLStreamException, IOException
      Liefert Service-Instanz anhand der uebergebenen Konfiguration. Da der Aufruf des XmlService-Konstruktors teuer ist und einige Sekunden braucht (2-3 Sekunden auf einem MacBook-Air von 2011), wird ein interner Cache verwendet, um nicht jedesmal die Resource parsen zu muessen.
      Parameter:
      cfg - gewuenschte Konfiguration
      Gibt zurück:
      der frisch instantiierte XmlService
      Löst aus:
      XMLStreamException - falls die angegebene Resource nicht existiert oder nicht interpretiert werden kann
      IOException - bei Lesefehlern
    • getInstance

      public static XmlService getInstance(String resource) throws XMLStreamException, IOException
      Liefert Service-Instanz anhand der uebergebenen Resource. Da der Aufruf des XmlService-Konstruktors teuer ist und einige Sekunden braucht (2-3 Sekunden auf einem MacBook-Air von 2011), wird ein interner Cache verwendet, um nicht jedesmal die Resource parsen zu muessen.
      Parameter:
      resource - Resource-Name (z.B. "VUVM2013.xml")
      Gibt zurück:
      der frisch instantiierte XmlService
      Löst aus:
      XMLStreamException - falls die angegebene Resource nicht existiert oder nicht interpretiert werden kann
      IOException - bei Lesefehlern
    • getInstance

      public static XmlService getInstance(URI resource) throws XMLStreamException, IOException
      Dies ist die allgemeinere Variante von getInstance(String), die eine URI als Parameter erwartet. Dies kann die URI zu einer Classpath-Resource oder zu einer Datei sein, theoretisch aber auch eine URI zu einer Web-Resource.
      Parameter:
      resource - z.B. eine File-URI
      Gibt zurück:
      der frisch instantiierte XmlService
      Löst aus:
      XMLStreamException - falls die angegebene Resource nicht existiert oder nicht interpretiert werden kann
      IOException - bei Lesefehlern
      Seit:
      5.0
    • parseFelder

      public static Map<String,FeldXml> parseFelder(XMLEventReader reader) throws XMLStreamException
      Liest die <felder>-Elemente ein und liefert sie als Map zurueck.
      Parameter:
      reader - the reader
      Gibt zurück:
      Map mit den Feldern
      Löst aus:
      XMLStreamException - the XML stream exception
    • getFelder

      public Map<String,FeldXml> getFelder()
      Liefert die Felder mit den Referenzen.
      Gibt zurück:
      the felder
      Seit:
      1.1
    • getSatzart

      @Deprecated public SatzXml getSatzart(int satzart)
      Veraltet.
      wird durch getSatzart(SatzTyp) abgeloest
      Liefert den Satz zur gewuenschten Satzart. Falls es mehr wie einen Satz zur gesuchten Satzart gibt (d.h. wenn es mehrere Sparten gibt), wird eine NotUniqueException geworfen.

      Urspruenglich war diese Methoden fuer Satzarten wie 100 oder 200 vorgesehen, die keine Sparte besitzen. Fuer andere Satzarten wird deswegen eine NotUniqueException geworfen, da die Methode dafuer nicht verwendet werden soll. Seit v0.9 ist die durch SatzTyp gekapselt.

      Parameter:
      satzart - z.B. 100 fuer Satz100 (Adressteil)
      Gibt zurück:
      die entsprechende Satzart
    • getSatzart

      public SatzXml getSatzart(SatzTyp satzNr)
      Liefert den Satz zur gewuenschten Satzart. Dabei koennen auch Satzarten wie "0350.030", die es so direkt nicht gibt in der XML-Beschreibung, angefordert werden.

      Um Nebeneffekte zu vermeiden wird jedesmal ein neuer Satz erzeugt und zurueckgeliefert.

      TODO: Aufteilen in getSatzart(SatzTyp) und getSatzart(SatzTyp, int sparte) Vermutlich gehoert diese Funktionalitaet auch eher in die SatzFactory. Problem hierbei ist, dass es Satzarten wie "0211.170" gibt, in die verschiedene Satzarten erlauben. D.h. "170" ist hier nicht die Sparte, sondern steht eher als Sammelnummer fuer verschiedene Satzarten.

      Parameter:
      satzNr - z.B. SatzTyp.of("0100") fuer Satz100 (Adressteil)
      Gibt zurück:
      die entsprechende Satzart
    • getSatzarten

      public Map<SatzTyp,SatzXml> getSatzarten()
      Liefert die registrierten Satzarten.
      Gibt zurück:
      Satzarten als Hashmap
      Seit:
      2.1.4
    • getSatzVersion

      public String getSatzVersion(SatzTyp satzTyp)
      Liefert die Satzversion eines registrierten Satztyps
      Parameter:
      satzTyp - die Satzart
      Gibt zurück:
      die Version
      Seit:
      5.0
    • getGdvRelease

      public String getGdvRelease()
      Liefert das Release der erzeugten Xml-Saetze
      Gibt zurück:
      das Release der erzeugten XmlSaetze
    • getConfig

      public Config getConfig()
      Liefert die eingestellt Config zurueck.
      Gibt zurück:
      eingestellte Config
      Seit:
      6.1
    • toString

      public String toString()
      Setzt außer Kraft:
      toString in Klasse Object