public abstract class AbstractEvalOpProcessor extends AbstractOpProcessor
OpProcessor
implementation that helps with operations that deal
with script evaluation functions.Modifier and Type | Class and Description |
---|---|
static interface |
AbstractEvalOpProcessor.BindingSupplier |
Modifier and Type | Field and Description |
---|---|
static String |
CONFIG_MAX_PARAMETERS
The maximum number of parameters that can be passed on a script evaluation request.
|
static int |
DEFAULT_MAX_PARAMETERS
Default number of parameters allowed on a script evaluation request.
|
static Timer |
evalOpTimer |
protected static Set<String> |
INVALID_BINDINGS_KEYS
This may or may not be the full set of invalid binding keys.
|
protected int |
maxParameters |
manageTransactions
Modifier | Constructor and Description |
---|---|
protected |
AbstractEvalOpProcessor(boolean manageTransactions) |
Modifier and Type | Method and Description |
---|---|
protected void |
evalOpInternal(Context context,
Supplier<GremlinExecutor> gremlinExecutorSupplier,
AbstractEvalOpProcessor.BindingSupplier bindingsSupplier)
A generalized implementation of the "eval" operation.
|
protected void |
evalOpInternal(ResponseHandlerContext rhc,
Supplier<GremlinExecutor> gremlinExecutorSupplier,
AbstractEvalOpProcessor.BindingSupplier bindingsSupplier)
A variant of
evalOpInternal(Context, Supplier, BindingSupplier) that is suitable for use in situations
when multiple threads may produce final response messages
concurrently. |
abstract ThrowingConsumer<Context> |
getEvalOp()
Provides an operation for evaluating a Gremlin script.
|
ThrowingConsumer<Context> |
select(Context ctx)
Given the context (which contains the RequestMessage), return back a Consumer function that will be
executed with the context.
|
abstract Optional<ThrowingConsumer<Context>> |
selectOther(RequestMessage requestMessage)
A sub-class may have additional "ops" that it will service.
|
protected Optional<ThrowingConsumer<Context>> |
validateEvalMessage(RequestMessage message) |
attemptCommit, attemptRollback, generateMetaData, handleIterator, handleIterator, isForceFlushed, iterateComplete, makeFrame, makeFrame
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getName, init
close
public static final Timer evalOpTimer
public static final String CONFIG_MAX_PARAMETERS
public static final int DEFAULT_MAX_PARAMETERS
protected int maxParameters
protected static final Set<String> INVALID_BINDINGS_KEYS
toUpperCase()
on the accessor values of T
solves an issue where the ScriptEngine
ignores private scope on T
and imports static fields.protected AbstractEvalOpProcessor(boolean manageTransactions)
public abstract ThrowingConsumer<Context> getEvalOp()
public abstract Optional<ThrowingConsumer<Context>> selectOther(RequestMessage requestMessage) throws OpProcessorException
select(Context)
that are not
handled will be passed to this method to see if the sub-class can service the requested op code.OpProcessorException
public ThrowingConsumer<Context> select(Context ctx) throws OpProcessorException
OpProcessor
OpProcessorException
protected Optional<ThrowingConsumer<Context>> validateEvalMessage(RequestMessage message) throws OpProcessorException
OpProcessorException
protected void evalOpInternal(Context context, Supplier<GremlinExecutor> gremlinExecutorSupplier, AbstractEvalOpProcessor.BindingSupplier bindingsSupplier) throws OpProcessorException
ResponseMessage
objects down the Netty pipeline. It also handles script timeouts,
iteration timeouts, metrics and building bindings. Note that result iteration is delegated to the
AbstractOpProcessor.handleIterator(org.apache.tinkerpop.gremlin.server.Context, java.util.Iterator)
method, so those extending this class could override that method for better control
over result iteration.context
- The current Gremlin Server Context
gremlinExecutorSupplier
- A function that returns the GremlinExecutor
to use in executing the
script evaluation.bindingsSupplier
- A function that returns the Bindings
to provide to the
GremlinExecutor.eval(java.lang.String)
method.OpProcessorException
evalOpInternal(ResponseHandlerContext, Supplier, BindingSupplier)
protected void evalOpInternal(ResponseHandlerContext rhc, Supplier<GremlinExecutor> gremlinExecutorSupplier, AbstractEvalOpProcessor.BindingSupplier bindingsSupplier) throws OpProcessorException
evalOpInternal(Context, Supplier, BindingSupplier)
that is suitable for use in situations
when multiple threads may produce final
response messages
concurrently.OpProcessorException
evalOpInternal(Context, Supplier, BindingSupplier)
Copyright © 2013–2019 Apache Software Foundation. All rights reserved.