Skip to content

Commit

Permalink
XML-Beschreibung für Vorsatz muss nicht mehr manuell angepasst werden
Browse files Browse the repository at this point in the history
  • Loading branch information
Oli B committed Dec 19, 2023
1 parent 50d0f85 commit c9c2e52
Show file tree
Hide file tree
Showing 5 changed files with 67 additions and 27 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ Aus Gründen der Übersichtlichkeit sind bei älteren Versionen die einzelnen Pa

### Fixed

- XML-Dateien (z.B. VUVM2023.xml) des GDV müssen nicht mehr manuell angepasst werden
- Downgrade HSQLDB-Treiber auf 2.6.1 wegen Java-8-Kompatibilität


Expand Down
48 changes: 24 additions & 24 deletions lib/src/main/java/gdv/xport/feld/Bezeichner.java
Original file line number Diff line number Diff line change
Expand Up @@ -926,7 +926,7 @@ public final class Bezeichner implements Serializable {
public static final Bezeichner SATZART_0001 = new Bezeichner("Satzart 0001");
public static final Bezeichner SATZART_0100 = new Bezeichner("Satzart 0100");
public static final Bezeichner SATZART_0200 = new Bezeichner("Satzart 0200");
public static final Bezeichner SATZART_0202_ALLG_ANTRAGSDATEN = new Bezeichner("Allgemeine Antragsdaten 0202", "AllgemeineAntragsdaten0202", "Satzart0202");
public static final Bezeichner SATZART_0202_ALLG_ANTRAGSDATEN = new Bezeichner("Allgemeine Antragsdaten 0202", "Satzart0202", "AllgemeineAntragsdaten0202");
public static final Bezeichner SATZART_0210_050 = new Bezeichner("Satzart 0210.050");
public static final Bezeichner SATZART_0220_051 = new Bezeichner("Satzart 0220.051");
public static final Bezeichner SATZART_0220_052 = new Bezeichner("Satzart 0220.052");
Expand Down Expand Up @@ -961,18 +961,18 @@ public final class Bezeichner implements Serializable {
public static final Bezeichner SATZART_0210_TECH_VERS = new Bezeichner("Satzart 0210.170", "Satzart02102", "Satzart0210170");
public static final Bezeichner SATZART_0220_NICHT_DEF_SPARTEN = new Bezeichner("Satzart 0220.000", "Satzart02204", "Satzart0220000");
public static final Bezeichner SATZART_0220_TECH_VERS = new Bezeichner("Satzart 0220.170", "Satzart02202", "Satzart0220170");
public static final Bezeichner SATZART_0220_055 = new Bezeichner("Satzart 0220.055", "KfzBaustein", "Satzart0220055");
public static final Bezeichner SATZART_0300_BETEILIGUNGSINFORMATION = new Bezeichner("Satzart 0300", "BeteiligungsInformationssatzSatzart0300", "Satzart0300");
public static final Bezeichner SATZART_0342_BEGLEITDOK = new Bezeichner("Satzart 0342", "BegleitdokumenteundSignaturen0342", "Satzart0342");
public static final Bezeichner SATZART_0220_055 = new Bezeichner("Satzart 0220.055", "Satzart0220055", "KfzBaustein");
public static final Bezeichner SATZART_0300_BETEILIGUNGSINFORMATION = new Bezeichner("Satzart 0300", "Satzart0300", "BeteiligungsInformationssatzSatzart0300");
public static final Bezeichner SATZART_0342_BEGLEITDOK = new Bezeichner("Satzart 0342", "Satzart0342", "BegleitdokumenteundSignaturen0342");
public static final Bezeichner SATZART_0372_PRODUKT_SPEZIFISCHE_ANTRAGSDATEN = new Bezeichner("Satzart 0372");
public static final Bezeichner SATZART_0400_INKASSO = new Bezeichner("Satzart 0400", "AllgemeineInkassoDatenSatzart0400", "Satzart0400");
public static final Bezeichner SATZART_0410_INKASSO = new Bezeichner("Satzart 0410", "InkassoTeilsparteSatzart0410", "Satzart0410");
public static final Bezeichner SATZART_0430_INKASSO = new Bezeichner("Satzart 0430", "AllgemeineInkassoDatenSatzart0430", "Satzart0430");
public static final Bezeichner SATZART_0500_SCHADENINFORMATION = new Bezeichner("Satzart 0500", "Schadeninformationssatzsatzart0500", "Satzart0500");
public static final Bezeichner SATZART_0420_VERSICHERUNGSTEUERABRECHNUNG = new Bezeichner("Satzart 0420", "VerssteuerabrechnungssatzGemaessEgRichtliniesatzart0420", "Satzart0420");
public static final Bezeichner SATZART_0450_INKASSOABRECHNUNG = new Bezeichner("Satzart 0450", "InkassoAbrechnungssatzTransportSatzart0450", "Satzart0450");
public static final Bezeichner SATZART_0550_SCHADENABRECHNUNG = new Bezeichner("Satzart 0550", "Schadenabrechnungssatzsatzart0550", "Satzart0550");
public static final Bezeichner SATZART_0350_KLAUSELN = new Bezeichner("Satzart 0350", "KlauselDatensatzSatzart0350", "Satzart0350");
public static final Bezeichner SATZART_0400_INKASSO = new Bezeichner("Satzart 0400", "Satzart0400", "AllgemeineInkassoDatenSatzart0400");
public static final Bezeichner SATZART_0410_INKASSO = new Bezeichner("Satzart 0410", "Satzart0410", "InkassoTeilsparteSatzart0410");
public static final Bezeichner SATZART_0430_INKASSO = new Bezeichner("Satzart 0430", "Satzart0430", "AllgemeineInkassoDatenSatzart0430");
public static final Bezeichner SATZART_0500_SCHADENINFORMATION = new Bezeichner("Satzart 0500", "Satzart0500", "Schadeninformationssatzsatzart0500");
public static final Bezeichner SATZART_0420_VERSICHERUNGSTEUERABRECHNUNG = new Bezeichner("Satzart 0420", "Satzart0420", "VerssteuerabrechnungssatzGemaessEgRichtliniesatzart0420");
public static final Bezeichner SATZART_0450_INKASSOABRECHNUNG = new Bezeichner("Satzart 0450", "Satzart0450", "InkassoAbrechnungssatzTransportSatzart0450");
public static final Bezeichner SATZART_0550_SCHADENABRECHNUNG = new Bezeichner("Satzart 0550", "Satzart0550", "Schadenabrechnungssatzsatzart0550");
public static final Bezeichner SATZART_0350_KLAUSELN = new Bezeichner("Satzart 0350", "Satzart0350", "KlauselDatensatzSatzart0350");
public static final Bezeichner SATZART_0211_050 = new Bezeichner("Satzart 0211.050");
public static final Bezeichner SATZART_0221_051 = new Bezeichner("Satzart 0221.051");
public static final Bezeichner SATZART_0221_052 = new Bezeichner("Satzart 0221.052");
Expand All @@ -997,13 +997,13 @@ public final class Bezeichner implements Serializable {
public static final Bezeichner SATZART_0221_510 = new Bezeichner("Satzart 0221.510");
public static final Bezeichner SATZART_0211_TRANSPORT = new Bezeichner("Satzart 0211.190", "Satzart02113", "Satzart0211190");
public static final Bezeichner SATZART_0221_TRANSPORT = new Bezeichner("Satzart 0221.190", "Satzart02213", "Satzart0221190");
public static final Bezeichner SATZART_0222 = new Bezeichner("Satzart 0222.030", "UnfallspezifischeAntragsdaten0222", "Satzart0222030");
public static final Bezeichner SATZART_0225_LEBEN = new Bezeichner("Satzart 0225.010", "LebenRenteLeistungsarten", "Satzart0225010");
public static final Bezeichner SATZART_0230_LEBEN = new Bezeichner("Satzart 0230.010", "FondsdatensatzLeben0230", "Satzart0230010");
public static final Bezeichner SATZART_0230_UNFALL = new Bezeichner("Satzart 0230.030", "UnfallLeistungsarten0230", "Satzart0230030");
public static final Bezeichner SATZART_0230_KFZ_WECHSEL_AKZ = new Bezeichner("Satzart 0230.050", "KFZWechselkennzeichenWAKZ", "Satzart0230050");
public static final Bezeichner SATZART_0230_GEBAEUDE = new Bezeichner("Satzart 0230.140", "VerbundeneGebaeudeVersicherteSachenUndKosten", "Satzart0230140");
public static final Bezeichner SATZART_0251_TRANSPORT = new Bezeichner("Satzart 0251.190", "Satzart0251Einzelanmeldung", "Satzart0251190");
public static final Bezeichner SATZART_0222 = new Bezeichner("Satzart 0222.030", "Satzart0222030", "UnfallspezifischeAntragsdaten0222");
public static final Bezeichner SATZART_0225_LEBEN = new Bezeichner("Satzart 0225.010", "Satzart0225010", "LebenRenteLeistungsarten");
public static final Bezeichner SATZART_0230_LEBEN = new Bezeichner("Satzart 0230.010", "Satzart0230010", "FondsdatensatzLeben0230");
public static final Bezeichner SATZART_0230_UNFALL = new Bezeichner("Satzart 0230.030", "Satzart0230030", "UnfallLeistungsarten0230");
public static final Bezeichner SATZART_0230_KFZ_WECHSEL_AKZ = new Bezeichner("Satzart 0230.050", "Satzart0230050", "KFZWechselkennzeichenWAKZ");
public static final Bezeichner SATZART_0230_GEBAEUDE = new Bezeichner("Satzart 0230.140", "Satzart0230140", "VerbundeneGebaeudeVersicherteSachenUndKosten");
public static final Bezeichner SATZART_0251_TRANSPORT = new Bezeichner("Satzart 0251.190", "Satzart0251190", "Satzart0251Einzelanmeldung");
public static final Bezeichner SATZART_0211_NICHT_DEF_SPARTEN = new Bezeichner("Satzart 0211.000", "Satzart02114", "Satzart0211000");
public static final Bezeichner SATZART_0211_TECH_VERS = new Bezeichner("Satzart 0211.170", "Satzart02112", "Satzart0211170");
public static final Bezeichner SATZART_0221_NICHT_DEF_SPARTEN = new Bezeichner("Satzart 0221.000", "Satzart02214", "Satzart0221000");
Expand All @@ -1027,17 +1027,17 @@ public final class Bezeichner implements Serializable {
public static final Bezeichner SATZART_0352 = new Bezeichner("Satzart 0352");
public static final Bezeichner SATZART_0362 = new Bezeichner("Satzart 0362");
public static final Bezeichner SATZART_0382 = new Bezeichner("Satzart 0382");
public static final Bezeichner SATZART_0390_RABATTE = new Bezeichner("Satzart 0390", "RabatteundZuschlaege0390", "Satzart0390");
public static final Bezeichner SATZART_0392_EVB = new Bezeichner("Satzart 0392", "eVBNummer0392", "Satzart0392");
public static final Bezeichner SATZART_0390_RABATTE = new Bezeichner("Satzart 0390", "Satzart0390", "RabatteundZuschlaege0390");
public static final Bezeichner SATZART_0392_EVB = new Bezeichner("Satzart 0392", "Satzart0392", "eVBNummer0392");
public static final Bezeichner SATZART_9950 = new Bezeichner("Satzart 9950");
public static final Bezeichner SATZART_9951_MIME = new Bezeichner("Satzart 9951", "MIMEDatei9951", "Satzart9951");
public static final Bezeichner SATZART_9951_MIME = new Bezeichner("Satzart 9951", "Satzart9951", "MIMEDatei9951");
public static final Bezeichner SATZART_9952 = new Bezeichner("Satzart 9952");
public static final Bezeichner SATZART_0210_580 = new Bezeichner("Satzart 0210.580");
public static final Bezeichner SATZART_0210_684 = new Bezeichner("Satzart 0210.684");
public static final Bezeichner SATZART_0220_580 = new Bezeichner("Satzart 0220.580");
public static final Bezeichner SATZART_0220_684 = new Bezeichner("Satzart 0220.684");
public static final Bezeichner SATZART_0372 = new Bezeichner("Satzart 0372", "ProduktspezifischeAntragsdaten0372", "Satzart0372");
public static final Bezeichner SATZART_0600 = new Bezeichner("Satzart 0600", "ProduktspezifischeStammdaten", "Satzart0600");
public static final Bezeichner SATZART_0372 = new Bezeichner("Satzart 0372", "Satzart0372", "ProduktspezifischeAntragsdaten0372");
public static final Bezeichner SATZART_0600 = new Bezeichner("Satzart 0600", "Satzart0600", "ProduktspezifischeStammdaten");
public static final Bezeichner SATZ_NR_1 = new Bezeichner("Satznummer1", "SatzNr1", "SatzNr", "Satznummer");
public static final Bezeichner SATZ_NR_2 = new Bezeichner("Satznummer2", "SatzNr2");
public static final Bezeichner SATZ_NR_3 = new Bezeichner("Satznummer3", "SatzNr3");
Expand Down
23 changes: 23 additions & 0 deletions lib/src/main/java/gdv/xport/feld/Version.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@

import java.util.HashMap;
import java.util.Map;
import java.util.Optional;

/**
* Versions-Feld.
Expand Down Expand Up @@ -158,6 +159,10 @@ public SatzTyp getSatzTyp() {
}

private static SatzTyp getSatzTypFrom(Bezeichner b) {
Optional<SatzTyp> satzTyp = getMappedSatzTyp(b);
if (satzTyp.isPresent()) {
return satzTyp.get();
}
StringBuilder bufSatzTyp = new StringBuilder();
String typ = b.getTechnischerName().replaceAll("[a-zA-Z]", "");
bufSatzTyp.append(typ, 0, 4);
Expand All @@ -170,4 +175,22 @@ private static SatzTyp getSatzTypFrom(Bezeichner b) {
return SatzTyp.of(bufSatzTyp.toString());
}

private static Optional<SatzTyp> getMappedSatzTyp(Bezeichner bezeichner) {
for (Map.Entry<Bezeichner, SatzTyp> entry : MAPPING.entrySet()) {
if (entry.getKey().getVariants().contains(bezeichner)) {
return Optional.of(entry.getValue());
}
}
return Optional.empty();
}

public static boolean isVersionBezeichner(Bezeichner bezeichner) {
if (bezeichner.getTechnischerName().toLowerCase().contains("satzart")
&& !bezeichner.equals(Bezeichner.SATZART)) {
return true;
} else {
return getMappedSatzTyp(bezeichner).isPresent();
}
}

}
3 changes: 1 addition & 2 deletions lib/src/main/java/gdv/xport/satz/Vorsatz.java
Original file line number Diff line number Diff line change
Expand Up @@ -367,8 +367,7 @@ public void setVersion(int art, int sparte, String version) {
public Map<SatzTyp, Version> getSatzartVersionen() {
Map<SatzTyp, Version> versionen = new HashMap<>();
for (Feld f : getFelder()) {
if (!f.isEmpty() && f.getBezeichner().getTechnischerName().toLowerCase().contains("satzart")
&& !f.getBezeichner().equals(Bezeichner.SATZART)) {
if (!f.isEmpty() && Version.isVersionBezeichner(f.getBezeichner())) {
Version v = new Version(f);
switch (f.getBezeichner().getTechnischerName()) {
case "Satzart0220020":
Expand Down
19 changes: 18 additions & 1 deletion lib/src/test/java/gdv/xport/feld/VersionTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@
import org.junit.Test;

import static org.junit.Assert.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;

/**
* Unit-Tests fuer {@link Version}-Klasse.
Expand Down Expand Up @@ -89,7 +91,22 @@ public void testOf() {
@Test
public void testOfRente() {
Version rente = Version.of(SatzTyp.of("0225.010"));
assertEquals("LebenRenteLeistungsarten", rente.getBezeichner().getTechnischerName());
assertEquals(Bezeichner.SATZART_0225_LEBEN, rente.getBezeichner());
}

@Test
public void isVersionBezeichner() {
assertTrue(Version.isVersionBezeichner(Bezeichner.SATZART_0001));
}

@Test
public void isVersionSatzart() {
assertFalse(Version.isVersionBezeichner(Bezeichner.SATZART));
}

@Test
public void isVersionKfzBaustein() {
assertTrue(Version.isVersionBezeichner(Bezeichner.of("Kfz-Baustein")));
}

}

0 comments on commit c9c2e52

Please sign in to comment.