Module jdk.jshell
Package jdk.jshell.spi

## Interface ExecutionControlProvider

- All Known Implementing Classes:
    `FailOverExecutionControlProvider`, `JdiExecutionControlProvider`, `LocalExecutionControlProvider`

      public interface ExecutionControlProvider

  The provider used by JShell to generate the execution engine needed to evaluate Snippets. Alternate execution engines can be created by implementing this interface, then configuring JShell with the provider or the providers name and parameter specifier.
  Since:
    9

- - ### Method Summary

    All Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `default Map<String,String>` | `defaultParameters​()` | Create and return the default parameter map for this `ExecutionControlProvider`.
    `ExecutionControl` | `generate​(ExecutionEnv env, Map<String,String> parameters)` | Create and return the `ExecutionControl` instance.
    `String` | `name​()` | The unique name of this `ExecutionControlProvider`.

- - ### Method Detail

    - #### name

          String name​()

      The unique name of this `ExecutionControlProvider`. The name must be a sequence of characters from the Basic Multilingual Plane which are `Character.isJavaIdentifierPart(char)`.
      Returns:
        the ExecutionControlProvider's name

    - #### defaultParameters

          default Map<String,String> defaultParameters​()

      Create and return the default parameter map for this `ExecutionControlProvider`. The map can optionally be modified; Modified or unmodified it can be passed to `generate(jdk.jshell.spi.ExecutionEnv, java.util.Map)`.
      Returns:
        the default parameter map

    - #### generate

          ExecutionControl generate​(ExecutionEnv env,
                                    Map<String,String> parameters)
                             throws Throwable

      Create and return the `ExecutionControl` instance.
      Parameters:
        `env` - the execution environment, provided by JShell
        `parameters` - the default or modified parameter map.
      Returns:
        the execution engine
      Throws:
        `Throwable` - an exception that occurred attempting to create the execution engine.