groovy.lang

## Class GroovyShell

- java.lang.Object
- - groovy.lang.GroovyObjectSupport
  - - groovy.lang.GroovyShell

- All Implemented Interfaces:
    GroovyObject

      public class GroovyShell
      extends GroovyObjectSupport

  Represents a groovy shell capable of running arbitrary groovy scripts
  Author:
    James Strachan, Guillaume Laforge, Paul King

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static java.lang.String` | `DEFAULT_CODE_BASE`

  - ### Constructor Summary

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

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.Object` | `evaluate(java.io.File file)` Evaluates some script against the current Binding and returns the result
    `java.lang.Object` | `evaluate(GroovyCodeSource codeSource)` Evaluates some script against the current Binding and returns the result
    `java.lang.Object` | `evaluate(java.io.Reader in)` Evaluates some script against the current Binding and returns the result
    `java.lang.Object` | `evaluate(java.io.Reader in, java.lang.String fileName)` Evaluates some script against the current Binding and returns the result
    `java.lang.Object` | `evaluate(java.lang.String scriptText)` Evaluates some script against the current Binding and returns the result
    `java.lang.Object` | `evaluate(java.lang.String scriptText, java.lang.String fileName)` Evaluates some script against the current Binding and returns the result
    `java.lang.Object` | `evaluate(java.lang.String scriptText, java.lang.String fileName, java.lang.String codeBase)` Evaluates some script against the current Binding and returns the result.
    `java.lang.Object` | `evaluate(java.net.URI uri)` Evaluates some script against the current Binding and returns the result
    `protected java.lang.String` | `generateScriptName()`
    `GroovyClassLoader` | `getClassLoader()`
    `Binding` | `getContext()`
    `java.lang.Object` | `getProperty(java.lang.String property)` Retrieves a property value.
    `java.lang.Object` | `getVariable(java.lang.String name)`
    `static void` | `main(java.lang.String[] args)`
    `Script` | `parse(java.io.File file)` 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(java.io.Reader in)` Parses the given script and returns it ready to be run
    `Script` | `parse(java.io.Reader reader, java.lang.String fileName)` Parses the given script and returns it ready to be run
    `Script` | `parse(java.lang.String scriptText)` Parses the given script and returns it ready to be run
    `Script` | `parse(java.lang.String scriptText, java.lang.String fileName)`
    `Script` | `parse(java.net.URI uri)` Parses the given script and returns it ready to be run
    `void` | `resetLoadedClasses()`
    `java.lang.Object` | `run(java.io.File scriptFile, java.util.List list)` A helper method which runs the given script file with the given command line arguments
    `java.lang.Object` | `run(java.io.File scriptFile, java.lang.String[] args)` Runs the given script file name with the given command line arguments
    `java.lang.Object` | `run(GroovyCodeSource source, java.util.List args)` Runs the given script source with command line arguments
    `java.lang.Object` | `run(GroovyCodeSource source, java.lang.String[] args)` Runs the given script source with command line arguments
    `java.lang.Object` | `run(java.io.Reader in, java.lang.String fileName, java.util.List list)` Runs the given script with command line arguments
    `java.lang.Object` | `run(java.io.Reader in, java.lang.String fileName, java.lang.String[] args)` Runs the given script with command line arguments
    `java.lang.Object` | `run(java.lang.String scriptText, java.lang.String fileName, java.util.List list)` A helper method which runs the given cl script with the given command line arguments
    `java.lang.Object` | `run(java.lang.String scriptText, java.lang.String fileName, java.lang.String[] args)` Runs the given script text with command line arguments
    `java.lang.Object` | `run(java.net.URI source, java.util.List args)` Runs the given script source with command line arguments
    `java.lang.Object` | `run(java.net.URI source, java.lang.String[] args)` Runs the given script source with command line arguments
    `void` | `setProperty(java.lang.String property, java.lang.Object newValue)` Sets the given property to the new value.
    `void` | `setVariable(java.lang.String name, java.lang.Object value)`

    - ### Methods inherited from class groovy.lang.GroovyObjectSupport

      `getMetaClass, invokeMethod, setMetaClass`

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

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

- - ### Field Detail

    - #### DEFAULT_CODE_BASE

          public static final java.lang.String DEFAULT_CODE_BASE

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### GroovyShell

          public GroovyShell()

    - #### GroovyShell

          public GroovyShell(Binding binding)

    - #### GroovyShell

          public GroovyShell(java.lang.ClassLoader parent,
                             CompilerConfiguration config)

    - #### GroovyShell

          public GroovyShell(CompilerConfiguration config)

    - #### GroovyShell

          public GroovyShell(Binding binding,
                             CompilerConfiguration config)

    - #### GroovyShell

          public GroovyShell(java.lang.ClassLoader parent,
                             Binding binding)

    - #### GroovyShell

          public GroovyShell(java.lang.ClassLoader parent)

    - #### GroovyShell

          public GroovyShell(java.lang.ClassLoader parent,
                             Binding binding,
                             CompilerConfiguration config)

    - #### GroovyShell

          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

    - #### main

          public static void main(java.lang.String[] args)

    - #### resetLoadedClasses

          public void resetLoadedClasses()

    - #### getContext

          public Binding getContext()

    - #### getClassLoader

          public GroovyClassLoader getClassLoader()

    - #### getProperty

          public java.lang.Object getProperty(java.lang.String property)

      Description copied from interface: `GroovyObject`
      Retrieves a property value.
      Specified by:
        `getProperty` in interface `GroovyObject`
      Overrides:
        `getProperty` in class `GroovyObjectSupport`
      Parameters:
        `property` - the name of the property of interest
      Returns:
        the given property

    - #### setProperty

          public void setProperty(java.lang.String property,
                                  java.lang.Object newValue)

      Description copied from interface: `GroovyObject`
      Sets the given property to the new value.
      Specified by:
        `setProperty` in interface `GroovyObject`
      Overrides:
        `setProperty` in class `GroovyObjectSupport`
      Parameters:
        `property` - the name of the property of interest
        `newValue` - the new value for the property

    - #### run

          public java.lang.Object run(java.io.File scriptFile,
                                      java.util.List list)
                               throws CompilationFailedException,
                                      java.io.IOException

      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
      Throws:
        `CompilationFailedException`
        `java.io.IOException`

    - #### run

          public java.lang.Object run(java.lang.String scriptText,
                                      java.lang.String fileName,
                                      java.util.List list)
                               throws CompilationFailedException

      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
      Throws:
        `CompilationFailedException`

    - #### run

          public java.lang.Object run(java.io.File scriptFile,
                                      java.lang.String[] args)
                               throws CompilationFailedException,
                                      java.io.IOException

      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
      Throws:
        `CompilationFailedException`
        `java.io.IOException`

    - #### run

          public java.lang.Object run(java.lang.String scriptText,
                                      java.lang.String fileName,
                                      java.lang.String[] args)
                               throws CompilationFailedException

      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
      Throws:
        `CompilationFailedException`

    - #### run

          public java.lang.Object run(GroovyCodeSource source,
                                      java.util.List args)
                               throws CompilationFailedException

      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
      Throws:
        `CompilationFailedException`

    - #### run

          public java.lang.Object run(GroovyCodeSource source,
                                      java.lang.String[] args)
                               throws CompilationFailedException

      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
      Throws:
        `CompilationFailedException`

    - #### run

          public java.lang.Object run(java.net.URI source,
                                      java.util.List args)
                               throws CompilationFailedException,
                                      java.io.IOException

      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
      Throws:
        `CompilationFailedException`
        `java.io.IOException`

    - #### run

          public java.lang.Object run(java.net.URI source,
                                      java.lang.String[] args)
                               throws CompilationFailedException,
                                      java.io.IOException

      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
      Throws:
        `CompilationFailedException`
        `java.io.IOException`

    - #### run

          public java.lang.Object run(java.io.Reader in,
                                      java.lang.String fileName,
                                      java.util.List list)
                               throws CompilationFailedException

      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
      Throws:
        `CompilationFailedException`

    - #### run

          public java.lang.Object run(java.io.Reader in,
                                      java.lang.String fileName,
                                      java.lang.String[] args)
                               throws CompilationFailedException

      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
      Throws:
        `CompilationFailedException`

    - #### getVariable

          public java.lang.Object getVariable(java.lang.String name)

    - #### setVariable

          public void setVariable(java.lang.String name,
                                  java.lang.Object value)

    - #### evaluate

          public java.lang.Object evaluate(GroovyCodeSource codeSource)
                                    throws CompilationFailedException

      Evaluates some script against the current Binding and returns the result
      Parameters:
        `codeSource` -
      Throws:
        `CompilationFailedException`

    - #### evaluate

          public java.lang.Object evaluate(java.lang.String scriptText)
                                    throws CompilationFailedException

      Evaluates some script against the current Binding and returns the result
      Parameters:
        `scriptText` - the text of the script
      Throws:
        `CompilationFailedException`

    - #### evaluate

          public java.lang.Object evaluate(java.lang.String scriptText,
                                           java.lang.String fileName)
                                    throws CompilationFailedException

      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)
      Throws:
        `CompilationFailedException`

    - #### evaluate

          public java.lang.Object evaluate(java.lang.String scriptText,
                                           java.lang.String fileName,
                                           java.lang.String codeBase)
                                    throws CompilationFailedException

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

    - #### evaluate

          public java.lang.Object evaluate(java.io.File file)
                                    throws CompilationFailedException,
                                           java.io.IOException

      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)
      Throws:
        `CompilationFailedException`
        `java.io.IOException`

    - #### evaluate

          public java.lang.Object evaluate(java.net.URI uri)
                                    throws CompilationFailedException,
                                           java.io.IOException

      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)
      Throws:
        `CompilationFailedException`
        `java.io.IOException`

    - #### evaluate

          public java.lang.Object evaluate(java.io.Reader in)
                                    throws CompilationFailedException

      Evaluates some script against the current Binding and returns the result
      Parameters:
        `in` - the stream reading the script
      Throws:
        `CompilationFailedException`

    - #### evaluate

          public java.lang.Object evaluate(java.io.Reader in,
                                           java.lang.String fileName)
                                    throws CompilationFailedException

      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)
      Throws:
        `CompilationFailedException`

    - #### parse

          public Script parse(java.io.Reader reader,
                              java.lang.String fileName)
                       throws CompilationFailedException

      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()`
      Throws:
        `CompilationFailedException`

    - #### parse

          public Script parse(GroovyCodeSource codeSource)
                       throws CompilationFailedException

      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
      Throws:
        `CompilationFailedException`

    - #### parse

          public Script parse(java.io.File file)
                       throws CompilationFailedException,
                              java.io.IOException

      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)
      Throws:
        `CompilationFailedException`
        `java.io.IOException`

    - #### parse

          public Script parse(java.net.URI uri)
                       throws CompilationFailedException,
                              java.io.IOException

      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)
      Throws:
        `CompilationFailedException`
        `java.io.IOException`

    - #### parse

          public Script parse(java.lang.String scriptText)
                       throws CompilationFailedException

      Parses the given script and returns it ready to be run
      Parameters:
        `scriptText` - the text of the script
      Throws:
        `CompilationFailedException`

    - #### parse

          public Script parse(java.lang.String scriptText,
                              java.lang.String fileName)
                       throws CompilationFailedException

      Throws:
        `CompilationFailedException`

    - #### parse

          public Script parse(java.io.Reader in)
                       throws CompilationFailedException

      Parses the given script and returns it ready to be run
      Parameters:
        `in` - the stream reading the script
      Throws:
        `CompilationFailedException`

    - #### generateScriptName

          protected java.lang.String generateScriptName()