package com.tinkerpop.gremlin.groovy.console;
import java.util.Map;
/**
* Those wanting to extend the Gremlin Console can extend this class to provide custom imports and extension
* methods to the language itself. Gremlin Console uses ServiceLoader to install plugins. It is necessary for
* projects wishing to extend the Console to include a com.tinkerpop.gremlin.groovy.console.ConsolePlugin file in
* META-INF/services of their packaged project which includes the full class names of the implementations of this
* interface to install.
*
* @author Stephen Mallette (http://stephen.genoprime.com)
*/
public interface ConsolePlugin {
/**
* The name of the plugin. This name should be unique as naming clashes will prevent proper plugin operations.
*/
String getName();
/**
* Implementors will typically execute imports of classes within their project that they want available in the
* console. They may use groovy meta programming to introduce new extensions to the Gremlin.
*
* @param args Arbitrary arguments passed from the caller of Gremlin.use() to be used as the plugin sees fit.
*/
void pluginTo(final ConsoleGroovy groovy, final ConsoleIO io, final Map args);
}