public abstract class Client extends Object
Client
is constructed from a Cluster
and represents a way to send messages to Gremlin Server.
This class itself is a base class as there are different implementations that provide differing kinds of
functionality. See the implementations for specifics on their individual usage.
The Client
is designed to be re-used and shared across threads.Modifier and Type | Class and Description |
---|---|
static class |
Client.AliasClusteredClient
Uses a
Client.ClusteredClient that rebinds requests to a specified Graph or
TraversalSource instances on the server-side. |
static class |
Client.ClusteredClient
A
Client implementation that does not operate in a session. |
static class |
Client.SessionedClient
A
Client implementation that operates in the context of a session. |
static class |
Client.SessionSettings
Settings for a
Client that involve a session. |
static class |
Client.Settings
Settings given to
Cluster.connect(Client.Settings) that configures how a Client will behave. |
Modifier and Type | Field and Description |
---|---|
protected Cluster |
cluster |
protected boolean |
initialized |
protected Client.Settings |
settings |
Modifier and Type | Method and Description |
---|---|
Client |
alias(Map<String,String> aliases)
Creates a
Client that supplies the specified set of aliases, thus allowing the user to re-name
one or more globally defined Graph or TraversalSource server bindings for the context of
the created Client . |
Client |
alias(String graphOrTraversalSource)
Create a new
Client that aliases the specified Graph or TraversalSource name on the
server to a variable called "g" for the context of the requests made through that Client . |
RequestMessage.Builder |
buildMessage(RequestMessage.Builder builder)
Makes any initial changes to the builder and returns the constructed
RequestMessage . |
protected abstract org.apache.tinkerpop.gremlin.driver.Connection |
chooseConnection(RequestMessage msg)
Chooses a
Connection to write the message to. |
void |
close()
Closes the client by making a synchronous call to
closeAsync() . |
abstract CompletableFuture<Void> |
closeAsync()
Asynchronous close of the
Client . |
Cluster |
getCluster()
Gets the
Cluster that spawned this Client . |
Client.Settings |
getSettings()
Gets the
Client.Settings . |
Client |
init()
Initializes the client which typically means that a connection is established to the server.
|
protected abstract void |
initializeImplementation()
Called in the
init() method. |
abstract boolean |
isClosing() |
protected Map<String,String> |
makeDefaultAliasMap(String graphOrTraversalSource) |
ResultSet |
submit(Bytecode bytecode)
Submit a
Bytecode to the server for remote execution. |
ResultSet |
submit(Bytecode bytecode,
RequestOptions options)
A version of
submit(Bytecode) which provides the ability to set per-request options. |
ResultSet |
submit(String gremlin)
Submits a Gremlin script to the server and returns a
ResultSet once the write of the request is
complete. |
ResultSet |
submit(String gremlin,
Map<String,Object> parameters)
Submits a Gremlin script and bound parameters to the server and returns a
ResultSet once the write of
the request is complete. |
ResultSet |
submit(String gremlin,
RequestOptions options)
Submits a Gremlin script to the server and returns a
ResultSet once the write of the request is
complete. |
ResultSet |
submit(Traversal traversal)
Submit a
Traversal to the server for remote execution.Results are returned as Traverser
instances and are therefore bulked, meaning that to properly iterate the contents of the result each
Traverser.bulk() must be examined to determine the number of times that object should be presented in
iteration. |
CompletableFuture<ResultSet> |
submitAsync(Bytecode bytecode)
An asynchronous version of
submit(Traversal) . |
CompletableFuture<ResultSet> |
submitAsync(Bytecode bytecode,
RequestOptions options)
A version of
submit(Bytecode) which provides the ability to set per-request options. |
CompletableFuture<ResultSet> |
submitAsync(RequestMessage msg)
A low-level method that allows the submission of a manually constructed
RequestMessage . |
CompletableFuture<ResultSet> |
submitAsync(String gremlin)
The asynchronous version of
submit(String) where the returned future will complete when the
write of the request completes. |
CompletableFuture<ResultSet> |
submitAsync(String gremlin,
Map<String,Object> parameters)
The asynchronous version of
submit(String, Map) } where the returned future will complete when the
write of the request completes. |
CompletableFuture<ResultSet> |
submitAsync(String gremlin,
Map<String,String> aliases,
Map<String,Object> parameters)
Deprecated.
As of release 3.4.0, replaced by
submitAsync(String, RequestOptions) . |
CompletableFuture<ResultSet> |
submitAsync(String gremlin,
RequestOptions options)
The asynchronous version of
submit(String, RequestOptions) } where the returned future will complete when the
write of the request completes. |
CompletableFuture<ResultSet> |
submitAsync(String gremlin,
String graphOrTraversalSource,
Map<String,Object> parameters)
Deprecated.
As of release 3.4.0, replaced by
submitAsync(String, RequestOptions) . |
CompletableFuture<ResultSet> |
submitAsync(Traversal traversal)
An asynchronous version of
submit(Traversal) . |
protected final Cluster cluster
protected volatile boolean initialized
protected final Client.Settings settings
public RequestMessage.Builder buildMessage(RequestMessage.Builder builder)
RequestMessage
. Implementers
may choose to override this message to append data to the request before sending. By default, this method
will simply return the builder
passed in by the caller.protected abstract void initializeImplementation()
init()
method.protected abstract org.apache.tinkerpop.gremlin.driver.Connection chooseConnection(RequestMessage msg) throws TimeoutException, ConnectionException
Connection
to write the message to.TimeoutException
ConnectionException
public abstract CompletableFuture<Void> closeAsync()
Client
.public Client alias(String graphOrTraversalSource)
Client
that aliases the specified Graph
or TraversalSource
name on the
server to a variable called "g" for the context of the requests made through that Client
.graphOrTraversalSource
- rebinds the specified global Gremlin Server variable to "g"public Client alias(Map<String,String> aliases)
Client
that supplies the specified set of aliases, thus allowing the user to re-name
one or more globally defined Graph
or TraversalSource
server bindings for the context of
the created Client
.public ResultSet submit(Traversal traversal)
Traversal
to the server for remote execution.Results are returned as Traverser
instances and are therefore bulked, meaning that to properly iterate the contents of the result each
Traverser.bulk()
must be examined to determine the number of times that object should be presented in
iteration.public CompletableFuture<ResultSet> submitAsync(Traversal traversal)
submit(Traversal)
. Results are returned as Traverser
instances and
are therefore bulked, meaning that to properly iterate the contents of the result each Traverser.bulk()
must be examined to determine the number of times that object should be presented in iteration.public ResultSet submit(Bytecode bytecode)
Bytecode
to the server for remote execution. Results are returned as Traverser
instances and are therefore bulked, meaning that to properly iterate the contents of the result each
Traverser.bulk()
must be examined to determine the number of times that object should be presented in
iteration.public ResultSet submit(Bytecode bytecode, RequestOptions options)
submit(Bytecode)
which provides the ability to set per-request options.bytecode
- request in the form of gremlin Bytecode
options
- for the requestsubmit(Bytecode)
public CompletableFuture<ResultSet> submitAsync(Bytecode bytecode)
submit(Traversal)
. Results are returned as Traverser
instances and
are therefore bulked, meaning that to properly iterate the contents of the result each Traverser.bulk()
must be examined to determine the number of times that object should be presented in iteration.public CompletableFuture<ResultSet> submitAsync(Bytecode bytecode, RequestOptions options)
submit(Bytecode)
which provides the ability to set per-request options.bytecode
- request in the form of gremlin Bytecode
options
- for the requestsubmitAsync(Bytecode)
public Client init()
public ResultSet submit(String gremlin)
ResultSet
once the write of the request is
complete.gremlin
- the gremlin script to executepublic ResultSet submit(String gremlin, Map<String,Object> parameters)
ResultSet
once the write of
the request is complete. If a script is to be executed repeatedly with slightly different arguments, prefer
this method to concatenating a Gremlin script from dynamically produced strings and sending it to
submit(String)
. Parameterized scripts will perform better.gremlin
- the gremlin script to executeparameters
- a map of parameters that will be bound to the script on executionpublic ResultSet submit(String gremlin, RequestOptions options)
ResultSet
once the write of the request is
complete.gremlin
- the gremlin script to executeoptions
- for the requestpublic CompletableFuture<ResultSet> submitAsync(String gremlin)
submit(String)
where the returned future will complete when the
write of the request completes.gremlin
- the gremlin script to executepublic CompletableFuture<ResultSet> submitAsync(String gremlin, Map<String,Object> parameters)
submit(String, Map)
} where the returned future will complete when the
write of the request completes.gremlin
- the gremlin script to executeparameters
- a map of parameters that will be bound to the script on execution@Deprecated public CompletableFuture<ResultSet> submitAsync(String gremlin, String graphOrTraversalSource, Map<String,Object> parameters)
submitAsync(String, RequestOptions)
.submit(String, Map)
} where the returned future will complete when the
write of the request completes.gremlin
- the gremlin script to executeparameters
- a map of parameters that will be bound to the script on executiongraphOrTraversalSource
- rebinds the specified global Gremlin Server variable to "g"@Deprecated public CompletableFuture<ResultSet> submitAsync(String gremlin, Map<String,String> aliases, Map<String,Object> parameters)
submitAsync(String, RequestOptions)
.submit(String, Map)
} where the returned future will complete when the
write of the request completes.gremlin
- the gremlin script to executeparameters
- a map of parameters that will be bound to the script on executionaliases
- aliases the specified global Gremlin Server variable some other name that then be used in the
script where the key is the alias name and the value represents the global variable on the
serverpublic CompletableFuture<ResultSet> submitAsync(String gremlin, RequestOptions options)
submit(String, RequestOptions)
} where the returned future will complete when the
write of the request completes.gremlin
- the gremlin script to executeoptions
- the options to supply for this requestpublic CompletableFuture<ResultSet> submitAsync(RequestMessage msg)
RequestMessage
.public abstract boolean isClosing()
public void close()
closeAsync()
.public Client.Settings getSettings()
Client.Settings
.Copyright © 2013–2020 Apache Software Foundation. All rights reserved.