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 Detail

      • 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.