groovy.lang

## Class GroovyCodeSource

- java.lang.Object
- - groovy.lang.GroovyCodeSource

    public class GroovyCodeSource
    extends java.lang.Object

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

Author:
  Steve Goetze, Guillaume Laforge, Merlyn Albery-Speyer

### Constructor Summary

Constructors
Constructor and Description
`GroovyCodeSource(java.io.File infile)`
`GroovyCodeSource(java.io.File infile, java.lang.String encoding)`
`GroovyCodeSource(java.io.Reader reader, java.lang.String name, java.lang.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(java.lang.String script, java.lang.String name, java.lang.String codeBase)`
`GroovyCodeSource(java.net.URI uri)`
`GroovyCodeSource(java.net.URL url)`

### Method Summary

All Methods Instance Methods Concrete Methods
`java.io.File` `getFile()`
`java.lang.String` `getName()`
`java.lang.String` `getScriptText()`
`java.net.URL` `getURL()`
`boolean` `isCachable()`
`void` `setCachable(boolean b)`

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

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

### Constructor Detail

#### GroovyCodeSource

    public GroovyCodeSource(java.lang.String script,
                            java.lang.String name,
                            java.lang.String codeBase)

#### GroovyCodeSource

    public GroovyCodeSource(java.io.Reader reader,
                            java.lang.String name,
                            java.lang.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.

#### GroovyCodeSource

    public GroovyCodeSource(java.io.File infile,
                            java.lang.String encoding)
                     throws java.io.IOException

Throws:
  `java.io.IOException`

#### GroovyCodeSource

    public GroovyCodeSource(java.io.File infile)
                     throws java.io.IOException

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

#### GroovyCodeSource

    public GroovyCodeSource(java.net.URI uri)
                     throws java.io.IOException

Throws:
  `java.io.IOException`

#### GroovyCodeSource

    public GroovyCodeSource(java.net.URL url)

### Method Detail

#### getScriptText

    public java.lang.String getScriptText()

#### getName

    public java.lang.String getName()

#### getFile

    public java.io.File getFile()

#### getURL

    public java.net.URL getURL()

#### setCachable

    public void setCachable(boolean b)

#### isCachable

    public boolean isCachable()