Class AbstractMemberMarshaller<T, M extends Member>

java.lang.Object
org.wildfly.clustering.marshalling.protostream.reflect.AbstractMemberMarshaller<T,M>
Type Parameters:
T - the target type of this marshaller
M - the reflection member type
All Implemented Interfaces:
Function<Object[],T>, org.infinispan.protostream.BaseMarshaller<T>, org.infinispan.protostream.ProtobufTagMarshaller<T>, Marshallable<T>, ProtoStreamMarshaller<T>, Readable<T>, Writable<T>
Direct Known Subclasses:
BinaryMemberMarshaller, TernaryMemberMarshaller, UnaryMemberMarshaller

public abstract class AbstractMemberMarshaller<T, M extends Member> extends Object implements ProtoStreamMarshaller<T>, Function<Object[],T>
Generic marshaller based on non-public members.
Author:
Paul Ferraro
  • Constructor Details

    • AbstractMemberMarshaller

      public AbstractMemberMarshaller(Class<? extends T> type, BiFunction<Object,M,Object> accessor, BiFunction<Class<?>,Class<?>,M> memberLocator, Class<?>... memberTypes)
      Creates a marshaller using the specified member fields.
      Parameters:
      type - the marshalled object type
      accessor - a field accessor
      memberLocator - a member locator function
      memberTypes - the field types
  • Method Details

    • getJavaClass

      public Class<? extends T> getJavaClass()
      Description copied from interface: Marshallable
      Returns the type of object handled by this marshallable instance.
      Specified by:
      getJavaClass in interface org.infinispan.protostream.BaseMarshaller<T>
      Specified by:
      getJavaClass in interface Marshallable<T>
      Returns:
      the type of object handled by this marshallable instance.
    • readFrom

      public T readFrom(ProtoStreamReader reader) throws IOException
      Description copied from interface: Readable
      Reads an object from the specified reader.
      Specified by:
      readFrom in interface Readable<T>
      Parameters:
      reader - a ProtoStream reader
      Returns:
      the read object
      Throws:
      IOException - if the object could not be read
    • writeTo

      public void writeTo(ProtoStreamWriter writer, T source) throws IOException
      Description copied from interface: Writable
      Writes the specified object to the specified writer.
      Specified by:
      writeTo in interface Writable<T>
      Parameters:
      writer - a ProtoStream writer
      source - the object to be written
      Throws:
      IOException - if the object could not be written