Package gdv.xport.satz
Class Teildatensatz
java.lang.Object
gdv.xport.satz.Satz
gdv.xport.satz.Teildatensatz
- All Implemented Interfaces:
Cloneable
- Direct Known Subclasses:
TeildatensatzXml
Ein Teildatensatz hat immer genau 256 Bytes. Dies wird beim Export
beruecksichtigt. Und ein Teildatensatz besteht aus mehreren Datenfeldern.
- Since:
- 04.10.2009
- Author:
- ob@aosd.de
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected Satznummer
Dieses Feld brauchen wir, um die Satznummer abzuspeichern. -
Constructor Summary
ConstructorsConstructorDescriptionTeildatensatz
(Satz 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. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Fuegt das angegebene Feld in den Teildatensatz ein.clone()
Legt eine Kopie des Teildatensatzes an.void
Exportiert den Satz.void
Export.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.boolean
hasFeld
(Bezeichner bezeichner) Fraegt ab, ob das entsprechende Feld vorhanden ist.boolean
Ueberprueft, 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.boolean
isValid()
Aus Performance-Gruenden stuetzt sich diese Methode nicht auf die validate()-Methode ab.void
remove
(Bezeichner bezeichner) Falls ein Feld zuviel gesetzt wurde, kann es mit 'remove" wieder entfernt werden.void
Falls ein Feld zuviel gesetzt wurde, kann es mit 'remove" wieder entfernt werden.void
set
(ByteAdresse adresse, String value) Deprecated.void
setFeld
(Bezeichner name, String value) Setzt das gewuenschte Feld.void
setFeld
(ByteAdresse adresse, String value) Setzt das gewuenschte Feld anhand der uebergebenen ByteAdresse.void
setSatznummer
(Zeichen satznummer) Deprecated.ab 5.1 nicht mehr noetig, dagetSatznummer()
jetzt die tatsaechliche Satznummer liefertTo short string.List<net.sf.oval.ConstraintViolation>
Im Unterschied zur normalen validate-Methode kann man hier eine die Validierung ueberConfig.LAX
oderConfig.STRICT
verschaerfen oder abmildern.Methods inherited from class gdv.xport.satz.Satz
add, add, addAll, addFiller, cloneTeildatensaetze, equals, export, export, get, get, getBausparenArt, getConfig, getFeld, getFeld, getFeld, getFeld, getFeldInhalt, getFeldInhalt, getGdvSatzartName, getGdvSatzartNummer, getKrankenFolgeNr, getNumberOfTeildatensaetze, getSatzart, getSatzlength, getSatzTyp, getSatzversion, getSparte, getTeildatensaetze, getTeildatensatz, getTeildatensatzBySatzNr, getVermittler, getVersion, getWagnisart, hasBausparenArt, hashCode, hasKrankenFolgeNr, hasSparte, hasWagnisart, importFrom, importFrom, importFrom, importFrom, isComplete, matchesNextTeildatensatz, mergeWith, readSatzart, remove, removeAllTeildatensaetze, removeTeildatensatz, removeTeildatensatzBySatzNr, removeUnusedTeildatensaetze, resetGdvSatzartName, set, set, set, setFeld, setFeld, setGdvSatzartName, setGdvSatzartNummer, setVermittler, toLongString, toString, validate
-
Field Details
-
satznummer
Dieses Feld brauchen wir, um die Satznummer abzuspeichern.
-
-
Constructor Details
-
Teildatensatz
Instantiiert einen neuen Teildatensatz mit der angegebenen Satzart.- Parameters:
satzTyp
- z.B. 0220.050
-
Teildatensatz
Instantiiert einen neuen Teildatensatz mit der angegebenen Satzart und Nummer.- Parameters:
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.- Parameters:
satz
- z.B. 100nr
- Nummer des Teildatensatzes (zwischen 1 und 9)
-
Teildatensatz
Dies ist der Copy-Constructor, falls man eine Kopie eines Teildatensatzes braucht.- Parameters:
other
- der andere Teildatensatz
-
-
Method Details
-
getSatzartFeld
Description copied from class:Satz
Liefert die Satzart.- Overrides:
getSatzartFeld
in classSatz
- Returns:
- the satzart
-
getSatznummer
Liefert die Satznummer zurueck. Sie wurde aus Symmetriegruenden zusetSatznummer(Zeichen)
eingefuehrt und loest die alte getNummer()-Methode ab.- Returns:
- Satznummer als einzelnes Zeichen ('1' ... '9')
- Since:
- 5.0
-
setSatznummer
Deprecated.ab 5.1 nicht mehr noetig, dagetSatznummer()
jetzt die tatsaechliche Satznummer liefertDa nicht alle Satzarten die Satznummer am Ende des Satzes haben, kann man dies ueber diese Methode korrigieren.TODO: wird ab v7 nicht mehr unterstuetzt
- Parameters:
satznummer
- das neue Feld fuer die Satznummer- Since:
- 3.2
-
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.- Parameters:
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 eineIllegalArgumentException
geworfen. -
set
Deprecated.wurde durchsetFeld(ByteAdresse, String)
ersetztSetzt das gewuenschte Feld anhand der uebergebenen ByteAdresse.- Parameters:
adresse
- Adresse des gewuenschten Feldesvalue
- Wert- Since:
- 5.0
-
setFeld
Setzt das gewuenschte Feld anhand der uebergebenen ByteAdresse. -
getFeld
Liefert das gewuenschte Feld.Falls kein Feld mit dem Bezeichner vorhanden ist, wird eine
IllegalArgumentException
geworfen. Ebenso wenn das Feld nicht eindeutig ist. Dann gibt es eineNotUniqueException
(Ausnahme: Satznummer). -
getFeld
Liefert das Feld mit der gewuenschten Nummer zurueck.- Parameters:
nr
- z.B. 1- Returns:
- 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: Es wird nur der Name ueberprueft. D.h. es wird nicht ueberprueft, ob es evtl. einen Konflikt mit der Start- und End-Adresse gibt.
- Parameters:
feld
- the feld- Returns:
- true, if successful
- Since:
- 1.0
-
getFelder
Liefert alle Felder in der Reihenfolge innerhalb des Teildatensatzes zurueck. -
getSatzIdent
Liefert die Liste der speziellen Kennzeichen zur Identifikation beim Import zurueck. Jedes Element enthaelt Byte-Adresse und Inhalt.- Returns:
- Liste der speziellen Kennzeichen
-
export
Description copied from class:Satz
Exportiert den Satz.- Overrides:
export
in classSatz
- Parameters:
writer
- the writer- Throws:
IOException
- Signals that an I/O exception has occurred.
-
export
Description copied from class:Satz
Export.- Overrides:
export
in classSatz
- Parameters:
writer
- the writereod
- das End-of-Datensatz- oder Trennzeichen (z.B. linefeed)- Throws:
IOException
- Signals that an I/O exception has occurred.
-
importFrom
Description copied from class:Satz
Eigentlich 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.
- Overrides:
importFrom
in classSatz
- Parameters:
content
- String zum Importieren- Returns:
- Satz zur Weiterverabeitung (seit 5.2)
- Throws:
IOException
- Signals that an I/O exception has occurred.
-
isValid
public boolean isValid()Description copied from class:Satz
Aus Performance-Gruenden stuetzt sich diese Methode nicht auf die validate()-Methode ab. -
validate
Description copied from class:Satz
Im Unterschied zur normalen validate-Methode kann man hier eine die Validierung ueberConfig.LAX
oderConfig.STRICT
verschaerfen oder abmildern.- Overrides:
validate
in classSatz
- Parameters:
validationConfig
- z.B.Config.STRICT
- Returns:
- Liste mit Constraint-Verletzungen
-
toShortString
Description copied from class:Satz
To short string.- Overrides:
toShortString
in classSatz
- Returns:
- the string
-
clone
Legt eine Kopie des Teildatensatzes an.
-
setFeld(ByteAdresse, String)
ersetzt