org.apache.tinkerpop.gremlin.driver

## Class Client

- java.lang.Object
- - org.apache.tinkerpop.gremlin.driver.Client

- Direct Known Subclasses:
    Client.ClusteredClient, Client.ReboundClusteredClient, Client.SessionedClient

      public abstract class Client
      extends Object

  A `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.
  Author:
    Stephen Mallette (http://stephen.genoprime.com)

- - ### Nested Class Summary

    Nested Classes
    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.ReboundClusteredClient` Deprecated. As of release 3.1.1-incubating, replaced by `Client.AliasClusteredClient`.
    `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.

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected Cluster` | `cluster`
    `protected boolean` | `initialized`
    `protected Client.Settings` | `settings`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods
    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 final 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)`
    `Client` | `rebind(Map<String,String> rebindings)` Deprecated.
    `Client` | `rebind(String graphOrTraversalSource)` Deprecated. As of release 3.1.0, replaced by `alias(String)`
    `ResultSet` | `submit(Bytecode bytecode)` Submit a `Bytecode` to the server for remote execution.
    `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(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(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)` 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, String graphOrTraversalSource, 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(Traversal traversal)` An asynchronous version of `submit(Traversal)`.

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

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

- - ### Field Detail

    - #### cluster

          protected final Cluster cluster

    - #### initialized

          protected volatile boolean initialized

    - #### settings

          protected final Client.Settings settings

  - ### Method Detail

    - #### buildMessage

          public RequestMessage.Builder buildMessage(RequestMessage.Builder builder)

      Makes any final changes to the builder and returns the constructed `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.

    - #### initializeImplementation

          protected abstract void initializeImplementation()

      Called in the `init()` method.

    - #### chooseConnection

          protected abstract org.apache.tinkerpop.gremlin.driver.Connection chooseConnection(RequestMessage msg)
                                                                                      throws TimeoutException,
                                                                                             ConnectionException

      Chooses a `Connection` to write the message to.
      Throws:
        `TimeoutException`
        `ConnectionException`

    - #### closeAsync

          public abstract CompletableFuture<Void> closeAsync()

      Asynchronous close of the `Client`.

    - #### rebind

          @Deprecated
          public Client rebind(String graphOrTraversalSource)

      Deprecated. As of release 3.1.0, replaced by `alias(String)`
      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`.
      Parameters:
        `graphOrTraversalSource` - rebinds the specified global Gremlin Server variable to "g"

    - #### alias

          public 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`.
      Parameters:
        `graphOrTraversalSource` - rebinds the specified global Gremlin Server variable to "g"

    - #### rebind

          @Deprecated
          public Client rebind(Map<String,String> rebindings)

      Deprecated.
      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`.

    - #### alias

          public 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`.

    - #### submit

          public 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.

    - #### submitAsync

          public CompletableFuture<ResultSet> submitAsync(Traversal traversal)

      An asynchronous version of `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.

    - #### submit

          public ResultSet submit(Bytecode bytecode)

      Submit a `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.

    - #### submitAsync

          public CompletableFuture<ResultSet> submitAsync(Bytecode bytecode)

      An asynchronous version of `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.

    - #### init

          public Client init()

      Initializes the client which typically means that a connection is established to the server. Depending on the implementation and configuration this blocking call may take some time. This method will be called automatically if it is not called directly and multiple calls will not have effect.

    - #### submit

          public ResultSet submit(String gremlin)

      Submits a Gremlin script to the server and returns a `ResultSet` once the write of the request is complete.
      Parameters:
        `gremlin` - the gremlin script to execute

    - #### submit

          public 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. 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.
      Parameters:
        `gremlin` - the gremlin script to execute
        `parameters` - a map of parameters that will be bound to the script on execution

    - #### submitAsync

          public CompletableFuture<ResultSet> submitAsync(String gremlin)

      The asynchronous version of `submit(String)` where the returned future will complete when the write of the request completes.
      Parameters:
        `gremlin` - the gremlin script to execute

    - #### submitAsync

          public 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.
      Parameters:
        `gremlin` - the gremlin script to execute
        `parameters` - a map of parameters that will be bound to the script on execution

    - #### submitAsync

          public CompletableFuture<ResultSet> submitAsync(String gremlin,
                                                          String graphOrTraversalSource,
                                                          Map<String,Object> parameters)

      The asynchronous version of `submit(String, Map)`} where the returned future will complete when the write of the request completes.
      Parameters:
        `gremlin` - the gremlin script to execute
        `parameters` - a map of parameters that will be bound to the script on execution
        `graphOrTraversalSource` - rebinds the specified global Gremlin Server variable to "g"

    - #### submitAsync

          public CompletableFuture<ResultSet> submitAsync(String gremlin,
                                                          Map<String,String> aliases,
                                                          Map<String,Object> parameters)

      The asynchronous version of `submit(String, Map)`} where the returned future will complete when the write of the request completes.
      Parameters:
        `gremlin` - the gremlin script to execute
        `parameters` - a map of parameters that will be bound to the script on execution
        `aliases` - 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 server

    - #### submitAsync

          public CompletableFuture<ResultSet> submitAsync(RequestMessage msg)

      A low-level method that allows the submission of a manually constructed `RequestMessage`.

    - #### isClosing

          public abstract boolean isClosing()

    - #### close

          public void close()

      Closes the client by making a synchronous call to `closeAsync()`.

    - #### getSettings

          public Client.Settings getSettings()

      Gets the `Client.Settings`.

    - #### getCluster

          public Cluster getCluster()

      Gets the `Cluster` that spawned this `Client`.

    - #### makeDefaultAliasMap

          protected Map<String,String> makeDefaultAliasMap(String graphOrTraversalSource)

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