Skip to content

Commit

Permalink
getSparte() stützt sich jetzt auf ByteAdresse 11 ab
Browse files Browse the repository at this point in the history
  • Loading branch information
Oli B committed Mar 15, 2024
1 parent 1603445 commit 4a324a3
Show file tree
Hide file tree
Showing 5 changed files with 78 additions and 14 deletions.
16 changes: 11 additions & 5 deletions lib/src/main/java/gdv/xport/feld/ByteAdresse.java
Original file line number Diff line number Diff line change
Expand Up @@ -83,10 +83,16 @@ public String toString() {

@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
ByteAdresse that = (ByteAdresse) o;
return adresse == that.adresse;
if (o instanceof ByteAdresse) {
ByteAdresse that = (ByteAdresse) o;
return adresse == that.adresse;
} else if (o instanceof Integer) {
return intValue() == (Integer) o;
} else if (o instanceof Long) {
return longValue() == (Long) o;
} else {
return false;
}
}

@Override
Expand All @@ -107,7 +113,7 @@ public static class Validator implements SimpleValidator<Integer> {
@Override
public Integer validate(Integer n) {
if ((n < 1) || (n > 256)) {
throw new InvalidValueException(n, "Adresse", Range.between(1, 256));
throw new InvalidValueException(n, "Adresse", Range.of(1, 256));
}
return n;
}
Expand Down
37 changes: 28 additions & 9 deletions lib/src/main/java/gdv/xport/satz/Satz.java
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
import java.lang.reflect.Constructor;
import java.util.*;

import static gdv.xport.feld.Bezeichner.BEZEICHNUNG_PERSONENGRUPPE;
import static gdv.xport.feld.Bezeichner.SATZART;

/**
Expand Down Expand Up @@ -544,7 +545,22 @@ public boolean hasFeld(final Bezeichner bezeichner) {
return false;
}

/**
/**
* Fraegt ab, ob das entsprechende Feld vorhanden ist.
*
* @param adresse gewuenschter Bezeichner des Feldes
* @return true / false
*/
public boolean hasFeld(final ByteAdresse adresse) {
for (Teildatensatz tds : teildatensatz) {
if (tds.hasFeld(adresse)) {
return true;
}
}
return false;
}

/**
* Liefert das gewuenschte Feld.
*
* @param bezeichner gewuenschter Bezeichner des Feldes
Expand Down Expand Up @@ -734,10 +750,14 @@ public SatzTyp getSatzTyp() {
* @return true, falls Sparten-Feld vorhanden ist
* @since 0.9
*/
public boolean hasSparte()
{
return hasFeld(Bezeichner.of(Kopffelder1bis7.SPARTE.getBezeichnung()));
}
public boolean hasSparte() {
ByteAdresse adresseSparte = ByteAdresse.of(11);
if (hasFeld(adresseSparte)) {
return getFeld(adresseSparte).getBezeichner().equals(Bezeichner.SPARTE);
} else {
return false;
}
}

/**
* Schaut nach einem Feld "WAGNISART" und liefert true zurueck, falls es
Expand Down Expand Up @@ -786,10 +806,9 @@ public boolean hasBausparenArt()
* @since 0.9
*/
@JsonIgnore
public int getSparte()
{
NumFeld sparte = (NumFeld) this.getFeld(Kopffelder1bis7.SPARTE.getBezeichner());
return sparte.toInt();
public int getSparte() {
NumFeld sparte = (NumFeld) this.getFeld(ByteAdresse.of(11));
return sparte.toInt();
}

/**
Expand Down
16 changes: 16 additions & 0 deletions lib/src/main/java/gdv/xport/satz/Teildatensatz.java
Original file line number Diff line number Diff line change
Expand Up @@ -481,6 +481,22 @@ public boolean hasFeld(final Feld feld) {
return false;
}

/**
* Ueberprueft, ein Feld mit der angegebenen Adresse vorhanden ist.
*
* @param adresse gesuchte Adresse
* @return true, if successful
* @since 7.1
*/
public boolean hasFeld(final ByteAdresse adresse) {
for (Feld f : datenfelder) {
if (adresse.intValue() == f.getByteAdresse()) {
return true;
}
}
return false;
}

/**
* Liefert alle Felder in der Reihenfolge innerhalb des Teildatensatzes
* zurueck.
Expand Down
16 changes: 16 additions & 0 deletions lib/src/test/java/gdv/xport/feld/ByteAdresseTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,13 @@
import org.hamcrest.MatcherAssert;
import org.hamcrest.Matchers;
import org.junit.Test;
import patterntesting.runtime.junit.ObjectTester;

import java.util.Map;

import static org.hamcrest.collection.IsEmptyCollection.empty;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;

/**
* Unit-Tests fuer gdv.xport.feld.ByteAdresse.
Expand Down Expand Up @@ -64,4 +66,18 @@ public void testToMap() {
}
}

@Test
public void testEquals() {
ByteAdresse a = ByteAdresse.of(11);
ByteAdresse b = ByteAdresse.of(11);
ObjectTester.assertEquals(a, b);
}

@Test
public void testEqualsWithInt() {
int n = 42;
ByteAdresse a = ByteAdresse.of(n);
assertTrue(a.equals(n));
}

}
7 changes: 7 additions & 0 deletions lib/src/test/java/gdv/xport/satz/SatzTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -547,6 +547,13 @@ private static Satz getSatzWithVsNr(SatzTyp typ, String vsNr) {
return satz;
}

@Test
public void testHasFeld() {
Satz satz300 = SatzRegistry.getInstance().getSatz(SatzTyp.of(300));
assertTrue(satz300.hasFeld(Bezeichner.SPARTE));
assertTrue(satz300.hasFeld(ByteAdresse.of(11)));
}



static class TestSatz extends Satz {
Expand Down

0 comments on commit 4a324a3

Please sign in to comment.