diff --git a/lib/src/main/java/gdv/xport/satz/Datensatz.java b/lib/src/main/java/gdv/xport/satz/Datensatz.java index 667edb5a..bcd4320c 100644 --- a/lib/src/main/java/gdv/xport/satz/Datensatz.java +++ b/lib/src/main/java/gdv/xport/satz/Datensatz.java @@ -67,134 +67,157 @@ public Datensatz() { /** * Instantiiert einen neuen Datensatz. + *

+ * TODO: Wird mit v6 entfernt. + *

* * @param satzart z.B. "0100" + * @deprecated bitte {@link Datensatz#Datensatz(SatzTyp)} verwenden */ + @Deprecated public Datensatz(final String satzart) { - super(satzart); - this.setUpTeildatensaetze(); + this(SatzTyp.of(satzart)); } /** * Instantiiert einen neuen Datensatz. + *

+ * TODO: Wird mit v6 entfernt. + *

* * @param satzart z.B. 100 + * @deprecated bitte {@link Datensatz#Datensatz(SatzTyp)} verwenden */ + @Deprecated public Datensatz(final int satzart) { - super(satzart, 1); - this.setUpTeildatensaetze(); + this(SatzTyp.of(satzart)); } /** * Instantiiert einen neuen Datensatz. + *

+ * TODO: Wird mit v6 entfernt. + *

* * @param satzart z.B. 100 * @param n Anzahl der Teildatensaetze + * @deprecated bitte {@link Datensatz#Datensatz(SatzTyp, int)} verwenden */ + @Deprecated public Datensatz(final String satzart, final int n) { - super(satzart, n); - this.setUpTeildatensaetze(); + this(SatzTyp.of(satzart), n); } /** * Instantiiert einen neuen Datensatz. + *

+ * TODO: Wird mit v6 entfernt. + *

* * @param satzart z.B. 100 * @param tdsList Liste mit den Teildatensaetzen + * @deprecated bitte {@link Datensatz#Datensatz(SatzTyp, List)} verwenden */ + @Deprecated public Datensatz(final int satzart, final List tdsList) { - this(satzart, tdsList, null); + this(SatzTyp.of(satzart), tdsList); } /** * Instantiiert einen neuen Datensatz. + *

+ * TODO: Wird mit v6 entfernt. + *

* * @param satzart z.B. 100 * @param sparte z.B. 70 (Rechtsschutz) + * @deprecated bitte {@link Datensatz#Datensatz(SatzTyp)} verwenden */ + @Deprecated public Datensatz(final int satzart, final int sparte) { - this(satzart, sparte, 1); + this(SatzTyp.of(satzart, sparte)); + } + + /** + * Instantiiert einen neuen Datensatz. + * + * @param satzTyp z.B. "0100.070" (Adressteil, Rechtsschutz) + * @since 5.0 + */ + public Datensatz(SatzTyp satzTyp) { + this(satzTyp, 1); } /** * Instantiiert einen neuen Datensatz. + *

+ * TODO: Wird mit v6 entfernt. + *

* * @param satzart z.B. 100 * @param sparte z.B. 70 (Rechtsschutz) * @param n Anzahl der Teildatensaetze + * @deprecated bitte {@link Datensatz#Datensatz(SatzTyp, int)} verwenden */ + @Deprecated public Datensatz(final int satzart, final int sparte, final int n) { - super(satzart, n); - this.setSparte(sparte); + this(SatzTyp.of(satzart, sparte), n); + } + + /** + * Instantiiert einen neuen Datensatz. + * + * @param satzTyp z.B. "0100.070" (Adressteil, Rechtsschutz) + * @param n Anzahl der Teildatensaetze + * @since 5.0 + */ + public Datensatz(SatzTyp satzTyp, final int n) { + super(satzTyp.getSatzart(), n); + if (satzTyp.hasSparte()) { + this.sparte.setInhalt(satzTyp.getSparte()); + } this.setUpTeildatensaetze(); } /** * Instantiiert einen neuen Datensatz. + *

+ * TODO: Wird mit v6 entfernt. + *

* * @param satzart z.B. 100 * @param sparte z.B. 70 (Rechtsschutz) * @param tdsList Liste mit den Teildatensaetzen + * @deprecated bitte {@link Datensatz#Datensatz(SatzTyp, List)} verwenden */ + @Deprecated public Datensatz(final int satzart, final int sparte, final List tdsList) { - this(satzart, complete(tdsList, sparte), null); + this(SatzTyp.of(satzart, sparte), tdsList); } - /** - * Instantiiert einen neuen Datensatz. - * - * @param satzNr die SatzNummer - * @param tdsList Liste mit den Teildatensaetzen - * @since 0.9 - */ - public Datensatz(final SatzTyp satzNr, final List tdsList) { - this(satzNr.getSatzart(), tdsList); - if (satzNr.hasSparte()) { - this.setSparte(satzNr.getSparte()); - } - if (satzNr.hasWagnisart() && satzNr.getWagnisart() < 10) { - this.set(Bezeichner.WAGNISART, Integer.toString(satzNr.getWagnisart())); - } - if (satzNr.hasTeildatensatzNummer()) { + /** + * Instantiiert einen neuen Datensatz. + * + * @param satzNr die SatzNummer + * @param tdsList Liste mit den Teildatensaetzen + * @since 0.9 + */ + public Datensatz(final SatzTyp satzNr, final List tdsList) { + super(satzNr.getSatzart(), tdsList, null); + if (tdsList.get(0).hasSparte()) { + this.sparte.setInhalt(tdsList.get(0).getSparte()); + } + this.completeTeildatensaetze(); + if (satzNr.hasSparte()) { + this.setSparte(satzNr.getSparte()); + } + if (satzNr.hasWagnisart() && satzNr.getWagnisart() < 10) { + this.set(Bezeichner.WAGNISART, Integer.toString(satzNr.getWagnisart())); + } + if (satzNr.hasTeildatensatzNummer()) { this.setTeildatensatzNummer("" + satzNr.getTeildatensatzNummer()); - } - this.completeTeildatensaetze(); - } - - /** - * Instantiiert einen neuen Datensatz. - * - * @param satzart z.B. 100 - * @param tdsList Liste mit den Teildatensaetzen - * @param satzVersion die Version des Satzes - */ - public Datensatz(final int satzart, - final List tdsList, - final AlphaNumFeld satzVersion) - { - super(satzart, tdsList, satzVersion); - if (tdsList.get(0) - .hasSparte()) - { - this.sparte.setInhalt(tdsList.get(0) - .getSparte()); - } - this.completeTeildatensaetze(); - } - - /** - * Instantiiert einen neuen Datensatz. - * - * @param satzart z.B. 100 - * @param sparte z.B. 70 (Rechtsschutz) - * @param tdsList Liste mit den Teildatensaetzen - * @param satzVersion die Version des Satzes - */ - public Datensatz(final int satzart, final int sparte, - final List tdsList, final AlphaNumFeld satzVersion) - { - this(satzart, complete(tdsList, sparte), satzVersion); - } + } + } /** * Dies ist der Copy-Constructor, mit dem man einen bestehenden Datensatz @@ -270,25 +293,6 @@ protected final void completeTeildatensaetze() { } } - protected static List complete(List teildatensaetze, int sparte) { - NumFeld sparteFeld = new NumFeld(Feld1bis7.SPARTE); - sparteFeld.setInhalt(sparte); - for (Teildatensatz tds : teildatensaetze) { - setUpTeildatensatz(tds, sparteFeld); - } - return teildatensaetze; - } - - /** - * Hiermit kann ein einzelner Teildatensatz aufgesetzt werden. - * - * @param n Nummer des Teildatensatzes (beginnend bei 1) - * @since 0.5 - */ - protected final void setUpTeildatensatz(final int n) { - this.setUpTeildatensatz(this.getTeildatensatz(n)); - } - /* * (non-Javadoc) * @see gdv.xport.satz.Satz#addFiller() diff --git a/lib/src/test/java/gdv/xport/satz/SatzTest.java b/lib/src/test/java/gdv/xport/satz/SatzTest.java index 79250ee5..316dc964 100644 --- a/lib/src/test/java/gdv/xport/satz/SatzTest.java +++ b/lib/src/test/java/gdv/xport/satz/SatzTest.java @@ -31,7 +31,6 @@ import gdv.xport.satz.model.SatzX; import gdv.xport.util.SatzFactory; import gdv.xport.util.SatzTyp; -import net.sf.oval.ConstraintViolation; import org.apache.commons.io.FileUtils; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -48,7 +47,7 @@ import static org.hamcrest.CoreMatchers.allOf; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.*; +import static org.hamcrest.Matchers.isEmptyString; import static org.junit.Assert.*; /** @@ -397,20 +396,6 @@ public void testIsValidWithInvalidFeld() { assertFalse(satz + " has invalid fields!", satz.isValid()); } - /** - * Bei einem unbekannten Datensatz sollte die Validierung fehlschlagen. - */ - @Test - public void testValidate() { - Satz a = new Datensatz(" 0", 1); - assertFalse("Diese Satzart gibt es nicht: " + a, a.isValid()); - List violations = a.validate(); - for (ConstraintViolation violation : violations) { - LOG.info("ConstraintViolation: " + violation); - } - assertThat(violations.size(), is(greaterThan(0))); - } - /** * Zwei gleiche Datensaetze muessen natuerlich auch den gleichen Hashcode * besitzen.