Klasse Teildatensatz
- Alle implementierten Schnittstellen:
Cloneable
- Bekannte direkte Unterklassen:
TeildatensatzXml
- Seit:
- 04.10.2009
- Autor:
- ob@aosd.de
-
Konstruktorübersicht
KonstruktorenKonstruktorBeschreibungTeildatensatz(Datensatz satz, int nr) Instantiiert einen neuen Teildatensatz mit der angegebenen Satzart, Nummer und Version des zugeheorigen Satzes.Teildatensatz(Teildatensatz other) Dies ist der Copy-Constructor, falls man eine Kopie eines Teildatensatzes braucht.Teildatensatz(SatzTyp satzTyp) Instantiiert einen neuen Teildatensatz mit der angegebenen Satzart.Teildatensatz(SatzTyp satzTyp, int nr) Instantiiert einen neuen Teildatensatz mit der angegebenen Satzart und Nummer. -
Methodenübersicht
Modifikator und TypMethodeBeschreibungvoidFuegt das angegebene Feld in den Teildatensatz ein.clone()Legt eine Kopie des Teildatensatzes an.voidExportiert den Satz.voidExport.getFeld(int nr) Liefert das Feld mit der gewuenschten Nummer zurueck.getFeld(Bezeichner bezeichner) Liefert das gewuenschte Feld.getFeld(ByteAdresse adresse) Liefert das Feld mit der angegebenen Byte-Adresse.final Collection<Feld> Liefert alle Felder in der Reihenfolge innerhalb des Teildatensatzes zurueck.Liefert die Satzart.Liefert die Liste der speziellen Kennzeichen zur Identifikation beim Import zurueck.Liefert die Satznummer zurueck.intLiefert den Inhalt des Sparten-Felds an Byte-Adresse 11.booleanhasFeld(Bezeichner bezeichner) Fraegt ab, ob das entsprechende Feld vorhanden ist.booleanhasFeld(ByteAdresse adresse) Ueberprueft, ein Feld mit der angegebenen Adresse vorhanden ist.booleanUeberprueft, ob das uebergebene Feld vorhanden ist.importFrom(String content) Eigentlich wollte ich ja diese Methode "import" nennen, aber das kollidiert leider mit dem Schluesselwort "import" in Java.booleanisValid()Aus Performance-Gruenden stuetzt sich diese Methode nicht auf die validate()-Methode ab.voidremove(Bezeichner bezeichner) Falls ein Feld zuviel gesetzt wurde, kann es mit 'remove" wieder entfernt werden.voidFalls ein Feld zuviel gesetzt wurde, kann es mit 'remove" wieder entfernt werden.voidset(ByteAdresse adresse, String value) Veraltet.voidsetFeld(Bezeichner name, String value) Setzt das gewuenschte Feld.voidsetFeld(ByteAdresse adresse, String value) Setzt das gewuenschte Feld anhand der uebergebenen ByteAdresse.voidsetSparte(int x) Setzt die Sparte.To short string.List<net.sf.oval.ConstraintViolation> Im Unterschied zur normalen validate-Methode kann man hier eine die Validierung ueberConfig.LAXoderConfig.STRICTverschaerfen oder abmildern.Von Klasse geerbte Methoden Datensatz
addFiller, getArt, getFolgenummer, getSatzTyp, getSparteFeld, getVersicherungsscheinNummer, getVuNummer, hasArt, hasBausparenArt, hasKrankenFolgeNr, hasSparte, hasVuNummer, hasWagnisart, init, matchesNextTeildatensatz, setFolgenummer, setSparte, setVersicherungsscheinNummer, setVuNummerModifikator und TypMethodeBeschreibungvoidFuellt fuer alle leeren Stellen ein entsprechendes Fuellfeld auf.intgetArt()Manche Satzarten wie Bausparen haben eine Element fuer die Untersparte, im Feld Wagnisart oder Art abgespeichert.intGets the folgenummer.Liefert den Satz-Typ zurueck.Gets the sparte feld.Gets the versicherungsschein nummer.Gets the vu nummer.booleanhasArt()Wenn der Datensatz ein Element fuer eine Untersparte hat, wird 'true' zurueckgegeben.booleanSchaut nach dem 9.booleanSchaut nach dem 10.booleanSchaut nach einem Feld "SPARTE" und liefert true zurueck, falls es existiert.booleanNicht jeder Datensatz hat eine VU-Nummer.booleanSchaut nach einem Feld "WAGNISART" und liefert true zurueck, falls es existiert.voidDient dazu, um mit den Informationen des Satztyps Sparte und andere Felder vorzubelegen.protected booleanmatchesNextTeildatensatz(PushbackLineNumberReader reader, char[] lastFeld1To7, Character satznummer) Prüfe ob die kommende Zeile ein Teildatensatz der letzten ist.voidsetFolgenummer(int nr) Hiermit kann die Folgenummer gesetzt werden.voidSetzt die Sparte.voidSets the versicherungsschein nummer.voidSets the vu nummer.Von Klasse geerbte Methoden Satz
add, add, addAll, cloneTeildatensaetze, equals, export, export, getBausparenArt, getConfig, getFeld, getFeld, getFeld, getFeld, getFeldInhalt, getFeldInhalt, getGdvSatzartName, getGdvSatzartNummer, getKrankenFolgeNr, getNumberOfTeildatensaetze, getSatzart, getSatzversion, getTeildatensaetze, getTeildatensatz, getTeildatensatzBySatzNr, getVermittler, getVersion, getWagnisart, hashCode, importFrom, importFrom, importFrom, importFrom, isComplete, mergeWith, remove, removeAllTeildatensaetze, removeTeildatensatz, removeTeildatensatzBySatzNr, removeUnusedTeildatensaetze, resetGdvSatzartName, setFeld, setFeld, setGdvSatzartName, setVermittler, toLongString, toString, validateModifikator und TypMethodeBeschreibungvoidFuegt das uebergebene Feld zur Liste der Datenfelder hinzu.final voidadd(Teildatensatz tds) Und hierueber kann ein Teildatensatz hinzugefuegt werden.voidFuegt das uebergebene Feld in jeden Teildatensatz hinzu.protected final List<Teildatensatz> Hier wird eine Kopie aller Teildatensaetze zurueckgegeben.booleanZwei Saetze sind gleich, wenn sie die gleichen Daten besitzen.voidExportiert den Satz.voidexport(OutputStream ostream) final StringLiefert den Inhalt des 9.final ConfigLiefert die aktuelle Konfiguration zurueck.final FeldgetFeld(Bezeichner bezeichner, int nr) Liefert das gewuenschte Feld.<T extends Feld>
TgetFeld(Bezeichner bezeichner, Class<T> clazz) Liefert das gewuenschte Feld im gewuenschten Typ.Veraltet.bitte getFeld(Bezeichner) verwenden (TODO: wird mit v8 oder v9 entsorgt)final FeldVeraltet.bitte getFeld(Bezeichner, int) verwenden (TODO: wird mit v8 oder v9 entsorgt)final StringgetFeldInhalt(Bezeichner bezeichner) Liefert den Inhalt des gewuenschten Feldes.final StringgetFeldInhalt(String name, int nr) Liefert den Inhalt des gewuenschten Feldes.Veraltet.bitte Satzartnummer ueberSatz.getSatzTyp()ermittelnfinal StringLiefert den Inhalt des Feldes, in dessen Bezeichnung "Folge-Nr" oder "Folgenummer" gefolgt von "zur laufenden" vorkommt (ByteAdresse 48), wenn es existiert.final intLiefert die Anzahl der Teildatensaetze.intLiefert die Satzart zurueck.final AlphaNumFeldLiefert die Satzversionfinal List<Teildatensatz> Liefert alle Teildatensaetze zurueck.final TeildatensatzgetTeildatensatz(int n) Liefert den n-ten Teildatensatz aus der Liste der Teildatensätze zurueck.final TeildatensatzgetTeildatensatzBySatzNr(int n) Liefert den Teildatensatz mit der wirklichen Satznummer n zurueck.final StringLiefert den Vermittler zurueck.final StringLiefert die Version des Satzes.final StringLiefert den Inhalt des Wagnisart-Felds.inthashCode()final SatzimportFrom(PushbackLineNumberReader reader) Der hier verwendete PushbackReader wird benoetigt, damit die gelesene Satzart und Sparte wieder zurueckgesetllt werden kann.importFrom(File file) Importiert einen Satz von der angegebenen Datei.final SatzimportFrom(InputStream istream) Import von einemInputStream.final SatzimportFrom(Reader reader) Import von einemReader.booleanSind alle Teildatensaetze eines Satzes vorhanden und ausgefuellt, liefert diese Methode 'true' zurueck.voidVereinigt den anderen Satz mit dem aktuellen Satz, falls das moeglich ist.voidFalls ein Feld zuviel gesetzt wurde, kann es mit 'remove" wieder entfernt werden.final voidHiermit koennen Unterklassen alle Teildatensaetze wieder entfernen (wird z.B. vom Satz 0220.030 benoetigt).final voidremoveTeildatensatz(int n) Entfernt den gewuenschten Teildatensatz.final voidremoveTeildatensatzBySatzNr(int n) Entfernt den gewuenschten Teildatensatz mit der wirklichen Satznummer n.protected voidremoveUnusedTeildatensaetze(SortedSet<Integer> usedIndexes) voidvoidsetFeld(Bezeichner name, Integer value) Setzt den Inhalt des gewuenschten Feldes.voidSetzt das angegebene Feld in allen Teildatensaetzen, in denen es gefunden wird.protected voidsetGdvSatzartName(String string) Setzen des Namens einer Gdv-Satzart.final voidsetVermittler(String vermittler) Setzt den Vermittler in das entsprechende Feld.To long string.final StringtoString()List<net.sf.oval.ConstraintViolation> validate()Validiert die einzelnen Teildatensaetze mit der eingestellten Standard-Konfiguration.
-
Konstruktordetails
-
Teildatensatz
Instantiiert einen neuen Teildatensatz mit der angegebenen Satzart.- Parameter:
satzTyp- z.B. 0220.050
-
Teildatensatz
Instantiiert einen neuen Teildatensatz mit der angegebenen Satzart und Nummer.- Parameter:
satzTyp- z.B. 0220.050nr- Nummer des Teildatensatzes (zwischen 1 und 9)
-
Teildatensatz
Instantiiert einen neuen Teildatensatz mit der angegebenen Satzart, Nummer und Version des zugeheorigen Satzes.- Parameter:
satz- z.B. 100nr- Nummer des Teildatensatzes (zwischen 1 und 9)
-
Teildatensatz
Dies ist der Copy-Constructor, falls man eine Kopie eines Teildatensatzes braucht.- Parameter:
other- der andere Teildatensatz
-
-
Methodendetails
-
getSatzartFeld
Beschreibung aus Klasse kopiert:SatzLiefert die Satzart.- Setzt außer Kraft:
getSatzartFeldin KlasseSatz- Gibt zurück:
- the satzart
-
getSatznummer
Liefert die Satznummer zurueck. Sie loest die alte getNummer()-Methode ab.- Gibt zurück:
- Satznummer als einzelnes Zeichen ('1' ... '9')
- Seit:
- 5.0
-
add
Fuegt das angegebene Feld in den Teildatensatz ein. Bei Einfuegen wird ueberprueft, ob es zu Ueberschneidungen mit anderen Feldern kommt. Ausnahme hierbei ist das Satznummern-Feld auf Byte 256, mit dem der Teildatensatz vorinitialisiert wurde. Kommt es hier zu einer Ueberlappung, wird das Satznummern-Feld entfernt, da nicht alle Saetze dieses Feld besitzen. -
remove
Falls ein Feld zuviel gesetzt wurde, kann es mit 'remove" wieder entfernt werden.- Parameter:
feld- das Feld, das entfernt werden soll
-
remove
Falls ein Feld zuviel gesetzt wurde, kann es mit 'remove" wieder entfernt werden. -
setFeld
Setzt das gewuenschte Feld. Falls es nicht vorhanden ist, wird analog zur Oberklasse eineIllegalArgumentExceptiongeworfen. -
set
Veraltet.wurde durchsetFeld(ByteAdresse, String)ersetztSetzt das gewuenschte Feld anhand der uebergebenen ByteAdresse.- Parameter:
adresse- Adresse des gewuenschten Feldesvalue- Wert- Seit:
- 5.0
-
setFeld
Setzt das gewuenschte Feld anhand der uebergebenen ByteAdresse. -
setSparte
public void setSparte(int x) Beschreibung aus Klasse kopiert:DatensatzSetzt die Sparte.Diese Methode ist nur sinnvoll bei Satzarten, die ueberhaupt eine Sparte (Produkt) haben (an ByteAdresse 11 mit Laenge 3) wie z.B. "0200", "0100", "0210.000", "0400" und nicht nur fuer eine einzige Sparte gedacht sind. Passt die Sparte nicht zur Satzart, wird eine
IllegalArgumentExceptiongeworfen, wenn die Validierung an ist. -
getSparte
-
getFeld
Liefert das gewuenschte Feld.Falls kein Feld mit dem Bezeichner vorhanden ist, wird eine
IllegalArgumentExceptiongeworfen. Ebenso wenn das Feld nicht eindeutig ist und unterschiedliche Werte hat. Dann gibt es eineNotUniqueException(Ausnahme: Satznummer). -
getFeld
Liefert das Feld mit der gewuenschten Nummer zurueck.In der Beschreibung zur 2018er-Version gibt es bei der Feld-Nr. bei manchen Satzarten Ungereimtheiten. So hat im Teildatensatz 1 der Satzart 100 das Feld fuer die Satznummer die Feld-Nr. 27 und es gibt kein Feld 26. Auch bei diesen Satzarten ist eine Luecke in der Nummerierung:
- Satart 0100, TDS 1: Feld 26 fehlt
- Satart 0210.050, TDS 1: Feld 34 fehlt
- Satart SA0220.010.13.1, TDS 1: Feld 45 fehlt
- Satart 0600, TDS 2: Feld 12 fehlt
- Satart 0600, TDS 3: Feld 13 fehlt
- Satart 9950, TDS 1: Feld 10 fehlt
- Satart 9951, TDS 1: Feld 10 fehlt
In der 2023er-Version wurde das in der Beschreibung korrigiert. Um den Zugriff zu vereinfachen, wird daher bei Feld-Nummern, die zu gross sind, das letzte Feld zurueckgegeben.
- Parameter:
nr- z.B. 1- Gibt zurück:
- das Feld (z.B. mit der Satzart)
-
getFeld
Liefert das Feld mit der angegebenen Byte-Adresse. Im Gegensatz zur Nr. ingetFeld(int)aendert sich diese nicht, wenn neue Elemente in einem Teildatensatz hinzukommen. -
hasFeld
Fraegt ab, ob das entsprechende Feld vorhanden ist. -
hasFeld
Ueberprueft, ob das uebergebene Feld vorhanden ist.Anmerkung: Mit 4.4 wird nicht nur der Name ueberprueft sondern alle Attribute.
- Parameter:
feld- the feld- Gibt zurück:
- true, if successful
- Seit:
- 1.0
-
hasFeld
Ueberprueft, ein Feld mit der angegebenen Adresse vorhanden ist. -
getFelder
Liefert alle Felder in der Reihenfolge innerhalb des Teildatensatzes zurueck. -
getSatzIdent
-
export
Beschreibung aus Klasse kopiert:SatzExportiert den Satz.- Setzt außer Kraft:
exportin KlasseSatz- Parameter:
writer- the writer- Löst aus:
IOException- Signals that an I/O exception has occurred.
-
export
Beschreibung aus Klasse kopiert:SatzExport.- Setzt außer Kraft:
exportin KlasseSatz- Parameter:
writer- the writereod- das End-of-Datensatz- oder Trennzeichen (z.B. linefeed)- Löst aus:
IOException- Signals that an I/O exception has occurred.
-
importFrom
Beschreibung aus Klasse kopiert:SatzEigentlich wollte ich ja diese Methode "import" nennen, aber das kollidiert leider mit dem Schluesselwort "import" in Java. Inzwischen beruecksichtigt diese Import-Methode auch zusaetzlich eingestreute Newlines ("\n") oder/und Wagenruecklaeufe ("\r").Vor der Behebung von Issue #8 ist man davon ausgegangen, dass die Teildatensaetze hintereinander kommen und dass es keine Luecken gibt. Dies ist aber nicht der Fall. Jetzt koennen die Teildatensaetze in beliebiger Reihenfolge kommen. Nicht importierte Teildatensaetze werden am Ende aussortiert.
- Setzt außer Kraft:
importFromin KlasseSatz- Parameter:
content- String zum Importieren- Gibt zurück:
- Satz zur Weiterverabeitung (seit 5.2)
- Löst aus:
IOException- Signals that an I/O exception has occurred.
-
isValid
-
validate
Beschreibung aus Klasse kopiert:SatzIm Unterschied zur normalen validate-Methode kann man hier eine die Validierung ueberConfig.LAXoderConfig.STRICTverschaerfen oder abmildern.- Setzt außer Kraft:
validatein KlasseSatz- Parameter:
validationConfig- z.B.Config.STRICT- Gibt zurück:
- Liste mit Constraint-Verletzungen
-
toShortString
Beschreibung aus Klasse kopiert:SatzTo short string.- Setzt außer Kraft:
toShortStringin KlasseSatz- Gibt zurück:
- the string
-
clone
-
setFeld(ByteAdresse, String)ersetzt