Package 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 | Description
    --- | ---
    `GroovyScriptEngineImpl()` |
    `GroovyScriptEngineImpl​(GroovyClassLoader classLoader)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | 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()