diff --git a/lib/src/main/java/gdv/xport/feld/Version.java b/lib/src/main/java/gdv/xport/feld/Version.java index 8be56faa..9c75e98a 100644 --- a/lib/src/main/java/gdv/xport/feld/Version.java +++ b/lib/src/main/java/gdv/xport/feld/Version.java @@ -37,50 +37,51 @@ public class Version extends Feld { private static final Map MAPPING = new HashMap<>(); static { - MAPPING.put(Bezeichner.of("Allgemeine Antragsdaten 0202"), SatzTyp.of("0202")); - MAPPING.put(Bezeichner.of("Satzart 0210"), SatzTyp.of("0210.080")); - MAPPING.put(Bezeichner.of("Satzart 0220"), SatzTyp.of("0220.080")); - MAPPING.put(Bezeichner.of("Satzart 0211"), SatzTyp.of("0211.080")); - MAPPING.put(Bezeichner.of("Satzart 0221"), SatzTyp.of("0221.080")); - MAPPING.put(Bezeichner.of("Satzart 02102"), SatzTyp.of("0210.170")); - MAPPING.put(Bezeichner.of("Satzart 02202"), SatzTyp.of("0220.170")); - MAPPING.put(Bezeichner.of("Satzart 02112"), SatzTyp.of("0211.170")); - MAPPING.put(Bezeichner.of("Satzart 02212"), SatzTyp.of("0221.170")); - MAPPING.put(Bezeichner.of("Satzart 02103"), SatzTyp.of("0210.190")); - MAPPING.put(Bezeichner.of("Satzart 02203"), SatzTyp.of("0220.190")); - MAPPING.put(Bezeichner.of("Satzart 02113"), SatzTyp.of("0211.190")); - MAPPING.put(Bezeichner.of("Satzart 02213"), SatzTyp.of("0221.190")); - MAPPING.put(Bezeichner.of("Satzart 02104"), SatzTyp.of("0210.000")); - MAPPING.put(Bezeichner.of("Satzart 02204"), SatzTyp.of("0220.000")); - MAPPING.put(Bezeichner.of("Satzart 02214"), SatzTyp.of("0221.000")); - MAPPING.put(Bezeichner.of("Satzart 02114"), SatzTyp.of("0211.000")); - MAPPING.put(Bezeichner.of("Kfz-Baustein"), SatzTyp.of("0220.055")); - MAPPING.put(Bezeichner.of("Satzart 0212"), SatzTyp.of("0212.050")); - MAPPING.put(Bezeichner.of("Leben/Rente-Leistungsarten"), SatzTyp.of("0225.010")); - MAPPING.put(Bezeichner.of("Fondsdatensatz - Leben 0230"), SatzTyp.of("0230.010")); - MAPPING.put(Bezeichner.of("Unfallspezifische Antragsdaten 0222"), SatzTyp.of("0222.030")); - MAPPING.put(Bezeichner.of("Unfall Leistungsarten 0230"), SatzTyp.of("0230.030")); - MAPPING.put(Bezeichner.of("KFZ - Wechselkennzeichen W-AKZ"), SatzTyp.of("0230.050")); - MAPPING.put(new Bezeichner("Verbundene Geb\u00e4ude - Versicherte Sachen und Kosten", "VerbundeneGebaeudeVersicherteSachenUndKosten"), SatzTyp.of("230.140")); - MAPPING.put(Bezeichner.of("Satzart 0250 Einzelanmeldung"), SatzTyp.of("0250.190")); - MAPPING.put(Bezeichner.of("Satzart 0251 Einzelanmeldung"), SatzTyp.of("0251.190")); - MAPPING.put(Bezeichner.of("Satzart 0260 Umsatzanmeldung"), SatzTyp.of("0260.190")); - MAPPING.put(Bezeichner.of("Begleitdokumente und Signaturen 0342"), SatzTyp.of("0342")); - MAPPING.put(Bezeichner.of("Beteiligungs-Informationssatz Satzart 0300"), SatzTyp.of("0300")); - MAPPING.put(Bezeichner.of("Klausel-Datensatz Satzart 0350"), SatzTyp.of("0350")); - MAPPING.put(Bezeichner.of("Produktspezifische Antragsdaten 0372"), SatzTyp.of("0372")); - MAPPING.put(new Bezeichner("Rabatte und Zuschl\u00e4ge 0390", "RabatteundZuschlaege0390"), SatzTyp.of("0390")); - MAPPING.put(new Bezeichner("eVB-Nummer 0392", "eVBNummer0392"), SatzTyp.of("0392")); - MAPPING.put(Bezeichner.of("Allgemeine Inkasso-Daten Satzart 0400"), SatzTyp.of("0400")); - MAPPING.put(Bezeichner.of("Inkasso Teilsparte Satzart 0410"), SatzTyp.of("0410")); - MAPPING.put(Bezeichner.of("Allgemeine Inkasso-Daten Satzart 0430"), SatzTyp.of("0430")); - MAPPING.put(new Bezeichner("Schadeninformationssatz Satzart 0500", "Schadeninformationssatzsatzart0500"), SatzTyp.of("0500")); - MAPPING.put(new Bezeichner("Versicherungsteuerabrechnungssatz gem\u00e4\u00df EG-Richtlinie Satzart 0420", "VerssteuerabrechnungssatzGemaessEgRichtliniesatzart0420"), SatzTyp.of("0420")); - MAPPING.put(Bezeichner.of("Inkasso Abrechnungssatz Transport Satzart 0450"), SatzTyp.of("0450")); - MAPPING.put(new Bezeichner("Schadenabrechnungssatz Satzart 0550", "Schadenabrechnungssatzsatzart0550"), SatzTyp.of("0550")); - MAPPING.put(new Bezeichner("Produktspezifische Stammdaten 0600", "ProduktspezifischeStammdaten"), SatzTyp.of("0600")); - MAPPING.put(Bezeichner.of("MIME-Datei 9951"), SatzTyp.of("9951")); - MAPPING.put(new Bezeichner("Nachsatz Satzart 9999", "Nachsatzsatzart9999"), SatzTyp.of("9999")); + MAPPING.put(new Bezeichner("Allgemeine Antragsdaten 0202", "AllgemeineAntragsdaten0202", "Satzart0202"), SatzTyp.of("0202")); + MAPPING.put(new Bezeichner("Satzart 0210", "Satzart0210", "Satzart0210080"), SatzTyp.of("0210.080")); + MAPPING.put(new Bezeichner("Satzart 0220", "Satzart0220", "Satzart0220080"), SatzTyp.of("0220.080")); + MAPPING.put(new Bezeichner("Satzart 0211", "Satzart0211", "Satzart0211080"), SatzTyp.of("0211.080")); + MAPPING.put(new Bezeichner("Satzart 0221", "Satzart0221", "Satzart0221080"), SatzTyp.of("0221.080")); + MAPPING.put(new Bezeichner("Satzart 02102", "Satzart02102", "Satzart0210170"), SatzTyp.of("0210.170")); + MAPPING.put(new Bezeichner("Satzart 02202", "Satzart02202", "Satzart0220170"), SatzTyp.of("0220.170")); + MAPPING.put(new Bezeichner("Satzart 02112", "Satzart02112", "Satzart0211170"), SatzTyp.of("0211.170")); + MAPPING.put(new Bezeichner("Satzart 02212", "Satzart02212", "Satzart0221170"), SatzTyp.of("0221.170")); + MAPPING.put(new Bezeichner("Satzart 02103", "Satzart02103", "Satzart0210190"), SatzTyp.of("0210.190")); + MAPPING.put(new Bezeichner("Satzart 02203", "Satzart02203", "Satzart0220190"), SatzTyp.of("0220.190")); + MAPPING.put(new Bezeichner("Satzart 02113", "Satzart02113", "Satzart0211190"), SatzTyp.of("0211.190")); + MAPPING.put(new Bezeichner("Satzart 02213", "Satzart02213", "Satzart0221190"), SatzTyp.of("0221.190")); + MAPPING.put(new Bezeichner("Satzart 02104", "Satzart02104", "Satzart0210000"), SatzTyp.of("0210.000")); + MAPPING.put(new Bezeichner("Satzart 02204", "Satzart02204", "Satzart0220000"), SatzTyp.of("0220.000")); + MAPPING.put(new Bezeichner("Satzart 02214", "Satzart02214", "Satzart0221000"), SatzTyp.of("0221.000")); + MAPPING.put(new Bezeichner("Satzart 02114", "Satzart02114", "Satzart0211000"), SatzTyp.of("0211.000")); + MAPPING.put(new Bezeichner("Satzart 0220 010", "Satzart0220010"), SatzTyp.of("0220.010.0")); + MAPPING.put(new Bezeichner("Kfz-Baustein", "KfzBaustein", "Satzart0220055"), SatzTyp.of("0220.055")); + MAPPING.put(new Bezeichner("Satzart 0212", "Satzart0212", "Satzart0212050"), SatzTyp.of("0212.050")); + MAPPING.put(new Bezeichner("Leben/Rente-Leistungsarten", "LebenRenteLeistungsarten", "Satzart0225010"), SatzTyp.of("0225.010")); + MAPPING.put(new Bezeichner("Fondsdatensatz - Leben 0230", "FondsdatensatzLeben0230", "Satzart0230010"), SatzTyp.of("0230.010")); + MAPPING.put(new Bezeichner("Unfallspezifische Antragsdaten 0222", "UnfallspezifischeAntragsdaten0222", "Satzart0222030"), SatzTyp.of("0222.030")); + MAPPING.put(new Bezeichner("Unfall Leistungsarten 0230", "UnfallLeistungsarten0230", "Satzart0230030"), SatzTyp.of("0230.030")); + MAPPING.put(new Bezeichner("KFZ - Wechselkennzeichen W-AKZ", "KFZWechselkennzeichenWAKZ", "Satzart0230050"), SatzTyp.of("0230.050")); + MAPPING.put(new Bezeichner("Verbundene Geb\u00e4ude - Versicherte Sachen und Kosten", "VerbundeneGebaeudeVersicherteSachenUndKosten", "Satzart0230140"), SatzTyp.of("0230.140")); + MAPPING.put(new Bezeichner("Satzart 0250 Einzelanmeldung", "Satzart0250Einzelanmeldung", "Satzart0250190"), SatzTyp.of("0250.190")); + MAPPING.put(new Bezeichner("Satzart 0251 Einzelanmeldung", "Satzart0251Einzelanmeldung", "Satzart0251190"), SatzTyp.of("0251.190")); + MAPPING.put(new Bezeichner("Satzart 0260 Umsatzanmeldung", "Satzart0260Umsatzanmeldung", "Satzart0260190"), SatzTyp.of("0260.190")); + MAPPING.put(new Bezeichner("Begleitdokumente und Signaturen 0342", "BegleitdokumenteundSignaturen0342", "Satzart0342"), SatzTyp.of("0342")); + MAPPING.put(new Bezeichner("Beteiligungs-Informationssatz Satzart 0300", "BeteiligungsInformationssatzSatzart0300", "Satzart0300"), SatzTyp.of("0300")); + MAPPING.put(new Bezeichner("Klausel-Datensatz Satzart 0350", "KlauselDatensatzSatzart0350", "Satzart0350"), SatzTyp.of("0350")); + MAPPING.put(new Bezeichner("Produktspezifische Antragsdaten 0372", "ProduktspezifischeAntragsdaten0372", "Satzart0372"), SatzTyp.of("0372")); + MAPPING.put(new Bezeichner("Rabatte und Zuschl\u00e4ge 0390", "RabatteundZuschlaege0390", "Satzart0390"), SatzTyp.of("0390")); + MAPPING.put(new Bezeichner("eVB-Nummer 0392", "eVBNummer0392", "Satzart0392"), SatzTyp.of("0392")); + MAPPING.put(new Bezeichner("Allgemeine Inkasso-Daten Satzart 0400", "AllgemeineInkassoDatenSatzart0400", "Satzart0400"), SatzTyp.of("0400")); + MAPPING.put(new Bezeichner("Inkasso Teilsparte Satzart 0410", "InkassoTeilsparteSatzart0410", "Satzart0410"), SatzTyp.of("0410")); + MAPPING.put(new Bezeichner("Allgemeine Inkasso-Daten Satzart 0430", "AllgemeineInkassoDatenSatzart0430", "Satzart0430"), SatzTyp.of("0430")); + MAPPING.put(new Bezeichner("Schadeninformationssatz Satzart 0500", "Schadeninformationssatzsatzart0500", "Satzart0500"), SatzTyp.of("0500")); + MAPPING.put(new Bezeichner("Versicherungsteuerabrechnungssatz gem\u00e4\u00df EG-Richtlinie Satzart 0420", "VerssteuerabrechnungssatzGemaessEgRichtliniesatzart0420", "Satzart0420"), SatzTyp.of("0420")); + MAPPING.put(new Bezeichner("Inkasso Abrechnungssatz Transport Satzart 0450", "InkassoAbrechnungssatzTransportSatzart0450", "Satzart0450"), SatzTyp.of("0450")); + MAPPING.put(new Bezeichner("Schadenabrechnungssatz Satzart 0550", "Schadenabrechnungssatzsatzart0550", "Satzart0550"), SatzTyp.of("0550")); + MAPPING.put(new Bezeichner("Produktspezifische Stammdaten 0600", "ProduktspezifischeStammdaten", "Satzart0600"), SatzTyp.of("0600")); + MAPPING.put(new Bezeichner("MIME-Datei 9951", "MIMEDatei9951", "Satzart9951"), SatzTyp.of("9951")); + MAPPING.put(new Bezeichner("Nachsatz Satzart 9999", "Nachsatzsatzart9999", "Satzart9999"), SatzTyp.of("9999")); } /** @@ -128,12 +129,16 @@ public Version(final String name, final int start, final String v) { } public static Version of(SatzTyp satzTyp) { + String s = satzTyp.toString(); + if ((s.length() > 8) && !s.endsWith(".0")) { + return of(SatzTyp.of(s.substring(0, 8))); + } for (Map.Entry entry : MAPPING.entrySet()) { if (satzTyp.equals(entry.getValue())) { return new Version(entry.getKey(), 1); } } - String name = "Satzart " + satzTyp.toString().replace('.', ' '); + String name = "Satzart " + satzTyp; return new Version(Bezeichner.of(name), 1); } diff --git a/lib/src/main/java/gdv/xport/satz/Vorsatz.java b/lib/src/main/java/gdv/xport/satz/Vorsatz.java index 948160c1..0c73abab 100644 --- a/lib/src/main/java/gdv/xport/satz/Vorsatz.java +++ b/lib/src/main/java/gdv/xport/satz/Vorsatz.java @@ -24,7 +24,6 @@ import gdv.xport.util.SatzRegistry; import gdv.xport.util.SatzTyp; import gdv.xport.util.VersionHandler; -import org.apache.commons.lang3.StringUtils; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -302,27 +301,11 @@ public String getVersion(SatzTyp satzTyp) { */ @JsonIgnore public void setVersion(Satz satz) { - StringBuilder buf = new StringBuilder(); - String[] parts = StringUtils.split(satz.getSatzTyp() - .toString(), '.'); - - buf.append("Satzart"); - buf.append(parts[0]); - - if (parts.length > 1) - buf.append(parts[1]); - - Bezeichner bezeichner = Bezeichner.of(buf.toString()); - - if (this.hasFeld(bezeichner)) { - this.setFeld(bezeichner, satz.getSatzversion().getInhalt()); + Version v = Version.of(satz.getSatzTyp()); + if (this.hasFeld(v.getBezeichner())) { + this.setFeld(v.getBezeichner(), satz.getSatzversion().getInhalt()); } else { - Version version = Version.of(satz.getSatzTyp()); - if (this.hasFeld(version.getBezeichner())) { - this.setFeld(version.getBezeichner(), satz.getSatzversion().getInhalt()); - } else { - LOG.warn("Version Satzart {} ist im Vorsatz unbekannt.", satz.getSatzTyp()); - } + LOG.warn("Version Satzart {} ist im Vorsatz unbekannt.", satz.getSatzTyp()); } } @@ -332,21 +315,11 @@ public void setVersion(Satz satz) { * @param satzTyp der Satztyp */ public void setVersion(SatzTyp satzTyp) { - StringBuilder buf = new StringBuilder(); - String[] parts = StringUtils.split(satzTyp.toString(), '.'); - - buf.append("Satzart"); - buf.append(parts[0]); - - if (parts.length > 1) - buf.append(parts[1]); - - Bezeichner bezeichner = Bezeichner.of(buf.toString()); - - if (this.hasFeld(bezeichner)) { - this.setFeld(bezeichner, versionHandler.getVersionOf(satzTyp)); + Version v = Version.of(satzTyp); + if (this.hasFeld(v.getBezeichner())) { + this.setFeld(v.getBezeichner(), versionHandler.getVersionOf(satzTyp)); } else { - throw new IllegalArgumentException("Version Satzart " + bezeichner + " unbekannt"); + throw new IllegalArgumentException("Version Satzart " + v.getBezeichner() + " unbekannt"); } }