Interface RemoteAcceptor

  • All Superinterfaces:
    AutoCloseable, Closeable

    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)
    • 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.