Package groovy.util

# Class GroovyScriptEngine

java.lang.Object
groovy.util.GroovyScriptEngine

All Implemented Interfaces:
  `ResourceConnector`

    public class GroovyScriptEngine
    extends java.lang.Object
    implements ResourceConnector

Specific script engine able to reload modified scripts as well as dealing properly with dependent scripts.

- ## Constructor Summary

  Constructors
  Constructor | Description
  --- | ---
  `GroovyScriptEngine​(ResourceConnector rc)` |
  `GroovyScriptEngine​(ResourceConnector rc, java.lang.ClassLoader parentClassLoader)` |
  `GroovyScriptEngine​(java.lang.String url)` |
  `GroovyScriptEngine​(java.lang.String[] urls)` |
  `GroovyScriptEngine​(java.lang.String[] urls, java.lang.ClassLoader parentClassLoader)` |
  `GroovyScriptEngine​(java.lang.String url, java.lang.ClassLoader parentClassLoader)` |
  `GroovyScriptEngine​(java.net.URL[] roots)` |
  `GroovyScriptEngine​(java.net.URL[] roots, java.lang.ClassLoader parentClassLoader)` |

- ## Method Summary

  Modifier and Type | Method | Description
  --- | --- | ---
  `Script` | `createScript​(java.lang.String scriptName, Binding binding)` | Creates a Script with a given scriptName and binding.
  `CompilerConfiguration` | `getConfig()` |
  `protected long` | `getCurrentTime()` |
  `GroovyClassLoader` | `getGroovyClassLoader()` | Returns the GroovyClassLoader associated with this script engine instance.
  `java.lang.ClassLoader` | `getParentClassLoader()` | Get the `ClassLoader` that will serve as the parent ClassLoader of the `GroovyClassLoader` in which scripts will be executed.
  `java.net.URLConnection` | `getResourceConnection​(java.lang.String resourceName)` | Get a resource connection as a `URLConnection` to retrieve a script from the `ResourceConnector`.
  `protected boolean` | `isSourceNewer​(groovy.util.GroovyScriptEngine.ScriptCacheEntry entry)` |
  `java.lang.Class` | `loadScriptByName​(java.lang.String scriptName)` | Get the class of the scriptName in question, so that you can instantiate Groovy objects with caching and reloading.
  `static void` | `main​(java.lang.String[] urls)` | Simple testing harness for the GSE.
  `java.lang.Object` | `run​(java.lang.String scriptName, Binding binding)` | Run a script identified by name with a given binding.
  `java.lang.String` | `run​(java.lang.String scriptName, java.lang.String argument)` | Run a script identified by name with a single argument.
  `void` | `setConfig​(CompilerConfiguration config)` | sets a compiler configuration

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

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

- ## Constructor Details

  - ### GroovyScriptEngine

    public GroovyScriptEngine​(java.net.URL[] roots)

  - ### GroovyScriptEngine

    public GroovyScriptEngine​(java.net.URL[] roots, java.lang.ClassLoader parentClassLoader)

  - ### GroovyScriptEngine

    public GroovyScriptEngine​(java.lang.String[] urls) throws java.io.IOException
    Throws:
      `java.io.IOException`

  - ### GroovyScriptEngine

    public GroovyScriptEngine​(java.lang.String[] urls, java.lang.ClassLoader parentClassLoader) throws java.io.IOException
    Throws:
      `java.io.IOException`

  - ### GroovyScriptEngine

    public GroovyScriptEngine​(java.lang.String url) throws java.io.IOException
    Throws:
      `java.io.IOException`

  - ### GroovyScriptEngine

    public GroovyScriptEngine​(java.lang.String url, java.lang.ClassLoader parentClassLoader) throws java.io.IOException
    Throws:
      `java.io.IOException`

  - ### GroovyScriptEngine

    public GroovyScriptEngine​(ResourceConnector rc)

  - ### GroovyScriptEngine

    public GroovyScriptEngine​(ResourceConnector rc, java.lang.ClassLoader parentClassLoader)

- ## Method Details

  - ### main

    public static void main​(java.lang.String[] urls) throws java.lang.Exception
    Simple testing harness for the GSE. Enter script roots as arguments and then input script names to run them.
    Parameters:
      `urls` - an array of URLs
    Throws:
      `java.lang.Exception` - if something goes wrong

  - ### getResourceConnection

    public java.net.URLConnection getResourceConnection​(java.lang.String resourceName) throws ResourceException
    Get a resource connection as a `URLConnection` to retrieve a script from the `ResourceConnector`.
    Specified by:
      `getResourceConnection` in interface `ResourceConnector`
    Parameters:
      `resourceName` - name of the resource to be retrieved
    Returns:
      a URLConnection to the resource
    Throws:
      `ResourceException`

  - ### getParentClassLoader

    public java.lang.ClassLoader getParentClassLoader()
    Get the `ClassLoader` that will serve as the parent ClassLoader of the `GroovyClassLoader` in which scripts will be executed. By default, this is the ClassLoader that loaded the `GroovyScriptEngine` class.
    Returns:
      the parent classloader used to load scripts

  - ### loadScriptByName

    public java.lang.Class loadScriptByName​(java.lang.String scriptName) throws ResourceException, ScriptException
    Get the class of the scriptName in question, so that you can instantiate Groovy objects with caching and reloading.
    Parameters:
      `scriptName` - resource name pointing to the script
    Returns:
      the loaded scriptName as a compiled class
    Throws:
      `ResourceException` - if there is a problem accessing the script
      `ScriptException` - if there is a problem parsing the script

  - ### run

    public java.lang.String run​(java.lang.String scriptName, java.lang.String argument) throws ResourceException, ScriptException
    Run a script identified by name with a single argument.
    Parameters:
      `scriptName` - name of the script to run
      `argument` - a single argument passed as a variable named `arg` in the binding
    Returns:
      a `toString()` representation of the result of the execution of the script
    Throws:
      `ResourceException` - if there is a problem accessing the script
      `ScriptException` - if there is a problem parsing the script

  - ### run

    public java.lang.Object run​(java.lang.String scriptName, Binding binding) throws ResourceException, ScriptException
    Run a script identified by name with a given binding.
    Parameters:
      `scriptName` - name of the script to run
      `binding` - the binding to pass to the script
    Returns:
      an object
    Throws:
      `ResourceException` - if there is a problem accessing the script
      `ScriptException` - if there is a problem parsing the script

  - ### createScript

    public Script createScript​(java.lang.String scriptName, Binding binding) throws ResourceException, ScriptException
    Creates a Script with a given scriptName and binding.
    Parameters:
      `scriptName` - name of the script to run
      `binding` - the binding to pass to the script
    Returns:
      the script object
    Throws:
      `ResourceException` - if there is a problem accessing the script
      `ScriptException` - if there is a problem parsing the script

  - ### isSourceNewer

    protected boolean isSourceNewer​(groovy.util.GroovyScriptEngine.ScriptCacheEntry entry)

  - ### getGroovyClassLoader

    public GroovyClassLoader getGroovyClassLoader()
    Returns the GroovyClassLoader associated with this script engine instance. Useful if you need to pass the class loader to another library.
    Returns:
      the GroovyClassLoader

  - ### getConfig

    public CompilerConfiguration getConfig()
    Returns:
      a non null compiler configuration

  - ### setConfig

    public void setConfig​(CompilerConfiguration config)
    sets a compiler configuration
    Parameters:
      `config` - - the compiler configuration
    Throws:
      `java.lang.NullPointerException` - if config is null

  - ### getCurrentTime

    protected long getCurrentTime()