Interface Deserializer


public interface Deserializer
Schnittstelle zum Deserialisieren von Datensätzen. Konkrete Objekte zum Deserialisieren können mit den verschiedenen Methoden der Klasse SerializingFactory erzeugt werden. Dabei kann der Eingabe-Stream für die Deserialisierung vorgegeben werden.

Mit den verschiedenen read-Methoden können primitive Datentypen, Referenzen auf System-Objekte und ganze Datensätze von einem InputStream eingelesen und deserialisiert werden.

Über die getVersion() Methode kann die Version eines konkreten Deserialisieres abgefragt werden.

See Also:
Serializer
  • Method Summary

    Modifier and Type Method Description
    java.io.InputStream getInputStream()
    Bestimmt den bei der Deserialisierung zu verwendenden Eingabe-Stream.
    int getVersion()
    Bestimmt die Version des konkreten Deserialisierers.
    boolean readBoolean()
    Liest und deserialisiert einen boolean-Wert vom Eingabe-Strom dieses Deserialisierers.
    byte readByte()
    Liest und deserialisiert einen byte-Wert vom Eingabe-Stream dieses Deserialisierers.
    void readBytes​(byte[] buffer, int offset, int length)
    Liest eine vorgegebene Anzahl von Bytes vom Eingabe-Stream dieses Deserialisierers ein und speichert diese an einem vorgegebenen Offset in ein vorhandenes Byte-Array.
    byte[] readBytes​(int length)
    Liest ein Byte-Array mit vorgegebener Länge vom Eingabe-Stream dieses Deserialisierers.
    Data readData​(AttributeGroup atg)
    Liest und deserialisiert einen Datensatz aus dem Eingabe-Stream dieses Deserialisierers.
    Data readData​(AttributeGroup atg, ObjectLookup dataModel)
    Liest und deserialisiert einen Datensatz aus dem Eingabe-Stream dieses Deserialisierers.
    void readData​(Data data)
    Liest und deserialisiert einen Datensatz aus dem Eingabe-Stream dieses Deserialisierers.
    void readData​(Data data, ObjectLookup dataModel)
    Liest und deserialisiert einen Datensatz aus dem Eingabe-Stream dieses Deserialisierers.
    double readDouble()
    Liest und deserialisiert einen double-Wert vom Eingabe-Stream dieses Deserialisierers.
    float readFloat()
    Liest und deserialisiert einen float-Wert vom Eingabe-Stream dieses Deserialisierers.
    int readInt()
    Liest und deserialisiert einen int-Wert vom Eingabe-Stream dieses Deserialisierers.
    long readLong()
    Liest und deserialisiert einen long-Wert vom Eingabe-Stream dieses Deserialisierers.
    SystemObject readObjectReference​(ObjectLookup dataModel)
    Liest und deserialisiert eine Referenz auf ein Systemobjekt vom Eingabe-Stream dieses Deserialisierers.
    default java.util.List<SystemObject> readObjectReferences​(DataModel dataModel)
    Liest mehrere Objektreferenzen vom Eingabe-Stream dieses Deserialisierers.
    short readShort()
    Liest und deserialisiert einen short-Wert vom Eingabe-Stream dieses Deserialisierers.
    java.lang.String readString()
    Liest und deserialisiert einen String-Wert mit einer maximalen Länge von 65535 vom Eingabe-Stream dieses Deserialisierers.
    java.lang.String readString​(int maxLength)
    Liest und deserialisiert einen String-Wert mit einer vorgegebenen Maximal-Länge vom Eingabe-Stream dieses Deserialisierers.
    int readUnsignedByte()
    Liest und deserialisiert einen byte-Wert vom Eingabe-Stream dieses Deserialisierers und interpretiert den Wert als vorzeichenlose Zahl.
    long readUnsignedInt()
    Liest und deserialisiert einen int-Wert vom Eingabe-Stream dieses Deserialisierers und interpretiert den Wert als vorzeichenlose Zahl.
    int readUnsignedShort()
    Liest und deserialisiert einen short-Wert vom Eingabe-Stream dieses Deserialisierers und interpretiert den Wert als vorzeichenlose Zahl.
    void setInputStream​(java.io.InputStream inputStream)
    Setzt den zu verwendenden Eingabe-Stream.
  • Method Details

    • getVersion

      int getVersion()
      Bestimmt die Version des konkreten Deserialisierers.
      Returns:
      Version des Deserialisierers.
    • getInputStream

      java.io.InputStream getInputStream()
      Bestimmt den bei der Deserialisierung zu verwendenden Eingabe-Stream.
      Returns:
      Bei der Deserialisierung zu verwendender Eingabe-Stream.
    • setInputStream

      void setInputStream​(java.io.InputStream inputStream)
      Setzt den zu verwendenden Eingabe-Stream.
      Parameters:
      inputStream - Zu verwendender InputStream
    • readData

      void readData​(Data data) throws java.io.IOException
      Liest und deserialisiert einen Datensatz aus dem Eingabe-Stream dieses Deserialisierers.
      Parameters:
      data - Neuer Datensatz, der mit der Attributgruppe der erwarteten Daten initialisiert wurde.
      Throws:
      java.io.IOException - Wenn beim Lesen vom Eingabe-Stream Fehler aufgetreten sind.
      See Also:
      ClientDavConnection.createData(de.bsvrz.dav.daf.main.config.AttributeGroup)
    • readData

      Data readData​(AttributeGroup atg) throws java.io.IOException
      Liest und deserialisiert einen Datensatz aus dem Eingabe-Stream dieses Deserialisierers.
      Parameters:
      atg - Attributgruppe des einzulesenden Datensatzes.
      Returns:
      Eingelesener Datensatz
      Throws:
      java.io.IOException - Wenn beim Lesen vom Eingabe-Stream Fehler aufgetreten sind.
    • readData

      void readData​(Data data, ObjectLookup dataModel) throws java.io.IOException
      Liest und deserialisiert einen Datensatz aus dem Eingabe-Stream dieses Deserialisierers.
      Parameters:
      data - Neuer Datensatz, der mit der Attributgruppe der erwarteten Daten initialisiert wurde.
      dataModel - Datenmodell mit dessen Hilfe Objektreferenzen aufgelöst werden.
      Throws:
      java.io.IOException - Wenn beim Lesen vom Eingabe-Stream Fehler aufgetreten sind.
      See Also:
      ClientDavConnection.createData(de.bsvrz.dav.daf.main.config.AttributeGroup)
    • readData

      Data readData​(AttributeGroup atg, ObjectLookup dataModel) throws java.io.IOException
      Liest und deserialisiert einen Datensatz aus dem Eingabe-Stream dieses Deserialisierers.
      Parameters:
      atg - Attributgruppe des einzulesenden Datensatzes.
      dataModel - Datenmodell mit dessen Hilfe Objektreferenzen aufgelöst werden.
      Returns:
      Eingelesener Datensatz
      Throws:
      java.io.IOException - Wenn beim Lesen vom Eingabe-Stream Fehler aufgetreten sind.
    • readBoolean

      boolean readBoolean() throws java.io.IOException
      Liest und deserialisiert einen boolean-Wert vom Eingabe-Strom dieses Deserialisierers.
      Returns:
      Der eingelesene Wert.
      Throws:
      java.io.IOException - Wenn beim Lesen vom Eingabe-Stream Fehler aufgetreten sind.
    • readObjectReference

      SystemObject readObjectReference​(ObjectLookup dataModel) throws java.io.IOException
      Liest und deserialisiert eine Referenz auf ein Systemobjekt vom Eingabe-Stream dieses Deserialisierers.
      Parameters:
      dataModel - Datenmodell mit dessen Hilfe Objektreferenzen aufgelöst werden.
      Returns:
      Das referenzierte Systemobjekt oder null, wenn das referenzierte Objekt nicht bestimmt werden kann.
      Throws:
      java.io.IOException - Wenn beim Lesen vom Eingabe-Stream Fehler aufgetreten sind.
    • readObjectReferences

      default java.util.List<SystemObject> readObjectReferences​(DataModel dataModel) throws java.io.IOException
      Liest mehrere Objektreferenzen vom Eingabe-Stream dieses Deserialisierers. Diese Methode liefert das gleiche Resultat wie

      size = readInt()

      gefolgt von *size* Aufrufen von

      readObjectReference().

      Parameters:
      dataModel - Datenmodell mit dessen Hilfe Objektreferenzen aufgelöst werden.
      Returns:
      Arrays von referenzierten Systemobjekten (ggf. mit null-Elementen wenn ein Objekt nicht aufgelöst werden konnte)
      Throws:
      java.io.IOException - Wenn beim Lesen vom Eingabe-Stream Fehler aufgetreten sind.
    • readByte

      byte readByte() throws java.io.IOException
      Liest und deserialisiert einen byte-Wert vom Eingabe-Stream dieses Deserialisierers.
      Returns:
      Der eingelesene Wert.
      Throws:
      java.io.IOException - Wenn beim Lesen vom Eingabe-Stream Fehler aufgetreten sind.
    • readUnsignedByte

      int readUnsignedByte() throws java.io.IOException
      Liest und deserialisiert einen byte-Wert vom Eingabe-Stream dieses Deserialisierers und interpretiert den Wert als vorzeichenlose Zahl.
      Returns:
      Der eingelesene Wert als vorzeichenlose Zahl.
      Throws:
      java.io.IOException - Wenn beim Lesen vom Eingabe-Stream Fehler aufgetreten sind.
    • readShort

      short readShort() throws java.io.IOException
      Liest und deserialisiert einen short-Wert vom Eingabe-Stream dieses Deserialisierers.
      Returns:
      Der eingelesene Wert.
      Throws:
      java.io.IOException - Wenn beim Lesen vom Eingabe-Stream Fehler aufgetreten sind.
    • readUnsignedShort

      int readUnsignedShort() throws java.io.IOException
      Liest und deserialisiert einen short-Wert vom Eingabe-Stream dieses Deserialisierers und interpretiert den Wert als vorzeichenlose Zahl.
      Returns:
      Der eingelesene Wert als vorzeichenlose Zahl.
      Throws:
      java.io.IOException - Wenn beim Lesen vom Eingabe-Stream Fehler aufgetreten sind.
    • readInt

      int readInt() throws java.io.IOException
      Liest und deserialisiert einen int-Wert vom Eingabe-Stream dieses Deserialisierers.
      Returns:
      Der eingelesene Wert.
      Throws:
      java.io.IOException - Wenn beim Lesen vom Eingabe-Stream Fehler aufgetreten sind.
    • readUnsignedInt

      long readUnsignedInt() throws java.io.IOException
      Liest und deserialisiert einen int-Wert vom Eingabe-Stream dieses Deserialisierers und interpretiert den Wert als vorzeichenlose Zahl.
      Returns:
      Der eingelesene Wert als vorzeichenlose Zahl.
      Throws:
      java.io.IOException - Wenn beim Lesen vom Eingabe-Stream Fehler aufgetreten sind.
    • readLong

      long readLong() throws java.io.IOException
      Liest und deserialisiert einen long-Wert vom Eingabe-Stream dieses Deserialisierers.
      Returns:
      Der eingelesene Wert.
      Throws:
      java.io.IOException - Wenn beim Lesen vom Eingabe-Stream Fehler aufgetreten sind.
    • readFloat

      float readFloat() throws java.io.IOException
      Liest und deserialisiert einen float-Wert vom Eingabe-Stream dieses Deserialisierers.
      Returns:
      Der eingelesene Wert.
      Throws:
      java.io.IOException - Wenn beim Lesen vom Eingabe-Stream Fehler aufgetreten sind.
    • readDouble

      double readDouble() throws java.io.IOException
      Liest und deserialisiert einen double-Wert vom Eingabe-Stream dieses Deserialisierers.
      Returns:
      Der eingelesene Wert.
      Throws:
      java.io.IOException - Wenn beim Lesen vom Eingabe-Stream Fehler aufgetreten sind.
    • readString

      java.lang.String readString() throws java.io.IOException
      Liest und deserialisiert einen String-Wert mit einer maximalen Länge von 65535 vom Eingabe-Stream dieses Deserialisierers.
      Returns:
      Der eingelesene String.
      Throws:
      java.io.IOException - Wenn beim Lesen vom Eingabe-Stream Fehler aufgetreten sind.
    • readString

      java.lang.String readString​(int maxLength) throws java.io.IOException
      Liest und deserialisiert einen String-Wert mit einer vorgegebenen Maximal-Länge vom Eingabe-Stream dieses Deserialisierers. Es ist zu beachten, dass beim Deserialiseren die gleiche Maximalgröße wie beim Serialisieren angegeben wird.
      Parameters:
      maxLength - Maximale Länge des einzulesenden Strings oder 0 wenn keine Begrenzung vorgegeben werden kann.
      Returns:
      Der eingelesene String.
      Throws:
      java.io.IOException - Wenn beim Lesen vom Eingabe-Stream Fehler aufgetreten sind.
    • readBytes

      byte[] readBytes​(int length) throws java.io.IOException
      Liest ein Byte-Array mit vorgegebener Länge vom Eingabe-Stream dieses Deserialisierers. Es ist zu beachten, das als Länge exakt die Größe des entsprechenden serialisierten Arrays angegeben werden muss.
      Parameters:
      length - Länge des einzulesenden Byte-Arrays
      Returns:
      Das eingelesene Byte-Array
      Throws:
      java.io.IOException - Wenn beim Lesen vom Eingabe-Stream Fehler aufgetreten sind.
    • readBytes

      void readBytes​(byte[] buffer, int offset, int length) throws java.io.IOException
      Liest eine vorgegebene Anzahl von Bytes vom Eingabe-Stream dieses Deserialisierers ein und speichert diese an einem vorgegebenen Offset in ein vorhandenes Byte-Array. Es ist zu beachten, das als Länge exakt die Größe des entsprechenden serialisierten Arrays angegeben werden muss.
      Parameters:
      buffer - Byte-Array in das die eingelesenen Bytes gespeichert werden sollen.
      offset - Startposition im Byte-Array ab der die eingelesenen Bytes gespeichert werden sollen.
      length - Anzahl der einzulesenden Bytes
      Throws:
      java.io.IOException - Wenn beim Lesen vom Eingabe-Stream Fehler aufgetreten sind.