Klasse Teildatensatz

java.lang.Object
gdv.xport.satz.Satz
gdv.xport.satz.Teildatensatz
Alle implementierten Schnittstellen:
Cloneable
Bekannte direkte Unterklassen:
TeildatensatzXml

public class Teildatensatz extends Satz
Ein Teildatensatz hat immer genau 256 Bytes. Dies wird beim Export beruecksichtigt. Und ein Teildatensatz besteht aus mehreren Datenfeldern.
Seit:
04.10.2009
Autor:
ob@aosd.de
  • Felddetails

    • satznummer

      protected Satznummer satznummer
      Dieses Feld brauchen wir, um die Satznummer abzuspeichern.
  • Konstruktordetails

    • Teildatensatz

      public Teildatensatz(SatzTyp satzTyp)
      Instantiiert einen neuen Teildatensatz mit der angegebenen Satzart.
      Parameter:
      satzTyp - z.B. 0220.050
    • Teildatensatz

      public Teildatensatz(SatzTyp satzTyp, int nr)
      Instantiiert einen neuen Teildatensatz mit der angegebenen Satzart und Nummer.
      Parameter:
      satzTyp - z.B. 0220.050
      nr - Nummer des Teildatensatzes (zwischen 1 und 9)
    • Teildatensatz

      public Teildatensatz(Satz satz, int nr)
      Instantiiert einen neuen Teildatensatz mit der angegebenen Satzart, Nummer und Version des zugeheorigen Satzes.
      Parameter:
      satz - z.B. 100
      nr - Nummer des Teildatensatzes (zwischen 1 und 9)
    • Teildatensatz

      public Teildatensatz(Teildatensatz other)
      Dies ist der Copy-Constructor, falls man eine Kopie eines Teildatensatzes braucht.
      Parameter:
      other - der andere Teildatensatz
  • Methodendetails

    • getSatzartFeld

      public NumFeld getSatzartFeld()
      Beschreibung aus Klasse kopiert: Satz
      Liefert die Satzart.
      Setzt außer Kraft:
      getSatzartFeld in Klasse Satz
      Gibt zurück:
      the satzart
    • getSatznummer

      public Zeichen 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

      public void add(Feld feld)
      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.
      Setzt außer Kraft:
      add in Klasse Satz
      Parameter:
      feld - Feld mit Name
    • remove

      public void remove(Feld feld)
      Falls ein Feld zuviel gesetzt wurde, kann es mit 'remove" wieder entfernt werden.
      Parameter:
      feld - das Feld, das entfernt werden soll
    • remove

      public void remove(Bezeichner bezeichner)
      Falls ein Feld zuviel gesetzt wurde, kann es mit 'remove" wieder entfernt werden.
      Setzt außer Kraft:
      remove in Klasse Satz
      Parameter:
      bezeichner - der Feld-Beezeichner
      Seit:
      1.0
    • setFeld

      public void setFeld(Bezeichner name, String value)
      Setzt das gewuenschte Feld. Falls es nicht vorhanden ist, wird analog zur Oberklasse eine IllegalArgumentException geworfen.
      Setzt außer Kraft:
      setFeld in Klasse Satz
      Parameter:
      name - der Name des Feldes
      value - der gewuenschte Werte als String
      Seit:
      5.2
    • set

      @Deprecated public void set(ByteAdresse adresse, String value)
      Veraltet.
      wurde durch setFeld(ByteAdresse, String) ersetzt
      Setzt das gewuenschte Feld anhand der uebergebenen ByteAdresse.
      Parameter:
      adresse - Adresse des gewuenschten Feldes
      value - Wert
      Seit:
      5.0
    • setFeld

      public void setFeld(ByteAdresse adresse, String value)
      Setzt das gewuenschte Feld anhand der uebergebenen ByteAdresse.
      Setzt außer Kraft:
      setFeld in Klasse Satz
      Parameter:
      adresse - Adresse des gewuenschten Feldes
      value - Wert
      Seit:
      5.2
    • getFeld

      public Feld getFeld(Bezeichner bezeichner)
      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 eine NotUniqueException (Ausnahme: Satznummer).

      Setzt außer Kraft:
      getFeld in Klasse Satz
      Parameter:
      bezeichner - gewuenschter Bezeichner des Feldes
      Gibt zurück:
      das gesuchte Feld
    • getFeld

      public Feld getFeld(int nr)
      Liefert das Feld mit der gewuenschten Nummer zurueck.
      Parameter:
      nr - z.B. 1
      Gibt zurück:
      das Feld (z.B. mit der Satzart)
    • getFeld

      public Feld getFeld(ByteAdresse adresse)
      Liefert das Feld mit der angegebenen Byte-Adresse. Im Gegensatz zur Nr. in getFeld(int) aendert sich diese nicht, wenn neue Elemente in einem Teildatensatz hinzukommen.
      Setzt außer Kraft:
      getFeld in Klasse Satz
      Parameter:
      adresse - zwischen 1 und 256
      Gibt zurück:
      das entsprechende Feld
      Seit:
      5.0
    • hasFeld

      public boolean hasFeld(Bezeichner bezeichner)
      Fraegt ab, ob das entsprechende Feld vorhanden ist.
      Setzt außer Kraft:
      hasFeld in Klasse Satz
      Parameter:
      bezeichner - gewuenschter Bezeichner des Feldes
      Gibt zurück:
      true / false
      Seit:
      1.0
      Siehe auch:
    • hasFeld

      public boolean hasFeld(Feld feld)
      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
    • getFelder

      public final Collection<Feld> getFelder()
      Liefert alle Felder in der Reihenfolge innerhalb des Teildatensatzes zurueck.
      Setzt außer Kraft:
      getFelder in Klasse Satz
      Gibt zurück:
      List der Felder (sortiert)
      Seit:
      0.2
    • getSatzIdent

      public List<Zeichen> getSatzIdent()
      Liefert die Liste der speziellen Kennzeichen zur Identifikation beim Import zurueck. Jedes Element enthaelt Byte-Adresse und Inhalt.
      Gibt zurück:
      Liste der speziellen Kennzeichen
    • export

      public void export(Writer writer) throws IOException
      Beschreibung aus Klasse kopiert: Satz
      Exportiert den Satz.
      Setzt außer Kraft:
      export in Klasse Satz
      Parameter:
      writer - the writer
      Löst aus:
      IOException - Signals that an I/O exception has occurred.
    • export

      public void export(Writer writer, String eod) throws IOException
      Beschreibung aus Klasse kopiert: Satz
      Export.
      Setzt außer Kraft:
      export in Klasse Satz
      Parameter:
      writer - the writer
      eod - das End-of-Datensatz- oder Trennzeichen (z.B. linefeed)
      Löst aus:
      IOException - Signals that an I/O exception has occurred.
    • importFrom

      public Teildatensatz importFrom(String content) throws IOException
      Beschreibung aus Klasse kopiert: 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.

      Setzt außer Kraft:
      importFrom in Klasse Satz
      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

      public boolean isValid()
      Beschreibung aus Klasse kopiert: Satz
      Aus Performance-Gruenden stuetzt sich diese Methode nicht auf die validate()-Methode ab.
      Setzt außer Kraft:
      isValid in Klasse Satz
      Gibt zurück:
      true/false
    • validate

      public List<net.sf.oval.ConstraintViolation> validate(Config validationConfig)
      Beschreibung aus Klasse kopiert: Satz
      Im Unterschied zur normalen validate-Methode kann man hier eine die Validierung ueber Config.LAX oder Config.STRICT verschaerfen oder abmildern.
      Setzt außer Kraft:
      validate in Klasse Satz
      Parameter:
      validationConfig - z.B. Config.STRICT
      Gibt zurück:
      Liste mit Constraint-Verletzungen
    • toShortString

      public String toShortString()
      Beschreibung aus Klasse kopiert: Satz
      To short string.
      Setzt außer Kraft:
      toShortString in Klasse Satz
      Gibt zurück:
      the string
    • clone

      public Object clone()
      Legt eine Kopie des Teildatensatzes an.
      Setzt außer Kraft:
      clone in Klasse Satz
      Gibt zurück:
      Kopie
      Siehe auch: