Interface MessageSerializer<M>


  • public interface MessageSerializer<M>
    Serializes data to and from Gremlin Server. Typically, the object being serialized or deserialized will be an item from an Iterator as returned from the ScriptEngine or an incoming RequestMessage. MessageSerializer instances are instantiated to a cache via ServiceLoader and indexed based on the mime types they support. If a mime type is supported more than once, the first MessageSerializer instance loaded for that mime type is assigned. If a mime type is not found the server default is chosen. The default may change from version to version so it is best to not rely on it when developing applications and to always be explicit in specifying the type you wish to bind to.
    Author:
    Stephen Mallette (http://stephen.genoprime.com)
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static org.slf4j.Logger logger  
    • Method Summary

      All Methods Instance Methods Abstract Methods Default Methods 
      Modifier and Type Method Description
      default void configure​(Map<String,​Object> config, Map<String,​Graph> graphs)
      Configure the serializer with mapper settings as required.
      org.apache.tinkerpop.gremlin.util.message.RequestMessage deserializeRequest​(io.netty.buffer.ByteBuf msg)
      Deserialize a Netty ByteBuf into a RequestMessage.
      org.apache.tinkerpop.gremlin.util.message.ResponseMessage deserializeResponse​(io.netty.buffer.ByteBuf msg)
      Deserialize a Netty ByteBuf into a ResponseMessage.
      M getMapper()
      Gets the "mapper" that performs the underlying serialization work.
      String[] mimeTypesSupported()
      The list of mime types that the serializer supports.
      io.netty.buffer.ByteBuf serializeRequestAsBinary​(org.apache.tinkerpop.gremlin.util.message.RequestMessage requestMessage, io.netty.buffer.ByteBufAllocator allocator)
      Serialize a ResponseMessage to a Netty ByteBuf.
      io.netty.buffer.ByteBuf serializeResponseAsBinary​(org.apache.tinkerpop.gremlin.util.message.ResponseMessage responseMessage, io.netty.buffer.ByteBufAllocator allocator)
      Serialize a ResponseMessage to a Netty ByteBuf.
    • Field Detail

      • logger

        static final org.slf4j.Logger logger
    • Method Detail

      • getMapper

        M getMapper()
        Gets the "mapper" that performs the underlying serialization work.
      • serializeResponseAsBinary

        io.netty.buffer.ByteBuf serializeResponseAsBinary​(org.apache.tinkerpop.gremlin.util.message.ResponseMessage responseMessage,
                                                          io.netty.buffer.ByteBufAllocator allocator)
                                                   throws org.apache.tinkerpop.gremlin.util.ser.SerializationException
        Serialize a ResponseMessage to a Netty ByteBuf.
        Parameters:
        responseMessage - The response message to serialize to bytes.
        allocator - The Netty allocator for the ByteBuf to return back.
        Throws:
        org.apache.tinkerpop.gremlin.util.ser.SerializationException
      • serializeRequestAsBinary

        io.netty.buffer.ByteBuf serializeRequestAsBinary​(org.apache.tinkerpop.gremlin.util.message.RequestMessage requestMessage,
                                                         io.netty.buffer.ByteBufAllocator allocator)
                                                  throws org.apache.tinkerpop.gremlin.util.ser.SerializationException
        Serialize a ResponseMessage to a Netty ByteBuf.
        Parameters:
        requestMessage - The request message to serialize to bytes.
        allocator - The Netty allocator for the ByteBuf to return back.
        Throws:
        org.apache.tinkerpop.gremlin.util.ser.SerializationException
      • deserializeRequest

        org.apache.tinkerpop.gremlin.util.message.RequestMessage deserializeRequest​(io.netty.buffer.ByteBuf msg)
                                                                             throws org.apache.tinkerpop.gremlin.util.ser.SerializationException
        Deserialize a Netty ByteBuf into a RequestMessage.
        Throws:
        org.apache.tinkerpop.gremlin.util.ser.SerializationException
      • deserializeResponse

        org.apache.tinkerpop.gremlin.util.message.ResponseMessage deserializeResponse​(io.netty.buffer.ByteBuf msg)
                                                                               throws org.apache.tinkerpop.gremlin.util.ser.SerializationException
        Deserialize a Netty ByteBuf into a ResponseMessage.
        Throws:
        org.apache.tinkerpop.gremlin.util.ser.SerializationException
      • mimeTypesSupported

        String[] mimeTypesSupported()
        The list of mime types that the serializer supports.
      • configure

        default void configure​(Map<String,​Object> config,
                               Map<String,​Graph> graphs)
        Configure the serializer with mapper settings as required. The default implementation does not perform any function and it is up to the interface implementation to determine how the configuration will be executed and what its requirements are. An implementation may choose to use the list of available graphs to help initialize a serializer. The implementation should account for the possibility of a null value being provided for that parameter.