org.apache.tinkerpop.gremlin.server.op

## Class AbstractOpProcessor

- java.lang.Object
- - org.apache.tinkerpop.gremlin.server.op.AbstractOpProcessor

- All Implemented Interfaces:
    AutoCloseable, OpProcessor
  Direct Known Subclasses:
    AbstractEvalOpProcessor, TraversalOpProcessor

      public abstract class AbstractOpProcessor
      extends Object
      implements OpProcessor

  A base `OpProcessor` implementation that processes an `Iterator` of results in a generalized way while ensuring that graph transactions are properly managed.
  Author:
    Stephen Mallette (http://stephen.genoprime.com)

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected boolean` | `manageTransactions` When set to `true`, transactions are always managed otherwise they can be overridden by the request.

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `AbstractOpProcessor(boolean manageTransactions)`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected static void` | `attemptCommit(RequestMessage msg, GraphManager graphManager, boolean strict)`
    `protected static void` | `attemptRollback(RequestMessage msg, GraphManager graphManager, boolean strict)`
    `protected Map<String,Object>` | `generateMetaData(ChannelHandlerContext ctx, RequestMessage msg, ResponseStatusCode code, Iterator itty)` Generates meta-data to put on a `ResponseMessage`.
    `protected void` | `handleIterator(Context context, Iterator itty)` Provides a generic way of iterating a result set back to the client.
    `protected void` | `handleIterator(ResponseHandlerContext rhc, Iterator itty)` A variant of `handleIterator(Context, Iterator)` that is suitable for use in situations when multiple threads may produce `final` response messages concurrently.
    `protected boolean` | `isForceFlushed(ChannelHandlerContext ctx, RequestMessage msg, Iterator itty)` Determines if a `Frame` should be force flushed outside of the `resultIterationBatchSize` and the termination of the iterator.
    `protected void` | `iterateComplete(ChannelHandlerContext ctx, RequestMessage msg, Iterator itty)` Called when iteration within `handleIterator(Context, Iterator)` is on its final pass and the final frame is about to be sent back to the client.
    `protected static Frame` | `makeFrame(ChannelHandlerContext ctx, RequestMessage msg, MessageSerializer serializer, boolean useBinary, List<Object> aggregate, ResponseStatusCode code)` Deprecated. As of release 3.2.2, replaced by `makeFrame(ChannelHandlerContext, RequestMessage, MessageSerializer, boolean, List, ResponseStatusCode, Map)`.
    `protected static Frame` | `makeFrame(ChannelHandlerContext ctx, RequestMessage msg, MessageSerializer serializer, boolean useBinary, List<Object> aggregate, ResponseStatusCode code, Map<String,Object> responseMetaData)` Caution: `#makeFrame(ResponseHandlerContext, RequestMessage, MessageSerializer, boolean, List, ResponseStatusCode, Map)` should be used instead of this method whenever a `ResponseHandlerContext` is available.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface org.apache.tinkerpop.gremlin.server.OpProcessor

      `getName, init, select`

    - ### Methods inherited from interface java.lang.AutoCloseable

      `close`

- - ### Field Detail

    - #### manageTransactions

          protected final boolean manageTransactions

      When set to `true`, transactions are always managed otherwise they can be overridden by the request.

  - ### Constructor Detail

    - #### AbstractOpProcessor

          protected AbstractOpProcessor(boolean manageTransactions)

  - ### Method Detail

    - #### handleIterator

          protected void handleIterator(Context context,
                                        Iterator itty)
                                 throws TimeoutException,
                                        InterruptedException

      Provides a generic way of iterating a result set back to the client. Implementers should respect the `Settings.serializedResponseTimeout` configuration and break the serialization process if it begins to take too long to do so, throwing a `TimeoutException` in such cases.
      Parameters:
        `context` - The Gremlin Server `Context` object containing settings, request message, etc.
        `itty` - The result to iterator
      Throws:
        `TimeoutException` - if the time taken to serialize the entire result set exceeds the allowable time.
        `InterruptedException`
      See Also:
        `handleIterator(ResponseHandlerContext, Iterator)`

    - #### handleIterator

          protected void handleIterator(ResponseHandlerContext rhc,
                                        Iterator itty)
                                 throws TimeoutException,
                                        InterruptedException

      A variant of `handleIterator(Context, Iterator)` that is suitable for use in situations when multiple threads may produce `final` response messages concurrently.
      Throws:
        `TimeoutException`
        `InterruptedException`
      See Also:
        `handleIterator(Context, Iterator)`

    - #### iterateComplete

          protected void iterateComplete(ChannelHandlerContext ctx,
                                         RequestMessage msg,
                                         Iterator itty)

      Called when iteration within `handleIterator(Context, Iterator)` is on its final pass and the final frame is about to be sent back to the client. This method only gets called on successful iteration of the entire result.

    - #### isForceFlushed

          protected boolean isForceFlushed(ChannelHandlerContext ctx,
                                           RequestMessage msg,
                                           Iterator itty)

      Determines if a `Frame` should be force flushed outside of the `resultIterationBatchSize` and the termination of the iterator. By default this method return `false`.
      Parameters:
        `itty` - a reference to the current `Iterator` of results - it is not meant to be forwarded in this method

    - #### generateMetaData

          protected Map<String,Object> generateMetaData(ChannelHandlerContext ctx,
                                                        RequestMessage msg,
                                                        ResponseStatusCode code,
                                                        Iterator itty)

      Generates meta-data to put on a `ResponseMessage`.
      Parameters:
        `itty` - a reference to the current `Iterator` of results - it is not meant to be forwarded in this method

    - #### makeFrame

          @Deprecated
          protected static Frame makeFrame(ChannelHandlerContext ctx,
                                                       RequestMessage msg,
                                                       MessageSerializer serializer,
                                                       boolean useBinary,
                                                       List<Object> aggregate,
                                                       ResponseStatusCode code)
                                                throws Exception

      Deprecated. As of release 3.2.2, replaced by `makeFrame(ChannelHandlerContext, RequestMessage, MessageSerializer, boolean, List, ResponseStatusCode, Map)`.
      Throws:
        `Exception`

    - #### makeFrame

          protected static Frame makeFrame(ChannelHandlerContext ctx,
                                           RequestMessage msg,
                                           MessageSerializer serializer,
                                           boolean useBinary,
                                           List<Object> aggregate,
                                           ResponseStatusCode code,
                                           Map<String,Object> responseMetaData)
                                    throws Exception

      Caution: `#makeFrame(ResponseHandlerContext, RequestMessage, MessageSerializer, boolean, List, ResponseStatusCode, Map)` should be used instead of this method whenever a `ResponseHandlerContext` is available.
      Throws:
        `Exception`

    - #### attemptCommit

          protected static void attemptCommit(RequestMessage msg,
                                              GraphManager graphManager,
                                              boolean strict)

    - #### attemptRollback

          protected static void attemptRollback(RequestMessage msg,
                                                GraphManager graphManager,
                                                boolean strict)

Copyright © 2013–2019 Apache Software Foundation. All rights reserved.