All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.tinkerpop.gremlin.driver.ser.Serializers Maven / Gradle / Ivy

package com.tinkerpop.gremlin.driver.ser;

import com.tinkerpop.gremlin.driver.MessageSerializer;

/**
 * An enum of the default serializers.
 *
 * @author Stephen Mallette (http://stephen.genoprime.com)
 */
public enum Serializers {
    JSON(SerTokens.MIME_JSON),
    JSON_V1D0(SerTokens.MIME_JSON_V1D0),
    KRYO_V1D0(SerTokens.MIME_KRYO_V1D0);

    private String value;

    /**
     * Default serializer for results returned from Gremlin Server. This implementation must be of type
     * {@link com.tinkerpop.gremlin.driver.ser.MessageTextSerializer} so that it can be compatible with text-based
     * websocket messages.
     */
    public static final MessageSerializer DEFAULT_RESULT_SERIALIZER = new JsonMessageSerializerV1d0();

    /**
     * Default serializer for requests received by Gremlin Server. This implementation must be of type
     * {@link com.tinkerpop.gremlin.driver.ser.MessageTextSerializer} so that it can be compatible with text-based
     * websocket messages.
     */
    public static final MessageSerializer DEFAULT_REQUEST_SERIALIZER = new JsonMessageSerializerV1d0();

    private Serializers(final String mimeType) {
        this.value = mimeType;
    }

    public String getValue() {
        return value;
    }

    public MessageSerializer simpleInstance() {
        switch (value) {
            case SerTokens.MIME_JSON:
                return new JsonMessageSerializerV1d0();
            case SerTokens.MIME_JSON_V1D0:
                return new JsonMessageSerializerGremlinV1d0();
            case SerTokens.MIME_KRYO_V1D0:
                return new KryoMessageSerializerV1d0();
            default:
                throw new RuntimeException("Could not create a simple MessageSerializer instance of " + value);
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy