Interface BaseMarshallerDelegate<T>

  • All Known Implementing Classes:
    EnumMarshallerDelegate

    public interface BaseMarshallerDelegate<T>
    The marshallers (descendants of BaseMarshaller) do not have a uniform interface, so an extra layer of indirection is used to provide uniformity. A delegate object wraps the real marshaller and delegates actual marshalling to it, taking into account the specific interface differences for each kind of marshaller (EnumMarshaller, MessageMarshaller, RawProtobufMarshaller).
    Since:
    1.0
    Author:
    [email protected]
    • Method Detail

      • getMarshaller

        BaseMarshaller<T> getMarshaller()
        Gets the wrapped marshaller.
        Returns:
        the wrapped marshaller instance
      • marshall

        void marshall​(FieldDescriptor fieldDescriptor,
                      T value,
                      org.infinispan.protostream.impl.ProtoStreamWriterImpl writer,
                      RawProtoStreamWriter out)
               throws IOException
        Marshalls an object.
        Parameters:
        fieldDescriptor - the FieldDescriptor of the field being marshalled or null if this is a top-level object
        value - the value being marshalled (cannot be null)
        writer - the ProtoStreamWriterImpl instance to use/re-use, if the specific marshaller type needs one; can be null in which case the delegate has to create a ProtoStreamWriterImpl instance itself based on the out parameter
        out - the Protobuf tag output stream (cannot be null)
        Throws:
        IOException - if marshalling fails for some reason
      • unmarshall

        T unmarshall​(FieldDescriptor fieldDescriptor,
                     org.infinispan.protostream.impl.ProtoStreamReaderImpl reader,
                     RawProtoStreamReader in)
              throws IOException
        Unmarshalls an object.
        Parameters:
        fieldDescriptor - the FieldDescriptor of the field being unmarshalled or null if this is a top-level object
        reader - the ProtoStreamReaderImpl instance to use/re-use, if the specific marshaller type needs one; can be null in which case the delegate has to create a ProtoStreamReaderImpl instance itself based on the in parameter
        in - the Protobuf tag input stream (cannot be null)
        Throws:
        IOException - if unmarshalling fails for some reason