Class 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.- Since:
- 1.0 (15.08.2014)
- Author:
- oliver
-
-
Constructor Summary
Constructors Constructor Description XmlService(XMLEventReader parser)
Instantiiert einen XML-Service.XmlService(XMLEventReader parser, StartElement startElement)
Instantiiert einen XML-Service.XmlService(XMLEventReader parser, StartElement startElement, Config config)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description Config
getConfig()
Liefert die eingestellt Config zurueck.Map<String,FeldXml>
getFelder()
Liefert die Felder mit den Referenzen.String
getGdvRelease()
Liefert das Release der erzeugten Xml-Saetzestatic XmlService
getInstance()
Liefert einen Service anhand des Standard-XML-Handbuchs von 2018.static XmlService
getInstance(Config cfg)
Liefert Service-Instanz anhand der uebergebenen Konfiguration.static XmlService
getInstance(String resource)
Liefert Service-Instanz anhand der uebergebenen Resource.static XmlService
getInstance(URI resource)
Dies ist die allgemeinere Variante vongetInstance(String)
, die eine URI als Parameter erwartet.SatzXml
getSatzart(int satzart)
Deprecated.wird durchgetSatzart(SatzTyp)
abgeloestSatzXml
getSatzart(SatzTyp satzNr)
Liefert den Satz zur gewuenschten Satzart.Map<SatzTyp,SatzXml>
getSatzarten()
Liefert die registrierten Satzarten.String
getSatzVersion(SatzTyp satzTyp)
Liefert die Satzversion eines registrierten Satztypsstatic Map<String,FeldXml>
parseFelder(XMLEventReader reader)
Liest die <felder>-Elemente ein und liefert sie als Map zurueck.String
toString()
-
-
-
Constructor Detail
-
XmlService
public XmlService(XMLEventReader parser) throws XMLStreamException
Instantiiert einen XML-Service.- Parameters:
parser
- the parser- Throws:
XMLStreamException
- the XML stream exception
-
XmlService
public XmlService(XMLEventReader parser, StartElement startElement) throws XMLStreamException
Instantiiert einen XML-Service.- Parameters:
parser
- the parserstartElement
- the start element- Throws:
XMLStreamException
- the XML stream exception
-
XmlService
public XmlService(XMLEventReader parser, StartElement startElement, Config config) throws XMLStreamException
- Throws:
XMLStreamException
-
-
Method Detail
-
getInstance
public static XmlService getInstance()
Liefert einen Service anhand des Standard-XML-Handbuchs von 2018.- Returns:
- der frisch instantiierte XmlService
-
getInstance
public static XmlService getInstance(Config cfg) throws XMLStreamException, IOException
Liefert Service-Instanz anhand der uebergebenen Konfiguration. Da der Aufruf desXmlService
-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.- Parameters:
cfg
- gewuenschte Konfiguration- Returns:
- der frisch instantiierte XmlService
- Throws:
XMLStreamException
- falls die angegebene Resource nicht existiert oder nicht interpretiert werden kannIOException
- bei Lesefehlern
-
getInstance
public static XmlService getInstance(String resource) throws XMLStreamException, IOException
Liefert Service-Instanz anhand der uebergebenen Resource. Da der Aufruf desXmlService
-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.- Parameters:
resource
- Resource-Name (z.B. "VUVM2013.xml")- Returns:
- der frisch instantiierte XmlService
- Throws:
XMLStreamException
- falls die angegebene Resource nicht existiert oder nicht interpretiert werden kannIOException
- bei Lesefehlern
-
getInstance
public static XmlService getInstance(URI resource) throws XMLStreamException, IOException
Dies ist die allgemeinere Variante vongetInstance(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.- Parameters:
resource
- z.B. eine File-URI- Returns:
- der frisch instantiierte XmlService
- Throws:
XMLStreamException
- falls die angegebene Resource nicht existiert oder nicht interpretiert werden kannIOException
- bei Lesefehlern- Since:
- 5.0
-
parseFelder
public static Map<String,FeldXml> parseFelder(XMLEventReader reader) throws XMLStreamException
Liest die <felder>-Elemente ein und liefert sie als Map zurueck.- Parameters:
reader
- the reader- Returns:
- Map mit den Feldern
- Throws:
XMLStreamException
- the XML stream exception
-
getFelder
public Map<String,FeldXml> getFelder()
Liefert die Felder mit den Referenzen.- Returns:
- the felder
- Since:
- 1.1
-
getSatzart
@Deprecated public SatzXml getSatzart(int satzart)
Deprecated.wird durchgetSatzart(SatzTyp)
abgeloestLiefert den Satz zur gewuenschten Satzart. Falls es mehr wie einen Satz zur gesuchten Satzart gibt (d.h. wenn es mehrere Sparten gibt), wird eineNotUniqueException
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 durchSatzTyp
gekapselt.- Parameters:
satzart
- z.B. 100 fuer Satz100 (Adressteil)- Returns:
- 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.
- Parameters:
satzNr
- z.B. SatzTyp.of("0100") fuer Satz100 (Adressteil)- Returns:
- die entsprechende Satzart
-
getSatzarten
public Map<SatzTyp,SatzXml> getSatzarten()
Liefert die registrierten Satzarten.- Returns:
- Satzarten als Hashmap
- Since:
- 2.1.4
-
getSatzVersion
public String getSatzVersion(SatzTyp satzTyp)
Liefert die Satzversion eines registrierten Satztyps- Parameters:
satzTyp
- die Satzart- Returns:
- die Version
- Since:
- 5.0
-
getGdvRelease
public String getGdvRelease()
Liefert das Release der erzeugten Xml-Saetze- Returns:
- das Release der erzeugten XmlSaetze
-
getConfig
public Config getConfig()
Liefert die eingestellt Config zurueck.- Returns:
- eingestellte Config
- Since:
- 6.1
-
-