Skip to content

Commit

Permalink
Zeitpunkt um toShortString() und toLongString() ergänzt
Browse files Browse the repository at this point in the history
  • Loading branch information
Oli B committed Jan 19, 2024
1 parent 2090f84 commit bdfa623
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 31 deletions.
20 changes: 7 additions & 13 deletions lib/src/main/java/gdv/xport/satz/xml/FeldXml.java
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ public FeldXml(final XMLEventReader parser, final StartElement element) throws X
}

private FeldXml(final Properties props) {
super(new Bezeichner(props), 1, toInhalt(props), Align.LEFT);
super(new Bezeichner(props), ByteAdresse.of(1), toInhalt(props), Align.LEFT);
this.id = props.getProperty("ID");
this.datentyp = Datentyp.asValue(props.getProperty("datentyp"));
this.nachkommastellen = Integer.parseInt(props.getProperty("nachkommastellen", "0"));
Expand Down Expand Up @@ -217,12 +217,6 @@ public Feld toFeld(final int byteAddress, final FeldReferenz referenz, final Tei
* Teildatensatz eindeutig ist, sicher durch die Feld-Bezeichnung aus GDV-Online
* adressiert werden. Felder mit mehrdeutigem Namen im Teildatensatz (s.u.) koennen nur
* via ByteAdresse adressiert werden (wie bisher auch).
* </p><p>
* Eine Ausnahme ist das Feld an Position 43 in SA0220.030, TD9. Dieses Feld ist durch
* einen Kopierfehler beim GDV entstanden. Aus 'historischen' Gruenden und wg.
* Abwaertskompatibilitaet muss der technische Name hier identisch sein zu
* {@link gdv.xport.feld.Bezeichner#LFD_NUMMER_VP_PERSONENGRUPPE9}. Ergo wird hier wie
* bisher der Bezeichner aus der Referenz verwendet.
* </p>
*
* @param byteAddress die Byte-Adresse
Expand All @@ -233,12 +227,12 @@ public Feld toFeld(final int byteAddress, final FeldReferenz referenz, final Tei
*/
public Feld toFeld(final ByteAdresse byteAddress, final FeldReferenz referenz, final TeildatensatzXml tdXml) {
Bezeichner bezeichner = referenz.getBezeichner();
if ((!(tdXml.getGdvSatzartName().equals("0001") && byteAddress.intValue() >= 96)) &&
(!(tdXml.getGdvSatzartName().equals("0220.030")
&& tdXml.getSatznummer().toChar() == '9'
&& byteAddress.intValue() == 43))) {
bezeichner = new Bezeichner(referenz.getBezeichner().getName());
}
// if ((!(tdXml.getGdvSatzartName().equals("0001") && byteAddress.intValue() >= 96)) &&
// (!(tdXml.getGdvSatzartName().equals("0220.030")
// && tdXml.getSatznummer().toChar() == '9'
// && byteAddress.intValue() == 43))) {
// bezeichner = new Bezeichner(referenz.getBezeichner().getName());
// }
Feld feld = toFeld(byteAddress, bezeichner, referenz.getBemerkung());
if (!feld.getBezeichner().getTechnischerName().equalsIgnoreCase("Satzart")) {
for (int i = 2; tdXml.hasFeld(feld.getBezeichner()); i++) {
Expand Down
4 changes: 1 addition & 3 deletions lib/src/main/resources/gdv/xport/satz/xml/VUVM2023.xml
Original file line number Diff line number Diff line change
Expand Up @@ -191,7 +191,6 @@
<feldreferenz referenz="168-170-Satzart0220070-Alphanumerisch">
<name>Satzart 0220 070</name>
<technischerName>Satzart0220070</technischerName>
<auspraegung>1.4</auspraegung>
</feldreferenz>
<!-- AlphaNumFeld Satzart0210 (171-173) -->
<feldreferenz referenz="171-173-Satzart0210-Alphanumerisch">
Expand Down Expand Up @@ -737,7 +736,6 @@
<feldreferenz referenz="135-137-Satzart0220684-Alphanumerisch">
<name>Satzart 0220 684</name>
<technischerName>Satzart0220684</technischerName>
<auspraegung>1.0</auspraegung>
</feldreferenz>
<!-- AlphaNumFeld KFZWechselkennzeichenWAKZ (138-140) -->
<feldreferenz referenz="138-140-KFZWechselkennzeichenWAKZ-Alphanumerisch">
Expand Down Expand Up @@ -30875,7 +30873,7 @@
<name>Risikotext</name>
<technischerName>Risikotext</technischerName>
</feldreferenz>
<!-- AlphaNumFeld Tarifierungsmerkmal (133-134) -->
<!-- AlphaNumFeld TarifierungsmerkmalLaufzeit (133-134) -->
<feldreferenz referenz="133-134-TarifierungsmerkmalLaufzeit-Alphanumerisch">
<name>Tarifierungsmerkmal Laufzeit</name>
<technischerName>TarifierungsmerkmalLaufzeit</technischerName>
Expand Down
20 changes: 6 additions & 14 deletions lib/src/test/java/gdv/xport/satz/xml/XmlServiceTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -34,14 +34,12 @@
import org.hamcrest.collection.IsIn;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import patterntesting.runtime.junit.CollectionTester;
import patterntesting.runtime.junit.ObjectTester;

import javax.xml.stream.XMLStreamException;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.Collection;
import java.util.List;
import java.util.Map;

Expand Down Expand Up @@ -159,17 +157,6 @@ private static void setUpAndCheckSatz(SatzXml satzXml, final Satz reference) thr
ObjectTester.assertEquals(reference, satzXml);
}

private static void checkTeildatensaetze(final SatzXml satzXml, final List<Teildatensatz> reference) {
for (int i = 0; i < reference.size(); i++) {
LOG.debug("Checking Teildatensatz {}...", i+1);
checkFelder(satzXml.getTeildatensatz(i+1), reference.get(i).getFelder());
}
}

private static void checkFelder(final Teildatensatz tds, Collection<Feld> felder) {
CollectionTester.assertEquals(tds.getFelder(), felder);
}

/**
* Dies ist ein weiterer Testfall fuer Issue #33. Hierbei sollte keine
* {@link NotRegisteredException} auftauchen.
Expand Down Expand Up @@ -370,6 +357,11 @@ public void testGetInstanceURI() throws URISyntaxException, XMLStreamException,
assertNotNull(instance);
}

@Test
public void testVUVM2023() throws XMLStreamException, IOException {
compareXml("VUVM2023xL.xml", "VUVM2023.xml");
}

@Test
public void testVUVM2018() throws XMLStreamException, IOException {
compareXml("VUVM2018xL.xml", "VUVM2018.xml");
Expand All @@ -396,7 +388,7 @@ private static void compareXml(String refResource, String resource) throws XMLSt
assertEquals(refService.getGdvRelease(), service.getGdvRelease());
for (Map.Entry<SatzTyp, SatzXml> entry : refService.getSatzarten().entrySet()) {
SatzXml satz = service.getSatzart(entry.getKey());
assertEquals(entry.getValue().toLongString(), satz.toLongString());
assertEquals(entry.getValue().toLongString(), satz.toLongString(), "Satztyp " + entry.getKey());
}
}

Expand Down
7 changes: 6 additions & 1 deletion lib/src/test/java/gdv/xport/util/GdvXmlFormatterTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -143,8 +143,13 @@ public void testWriteDatensatz() throws IOException, XMLStreamException {

@Test
public void testFormatAllSupportedSaetze() throws IOException, XMLStreamException {
formatDatenpaket("VUVM2023.xml", "datenpaket2023.xml");
formatDatenpaket("VUVM2023xL.xml", "datenpaket2023xL.xml");
}

@Test
public void testFormatAllSupportedSaetze2018() throws IOException, XMLStreamException {
formatDatenpaket("VUVM2018.xml", "datenpaket2018.xml");
formatDatenpaket("VUVM2018xL.xml", "datenpaket2018xL.xml");
}

@Test
Expand Down

0 comments on commit bdfa623

Please sign in to comment.