org.apache.tinkerpop.gremlin.jsr223.console

## Interface RemoteAcceptor

- All Superinterfaces:
    AutoCloseable, Closeable
  All Known Implementing Classes:
    HadoopRemoteAcceptor

      public interface RemoteAcceptor
      extends Closeable

  The Gremlin Console supports the `:remote` and `:submit` commands which provide standardized ways for plugins to provide "remote connections" to resources and a way to "submit" a command to those resources. A "remote connection" does not necessarily have to be a remote server. It simply refers to a resource that is external to the console.

  By implementing this interface and returning an instance of it through `ConsoleCustomizer.getRemoteAcceptor(GremlinShellEnvironment)` a plugin can hook into those commands and provide remoting features.
  Author:
    Stephen Mallette (http://stephen.genoprime.com)

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static String` | `RESULT`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method and Description
    --- | ---
    `default boolean` | `allowRemoteConsole()` If the `RemoteAcceptor` is used in the Gremlin Console, then this method might be called to determine if it can be used in a fashion that supports the `:remote console` command.
    `Object` | `configure(List<String> args)` Gets called when `:remote` is used in conjunction with the `config` option.
    `Object` | `connect(List<String> args)` Gets called when `:remote` is used in conjunction with the "connect" option.
    `Object` | `submit(List<String> args)` Gets called when `:submit` is executed.

    - ### Methods inherited from interface java.io.Closeable

      `close`

- - ### Field Detail

    - #### RESULT

          static final String RESULT

      See Also:
        Constant Field Values

  - ### Method Detail

    - #### connect

          Object connect(List<String> args)
                  throws RemoteException

      Gets called when `:remote` is used in conjunction with the "connect" option. It is up to the implementation to decide how additional arguments on the line should be treated after "connect".
      Returns:
        an object to display as output to the user
      Throws:
        `RemoteException` - if there is a problem with connecting

    - #### configure

          Object configure(List<String> args)
                    throws RemoteException

      Gets called when `:remote` is used in conjunction with the `config` option. It is up to the implementation to decide how additional arguments on the line should be treated after `config`.
      Returns:
        an object to display as output to the user
      Throws:
        `RemoteException` - if there is a problem with configuration

    - #### submit

          Object submit(List<String> args)
                 throws RemoteException

      Gets called when `:submit` is executed. It is up to the implementation to decide how additional arguments on the line should be treated after `:submit`.
      Returns:
        an object to display as output to the user
      Throws:
        `RemoteException` - if there is a problem with submission

    - #### allowRemoteConsole

          default boolean allowRemoteConsole()

      If the `RemoteAcceptor` is used in the Gremlin Console, then this method might be called to determine if it can be used in a fashion that supports the `:remote console` command. By default, this value is set to `false`.

      A `RemoteAcceptor` should only return `true` for this method if it expects that all activities it supports are executed through the `:submit` command. If the users interaction with the remote requires working with both local and remote evaluation at the same time, it is likely best to keep this method return `false`. A good example of this type of plugin would be the Gephi Plugin which uses `:remote config` to configure a local `TraversalSource` to be used and expects calls to `:submit` for the same body of analysis.

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