text: 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);
  }
  