Package: groovy.lang

## [Java] Class GroovyCodeSource

- groovy.lang.GroovyCodeSource

- CodeSource wrapper class that allows specific security policies to be associated with a class compiled from groovy source.

  Authors:
    Steve Goetze
    Guillaume Laforge
    Merlyn Albery-Speyer

- - ### Constructor Summary

    Constructors
    Constructor and description
    `GroovyCodeSource (String script, String name, String codeBase)`
    `GroovyCodeSource (Reader reader, String name, String codeBase)` Construct a GroovyCodeSource for an inputStream of groovyCode that has an unknown provenance -- meaning it didn't come from a File or a URL (e.g. a String).
    `GroovyCodeSource (File infile, String encoding)`
    `GroovyCodeSource (File infile)` @param infile the file to create a GroovyCodeSource for.
    `GroovyCodeSource (URI uri)`
    `GroovyCodeSource (URL url)`

  - ### Methods Summary

    Methods
    Type Params | Return Type | Name and description
    --- | --- | ---
    `` | `File` | `getFile()`
    `` | `String` | `getName()`
    `` | `String` | `getScriptText()`
    `` | `URL` | `getURL()`
    `` | `boolean` | `isCachable()`
    `` | `void` | `setCachable(boolean b)`

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class Object` | `equals, toString, hashCode, getClass, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### public GroovyCodeSource(String script, String name, String codeBase)

    - #### public GroovyCodeSource(Reader reader, String name, String codeBase)

      Construct a GroovyCodeSource for an inputStream of groovyCode that has an unknown provenance -- meaning it didn't come from a File or a URL (e.g. a String). The supplied codeBase will be used to construct a File URL that should match up with a java Policy entry that determines the grants to be associated with the class that will be built from the InputStream.

      The permission groovy.security.GroovyCodeSourcePermission will be used to determine if the given codeBase may be specified. That is, the current Policy set must have a GroovyCodeSourcePermission that implies the codeBase, or an exception will be thrown. This is to prevent callers from hijacking existing codeBase policy entries unless explicitly authorized by the user.

    - #### public GroovyCodeSource(File infile, String encoding)

    - #### public GroovyCodeSource(File infile)

      throws:
        IOException if an issue arises opening and reading the file.
      Parameters:
        `infile` - the file to create a GroovyCodeSource for.

    - #### public GroovyCodeSource(URI uri)

    - #### public GroovyCodeSource(URL url)

  - ### Method Detail

    - #### public File getFile()

    - #### public String getName()

    - #### public String getScriptText()

    - #### public URL getURL()

    - #### public boolean isCachable()

    - #### public void setCachable(boolean b)