Package: groovy.lang

## [Java] Class GroovyShell

- groovy.lang.GroovyShell

- Represents a groovy shell capable of running arbitrary groovy scripts

  Authors:
    James Strachan
    Guillaume Laforge
    Paul King
  Version:
    \$Revision\$

- - ### Field Summary

    Fields
    Modifiers | Name | Description
    --- | --- | ---
    `static String` | `DEFAULT_CODE_BASE` |

  - ### Constructor Summary

    Constructors
    Constructor and description
    `GroovyShell ()`
    `GroovyShell (Binding binding)`
    `GroovyShell (CompilerConfiguration config)`
    `GroovyShell (Binding binding, CompilerConfiguration config)`
    `GroovyShell (ClassLoader parent, Binding binding)`
    `GroovyShell (ClassLoader parent)`
    `GroovyShell (ClassLoader parent, Binding binding, CompilerConfiguration config)`
    `GroovyShell (GroovyShell shell)` Creates a child shell using a new ClassLoader which uses the parent shell's class loader as its parent

  - ### Methods Summary

    Methods
    Type | Name and description
    --- | ---
    `Object` | `evaluate(GroovyCodeSource codeSource)` Evaluates some script against the current Binding and returns the result
    `Object` | `evaluate(String scriptText)` Evaluates some script against the current Binding and returns the result
    `Object` | `evaluate(String scriptText, String fileName)` Evaluates some script against the current Binding and returns the result
    `Object` | `evaluate(String scriptText, String fileName, String codeBase)` Evaluates some script against the current Binding and returns the result.
    `Object` | `evaluate(File file)` Evaluates some script against the current Binding and returns the result
    `Object` | `evaluate(URI uri)` Evaluates some script against the current Binding and returns the result
    `Object` | `evaluate(Reader in)` Evaluates some script against the current Binding and returns the result
    `Object` | `evaluate(Reader in, String fileName)` Evaluates some script against the current Binding and returns the result
    `protected String` | `generateScriptName()`
    `GroovyClassLoader` | `getClassLoader()`
    `Binding` | `getContext()`
    `Object` | `getProperty(String property)`
    `Object` | `getVariable(String name)`
    `static void` | `main(String[] args)`
    `Script` | `parse(Reader reader, String fileName)` Parses the given script and returns it ready to be run
    `Script` | `parse(GroovyCodeSource codeSource)` Parses the given script and returns it ready to be run.
    `Script` | `parse(File file)` Parses the given script and returns it ready to be run
    `Script` | `parse(URI uri)` Parses the given script and returns it ready to be run
    `Script` | `parse(String scriptText)` Parses the given script and returns it ready to be run
    `Script` | `parse(String scriptText, String fileName)`
    `Script` | `parse(Reader in)` Parses the given script and returns it ready to be run
    `void` | `resetLoadedClasses()`
    `Object` | `run(File scriptFile, List list)` A helper method which runs the given script file with the given command line arguments
    `Object` | `run(String scriptText, String fileName, List list)` A helper method which runs the given cl script with the given command line arguments
    `Object` | `run(File scriptFile, String[] args)` Runs the given script file name with the given command line arguments
    `Object` | `run(String scriptText, String fileName, String[] args)` Runs the given script text with command line arguments
    `Object` | `run(GroovyCodeSource source, List args)` Runs the given script source with command line arguments
    `Object` | `run(GroovyCodeSource source, String[] args)` Runs the given script source with command line arguments
    `Object` | `run(URI source, List args)` Runs the given script source with command line arguments
    `Object` | `run(URI source, String[] args)` Runs the given script source with command line arguments
    `Object` | `run(Reader in, String fileName, List list)` Runs the given script with command line arguments
    `Object` | `run(Reader in, String fileName, String[] args)` Runs the given script with command line arguments
    `void` | `setProperty(String property, Object newValue)`
    `void` | `setVariable(String name, Object value)`

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class GroovyObjectSupport` | `getMetaClass, getProperty, invokeMethod, setMetaClass, setProperty`
    `class Object` | `wait, wait, wait, equals, toString, hashCode, getClass, notify, notifyAll`

- - ### Field Detail

    - #### public static final String DEFAULT_CODE_BASE

  - ### Constructor Detail

    - #### public GroovyShell()

    - #### public GroovyShell(Binding binding)

    - #### public GroovyShell(CompilerConfiguration config)

    - #### public GroovyShell(Binding binding, CompilerConfiguration config)

    - #### public GroovyShell(ClassLoader parent, Binding binding)

    - #### public GroovyShell(ClassLoader parent)

    - #### public GroovyShell(ClassLoader parent, Binding binding, CompilerConfiguration config)

    - #### public GroovyShell(GroovyShell shell)

      Creates a child shell using a new ClassLoader which uses the parent shell's class loader as its parent

      Parameters:
        `shell` - is the parent shell used for the variable bindings and the parent class loader

  - ### Method Detail

    - #### public Object evaluate(GroovyCodeSource codeSource)

      Evaluates some script against the current Binding and returns the result

      throws:
        CompilationFailedException
      Parameters:
        codeSource

    - #### public Object evaluate(String scriptText)

      Evaluates some script against the current Binding and returns the result

      Parameters:
        `scriptText` - the text of the script

    - #### public Object evaluate(String scriptText, String fileName)

      Evaluates some script against the current Binding and returns the result

      Parameters:
        `scriptText` - the text of the script
        `fileName` - is the logical file name of the script (which is used to create the class name of the script)

    - #### public Object evaluate(String scriptText, String fileName, String codeBase)

      Evaluates some script against the current Binding and returns the result. The .class file created from the script is given the supplied codeBase

    - #### public Object evaluate(File file)

      Evaluates some script against the current Binding and returns the result

      Parameters:
        `file` - is the file of the script (which is used to create the class name of the script)

    - #### public Object evaluate(URI uri)

      Evaluates some script against the current Binding and returns the result

      Parameters:
        `uri` - is the URI of the script (which is used to create the class name of the script)

    - #### public Object evaluate(Reader in)

      Evaluates some script against the current Binding and returns the result

      Parameters:
        `in` - the stream reading the script

    - #### public Object evaluate(Reader in, String fileName)

      Evaluates some script against the current Binding and returns the result

      Parameters:
        `in` - the stream reading the script
        `fileName` - is the logical file name of the script (which is used to create the class name of the script)

    - #### protected String generateScriptName()

    - #### public GroovyClassLoader getClassLoader()

    - #### public Binding getContext()

    - #### public Object getProperty(String property)

    - #### public Object getVariable(String name)

    - #### public static void main(String[] args)

    - #### public Script parse(Reader reader, String fileName)

      Parses the given script and returns it ready to be run

      Parameters:
        `reader` - the stream reading the script
        `fileName` - is the logical file name of the script (which is used to create the class name of the script)
      Returns:
        the parsed script which is ready to be run via Script.run

    - #### public Script parse(GroovyCodeSource codeSource)

      Parses the given script and returns it ready to be run. When running in a secure environment (-Djava.security.manager) codeSource.getCodeSource() determines what policy grants should be given to the script.

      Parameters:
        codeSource
      Returns:
        ready to run script

    - #### public Script parse(File file)

      Parses the given script and returns it ready to be run

      Parameters:
        `file` - is the file of the script (which is used to create the class name of the script)

    - #### public Script parse(URI uri)

      Parses the given script and returns it ready to be run

      Parameters:
        `uri` - is the URI of the script (which is used to create the class name of the script)

    - #### public Script parse(String scriptText)

      Parses the given script and returns it ready to be run

      Parameters:
        `scriptText` - the text of the script

    - #### public Script parse(String scriptText, String fileName)

    - #### public Script parse(Reader in)

      Parses the given script and returns it ready to be run

      Parameters:
        `in` - the stream reading the script

    - #### public void resetLoadedClasses()

    - #### public Object run(File scriptFile, List list)

      A helper method which runs the given script file with the given command line arguments

      Parameters:
        `scriptFile` - the file of the script to run
        `list` - the command line arguments to pass in

    - #### public Object run(String scriptText, String fileName, List list)

      A helper method which runs the given cl script with the given command line arguments

      Parameters:
        `scriptText` - is the text content of the script
        `fileName` - is the logical file name of the script (which is used to create the class name of the script)
        `list` - the command line arguments to pass in

    - #### public Object run(File scriptFile, String[] args)

      Runs the given script file name with the given command line arguments

      Parameters:
        `scriptFile` - the file name of the script to run
        `args` - the command line arguments to pass in

    - #### public Object run(String scriptText, String fileName, String[] args)

      Runs the given script text with command line arguments

      Parameters:
        `scriptText` - is the text content of the script
        `fileName` - is the logical file name of the script (which is used to create the class name of the script)
        `args` - the command line arguments to pass in

    - #### public Object run(GroovyCodeSource source, List args)

      Runs the given script source with command line arguments

      Parameters:
        `source` - is the source content of the script
        `args` - the command line arguments to pass in

    - #### public Object run(GroovyCodeSource source, String[] args)

      Runs the given script source with command line arguments

      Parameters:
        `source` - is the source content of the script
        `args` - the command line arguments to pass in

    - #### public Object run(URI source, List args)

      Runs the given script source with command line arguments

      Parameters:
        `source` - is the source content of the script
        `args` - the command line arguments to pass in

    - #### public Object run(URI source, String[] args)

      Runs the given script source with command line arguments

      Parameters:
        `source` - is the source content of the script
        `args` - the command line arguments to pass in

    - #### public Object run(Reader in, String fileName, List list)

      Runs the given script with command line arguments

      Parameters:
        `in` - the stream reading the script
        `fileName` - is the logical file name of the script (which is used to create the class name of the script)
        `list` - the command line arguments to pass in

    - #### public Object run(Reader in, String fileName, String[] args)

      Runs the given script with command line arguments

      Parameters:
        `in` - the stream reading the script
        `fileName` - is the logical file name of the script (which is used to create the class name of the script)
        `args` - the command line arguments to pass in

    - #### public void setProperty(String property, Object newValue)

    - #### public void setVariable(String name, Object value)