org.codehaus.groovy.jsr223

## Class GroovyScriptEngineImpl

- java.lang.Object
- - javax.script.AbstractScriptEngine
  - - org.codehaus.groovy.jsr223.GroovyScriptEngineImpl

- All Implemented Interfaces:
    Compilable, Invocable, ScriptEngine

      public class GroovyScriptEngineImpl
      extends AbstractScriptEngine
      implements Compilable, Invocable

  JSR-223 Engine implementation. Adapted from original by Mike Grogan and A. Sundararajan

- - ### Field Summary

    - ### Fields inherited from class javax.script.AbstractScriptEngine

      `context`

    - ### Fields inherited from interface javax.script.ScriptEngine

      `ARGV, ENGINE, ENGINE_VERSION, FILENAME, LANGUAGE, LANGUAGE_VERSION, NAME`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `GroovyScriptEngineImpl()`
    `GroovyScriptEngineImpl(GroovyClassLoader classLoader)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `CompiledScript` | `compile(Reader reader)`
    `CompiledScript` | `compile(String scriptSource)`
    `Bindings` | `createBindings()`
    `Object` | `eval(Reader reader, ScriptContext ctx)`
    `Object` | `eval(String script, ScriptContext ctx)`
    `GroovyClassLoader` | `getClassLoader()`
    `ScriptEngineFactory` | `getFactory()`
    `<T> T` | `getInterface(Class<T> clazz)`
    `<T> T` | `getInterface(Object thiz, Class<T> clazz)`
    `Object` | `invokeFunction(String name, Object... args)`
    `Object` | `invokeMethod(Object thiz, String name, Object... args)`
    `void` | `setClassLoader(GroovyClassLoader classLoader)`

    - ### Methods inherited from class javax.script.AbstractScriptEngine

      `eval, eval, eval, eval, get, getBindings, getContext, getScriptContext, put, setBindings, setContext`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### GroovyScriptEngineImpl

          public GroovyScriptEngineImpl()

    - #### GroovyScriptEngineImpl

          public GroovyScriptEngineImpl(GroovyClassLoader classLoader)

  - ### Method Detail

    - #### eval

          public Object eval(Reader reader,
                             ScriptContext ctx)
                      throws ScriptException

      Specified by:
        `eval` in interface `ScriptEngine`
      Throws:
        `ScriptException`

    - #### eval

          public Object eval(String script,
                             ScriptContext ctx)
                      throws ScriptException

      Specified by:
        `eval` in interface `ScriptEngine`
      Throws:
        `ScriptException`

    - #### createBindings

          public Bindings createBindings()

      Specified by:
        `createBindings` in interface `ScriptEngine`

    - #### getFactory

          public ScriptEngineFactory getFactory()

      Specified by:
        `getFactory` in interface `ScriptEngine`

    - #### compile

          public CompiledScript compile(String scriptSource)
                                 throws ScriptException

      Specified by:
        `compile` in interface `Compilable`
      Throws:
        `ScriptException`

    - #### compile

          public CompiledScript compile(Reader reader)
                                 throws ScriptException

      Specified by:
        `compile` in interface `Compilable`
      Throws:
        `ScriptException`

    - #### invokeFunction

          public Object invokeFunction(String name,
                                       Object... args)
                                throws ScriptException,
                                       NoSuchMethodException

      Specified by:
        `invokeFunction` in interface `Invocable`
      Throws:
        `ScriptException`
        `NoSuchMethodException`

    - #### invokeMethod

          public Object invokeMethod(Object thiz,
                                     String name,
                                     Object... args)
                              throws ScriptException,
                                     NoSuchMethodException

      Specified by:
        `invokeMethod` in interface `Invocable`
      Throws:
        `ScriptException`
        `NoSuchMethodException`

    - #### getInterface

          public <T> T getInterface(Class<T> clazz)

      Specified by:
        `getInterface` in interface `Invocable`

    - #### getInterface

          public <T> T getInterface(Object thiz,
                                    Class<T> clazz)

      Specified by:
        `getInterface` in interface `Invocable`

    - #### setClassLoader

          public void setClassLoader(GroovyClassLoader classLoader)

    - #### getClassLoader

          public GroovyClassLoader getClassLoader()