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

com.tinkerpop.gremlin.driver.message.ResponseMessage Maven / Gradle / Ivy

package com.tinkerpop.gremlin.driver.message;

import java.util.UUID;

/**
 * @author Stephen Mallette (http://stephen.genoprime.com)
 */
public class ResponseMessage {

    /**
     * The current request that generated this response.
     */
    private final UUID requestId;
    private final ResultCode code;
    private final Object result;
    private final ResultType resultType;

    private ResponseMessage(final UUID requestId, final ResultCode code,
                            final Object result, final ResultType resultType) {
        this.requestId = requestId;
        this.code = code;
        this.result = result;
        this.resultType = resultType;
    }

    public ResultType getResultType() {
        return resultType;
    }

    public UUID getRequestId() {
        return requestId;
    }

    public ResultCode getCode() {
        return code;
    }

    public Object getResult() {
        return result;
    }

    @Override
    public String toString() {
        return "ResponseMessage{" +
                "requestId=" + requestId +
                ", code=" + code +
                ", result=" + result +
                ", resultType=" + resultType +
                '}';
    }

    public static Builder build(final RequestMessage requestMessage) {
        return new Builder(requestMessage);
    }

    public static Builder build(final UUID requestId) {
        return new Builder(requestId);
    }

    public static class Builder {

        private final UUID requestId;
        private ResultCode code = ResultCode.SUCCESS;
        private Object result = null;
        private ResultType contents = ResultType.OBJECT;

        private Builder(final RequestMessage requestMessage) {
            this.requestId = requestMessage.getRequestId();
        }

        private Builder(final UUID requestId) {
            this.requestId = requestId;
        }

        public Builder code(final ResultCode code) {
            this.code = code;
            return this;
        }

        public Builder result(final Object result) {
            this.result = result;
            return this;
        }

        public Builder contents(final ResultType contents) {
            this.contents = contents;
            return this;
        }

        public ResponseMessage create() {
            return new ResponseMessage(requestId, code, result, contents);
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy