Package gdv.xport.feld
Class Feld
java.lang.Object
gdv.xport.feld.Feld
- All Implemented Interfaces:
Serializable
,Cloneable
,Comparable<Feld>
- Direct Known Subclasses:
AlphaNumFeld
,FeldXml
,NumFeld
,Undefiniert
,Version
Die Feld-Klasse bezieht ihre Information hauptsaechlich aus Enum-Klassen wie
Feld100 oder Feld1bis7, die mit Annotationen versehen sind.
- Since:
- 04.10.2009
- Author:
- oliver
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
Die Validierung von Werten wurde jetzt in einer eingenen Validator- Klasse zusammengefasst. -
Field Summary
Fields -
Constructor Summary
ConstructorsModifierConstructorDescriptionFeld()
Legt ein neues Feld an.Deprecated.Felder ohne Bezeichner werden ab v7 nicht mehr unterstuetztDeprecated.Felder ohne Bezeichner werden ab v7 nicht mehr unterstuetztInstantiates a new feld.Feld
(Bezeichner bezeichner, int length, int start, Align alignment) Erzeugt ein neues Feld.protected
Feld
(Bezeichner bezeichner, int length, int start, Align alignment, Config config) Feld
(Bezeichner name, int start, String s, Align alignment) Erzeugt ein neues Feld.Dies ist der Copy-Constructor, mit dem man ein bestehendes Feld kopieren kann.protected
Instantiates a new feld.Instantiates a new feld.Instantiates a new feld.Instantiates a new feld. -
Method Summary
Modifier and TypeMethodDescriptionclone()
Die clone-Methode hat gegenueber dem CopyConstructorFeld(Feld)
den Vorteil, dass es den richtigen Typ fuer die abgeleiteten Klassen zurueckliefert.final int
Es gilt fuer Feld a und b: a < b, wenn die Start-Adresse von a vor b liegt.boolean
Zwei Felder sind gleich, wenn sie die gleiche Adresse und den gleichen Inhalt haben.format()
Diese Methode ist dafuer vorgesehen, das Feld als normalen String ausgeben zu koennen.final int
Gets the anzahl bytes.Liefert die Ausrichtung eines Feldes.Liefert den Bezeichner eines Feldes zurueck.Gets the bezeichnung.final int
Gets the byte adresse.protected Align
Deprecated.final int
Gets the end adresse.Liefert den Inhalt, so wie er im Record steht (ungetrimm't).Hierueber kann der Validator zur Pruefung im Vorfeld geholt werden.int
hashCode()
boolean
hasValue()
Dient zum Ermittel, ob ein Werte schon gesetzt wurde.boolean
isEmpty()
Checks if is empty.boolean
Checks if is invalid.boolean
isValid()
Valid bedeutet: Byte-Adresse >= 1, Feld geht nicht ueber (Teil-)Datensatz-Grenze hinaus, Ausrichtung ist bekannt.Liefert eine neues Feld mit neuer Konfigurationfinal boolean
overlapsWith
(Feld other) Ueberprueft, ob sich zwei Felder mit unterschiedlichen Start-Adressen ueberlagern.protected String
void
Reset inhalt.void
setAnzahlBytes
(int n) Deprecated.wird nicht mehr benoetigtvoid
setAusrichtung
(Align alignment) Hiermit kann man die Ausrichtung umstellen.void
setInhalt
(char c) Sets the inhalt.void
setInhalt
(char c, int i) Sets the inhalt.void
setInhalt
(long n) Setzt den Inhalt aus der uebergebenen Zahl.void
Setzt den Inhalt.void
Setzt den Inhalt aus der uebergebenen Zahl.void
Setzt den Inhalt mit der uebergebenen Zahl.toString()
protected String
Schneidet einen zu langen String unabhaengig vom Alignment rechts ab.List<net.sf.oval.ConstraintViolation>
validate()
Validate.List<net.sf.oval.ConstraintViolation>
withInhalt
(String inhalt) Setzt das Feld und liefert es als Ergebnis zurueck.final void
Write.
-
Field Details
-
NULL_FELD
statt "null". -
inhalt
-
config
-
-
Constructor Details
-
Feld
public Feld()Legt ein neues Feld an. Dieser Default-Konstruktor ist fuer Unterklassen vorgesehen. Da er aber auch fuer dieCloneable
-Implementierung benoetigt wird, ist er 'public'.- Since:
- 1.0
-
Feld
Instantiates a new feld.- Parameters:
name
- the names
- the salignment
- the alignment
-
Feld
Erzeugt ein neues Feld.- Parameters:
name
- Namestart
- Start-Adresses
- der Inhaltalignment
- the alignment
-
Feld
Erzeugt ein neues Feld.- Parameters:
bezeichner
- der Name des Feldslength
- die Anzahl der Bytesstart
- die Start-Adressealignment
- die Ausrichtung- Since:
- 1.0
-
Feld
-
Feld
Instantiates a new feld.- Parameters:
name
- the namelength
- the lengthstart
- the startc
- the calignment
- the alignment
-
Feld
Instantiates a new feld.- Parameters:
name
- the namelength
- the lengthstart
- the starts
- the salignment
- the alignment
-
Feld
Instantiates a new feld.- Parameters:
name
- the namestart
- the startc
- the c
-
Feld
Instantiates a new feld.- Parameters:
start
- the starts
- the salignment
- the alignment
-
Feld
Deprecated.Felder ohne Bezeichner werden ab v7 nicht mehr unterstuetztInstantiates a new feld.TODO: wird mit v7 entfernt
- Parameters:
length
- the lengthalignment
- the alignment
-
Feld
Deprecated.Felder ohne Bezeichner werden ab v7 nicht mehr unterstuetztInstantiates a new feld.TODO: wird mit v7 entfernt
- Parameters:
length
- the lengthstart
- the startalignment
- the alignment
-
Feld
Dies ist der Copy-Constructor, mit dem man ein bestehendes Feld kopieren kann.- Parameters:
other
- das originale Feld
-
Feld
-
-
Method Details
-
mitConfig
Liefert eine neues Feld mit neuer Konfiguration- Parameters:
c
- neue Konfiguration- Returns:
- neues NumFeld
- Since:
- 5.3
-
getAusrichtung
Liefert die Ausrichtung eines Feldes. Dies ist hauptsaechlich fuer alhpanumerische Felder interessant.- Returns:
- linksbuendig oder rechtsbuendig
-
getDefaultAlignment
Deprecated.Die Default-Ausrichtung ist links-buendig. Diese Vorgabe kann aber von den Unterklassen ueberschrieben werde.TODO: wird mit v7 entfernt
- Returns:
- links-buendig
-
setAusrichtung
Hiermit kann man die Ausrichtung umstellen.- Parameters:
alignment
- z.B.Align.LEFT
- Since:
- 6.1
-
getBezeichnung
Gets the bezeichnung.- Returns:
- the bezeichnung
-
getBezeichner
Liefert den Bezeichner eines Feldes zurueck.Vor 1.0 lieferte diese Methode einen "String" zurueck. Aus Konsistenz-Gruenden wurde die alte Implementierung in "GetBzeichnerAsString" umbenannt.
- Returns:
- den Bezeichner des Feldes
- Since:
- 1.0
-
setInhalt
Setzt den Inhalt. Hierueber kann auch ein Inhalt gesetzt werden, der nicht zum Datentyp passt (z.B. Buchstaben in einemNumFeld
, damit ein Import nicht beim ersten fehlerhaften Feld abbricht.Um festzustellen, ob ein Feld einen gueltigen Wert hat, kann die
isValid()
-Methode verwendet werden.- Parameters:
neuerInhalt
- der neue Inhalt
-
pack
-
truncate
Schneidet einen zu langen String unabhaengig vom Alignment rechts ab.- Parameters:
s
- String, der evtl. gekuerzt wird- Returns:
- String der Laenge
getAnzahlBytes()
-
setInhalt
Setzt den Inhalt mit der uebergebenen Zahl.- Parameters:
n
- Zahl- Since:
- 5.0
-
setInhalt
Setzt den Inhalt aus der uebergebenen Zahl.- Parameters:
n
- der neue Inhalt
-
setInhalt
public void setInhalt(long n) Setzt den Inhalt aus der uebergebenen Zahl.- Parameters:
n
- der neue Inhalt
-
setInhalt
public void setInhalt(char c) Sets the inhalt.- Parameters:
c
- the new inhalt
-
setInhalt
public void setInhalt(char c, int i) Sets the inhalt.- Parameters:
c
- zu setzendes Zeicheni
- index, beginnend bei 0
-
getInhalt
Liefert den Inhalt, so wie er im Record steht (ungetrimm't).- Returns:
- den Inhalt
-
withInhalt
Setzt das Feld und liefert es als Ergebnis zurueck.- Parameters:
inhalt
- neuer Inhalt- Returns:
- das gesetzte Feld
- Since:
- 5.0
-
resetInhalt
public void resetInhalt()Reset inhalt. -
setAnzahlBytes
Deprecated.wird nicht mehr benoetigtWenn sich das Feld vergroessert, werden rechts Leerzeichen aufgefuellt (alphanumerische Zeichen sind standardmaessig linksbuendig).TODO: wird in v7 entsorgt
- Parameters:
n
- neue Groesse
-
getAnzahlBytes
public final int getAnzahlBytes()Gets the anzahl bytes.- Returns:
- the anzahl bytes
-
getByteAdresse
public final int getByteAdresse()Gets the byte adresse.- Returns:
- Byte-Adresse, beginnend bei 1
-
getEndAdresse
public final int getEndAdresse()Gets the end adresse.- Returns:
- absolute End-Adresse
-
overlapsWith
Ueberprueft, ob sich zwei Felder mit unterschiedlichen Start-Adressen ueberlagern.- Parameters:
other
- das andere Feld- Returns:
- true, falls sich die Felder ueberlappen
-
write
Write.- Parameters:
writer
- the writer- Throws:
IOException
- Signals that an I/O exception has occurred.
-
isEmpty
public boolean isEmpty()Checks if is empty.- Returns:
- true, if is empty
-
hasValue
public boolean hasValue()Dient zum Ermittel, ob ein Werte schon gesetzt wurde. Dabei werden typische Initialisierungswerte wie "0" als "nicht gesetzt" interpretiert.- Returns:
- true, falls Feld mit einem Wert belegt ist
- Since:
- 3.1
-
isValid
public boolean isValid()Valid bedeutet: Byte-Adresse >= 1, Feld geht nicht ueber (Teil-)Datensatz-Grenze hinaus, Ausrichtung ist bekannt.Aus Performance-Gruenden stuetzt sich diese Methode nicht direkt auf validate(), sondern implementiert die entsprechenden Abfragen selbst und bricht ab, wenn er etwas ungueltiges findet.
- Returns:
- false, falls Verletzung erkannt wird
- Since:
- 0.1.0
-
isInvalid
public boolean isInvalid()Checks if is invalid.- Returns:
- true, if is invalid
-
validate
Validate.- Returns:
- eine Liste mit Constraint-Verletzungen
-
validate
-
format
Diese Methode ist dafuer vorgesehen, das Feld als normalen String ausgeben zu koennen. Zahlen koennen so z.B. in der Form "123,45" ausgegeben werden, unter Beruecksichtigung der eingestellten "Locale".- Returns:
- Inhalt des Feldes
- Since:
- 0.5.1
-
toString
-
toShortString
-
equals
Zwei Felder sind gleich, wenn sie die gleiche Adresse und den gleichen Inhalt haben.ACHTUNG: Bis v5.1 wurde noch die Ausrichtung fuer die Gleichheit herangezogen. Ab v5.1 spielt dies aber keine Rolle mehr.
-
hashCode
public int hashCode() -
compareTo
Es gilt fuer Feld a und b: a < b, wenn die Start-Adresse von a vor b liegt.- Specified by:
compareTo
in interfaceComparable<Feld>
- Parameters:
other
- das andere Feld- Returns:
- 0 wenn beide Felder die gleiche Startadresse haben
-
getValidator
Hierueber kann der Validator zur Pruefung im Vorfeld geholt werden.- Returns:
- aktuellen Validator
-
clone
Die clone-Methode hat gegenueber dem CopyConstructorFeld(Feld)
den Vorteil, dass es den richtigen Typ fuer die abgeleiteten Klassen zurueckliefert.
-