Package org.apache.tools.ant.util

## Class ScriptRunnerBase

- java.lang.Object
- - org.apache.tools.ant.util.ScriptRunnerBase

Direct Known Subclasses:
  `JavaxScriptRunner`, `ScriptRunner`

    public abstract class ScriptRunnerBase
    extends java.lang.Object

This is a common abstract base case for script runners. These classes need to implement executeScript, evaluateScript and supportsLanguage.

Since:
  Ant 1.7.0

### Constructor Summary

Constructors
`ScriptRunnerBase()`

### Method Summary

All Methods Instance Methods Abstract Methods Concrete Methods
`void` `addBean​(java.lang.String key, java.lang.Object bean)` Add a single object into the script context.
`void` `addBeans​(java.util.Map<java.lang.String,​?> dictionary)` Add a list of named objects to the list to be exported to the script
`void` `addText​(java.lang.String text)` Set the script text.
`void` `bindToComponent​(ProjectComponent component)` Bind the runner to a project component.
`void` `bindToComponentMinimum​(ProjectComponent component)` Bind the runner to a project component.
`protected void` `checkLanguage()` Check if the language attribute is set.
`void` `clearScript()` Clear the current script text content.
`abstract java.lang.Object` `evaluateScript​(java.lang.String execName)` Evaluate the script.
`abstract void` `executeScript​(java.lang.String execName)` Do the work.
`protected java.util.Map<java.lang.String,​java.lang.Object>` `getBeans()` Get the beans used for the script.
`boolean` `getCompiled()` Get the compiled attribute.
`boolean` `getKeepEngine()` Get the keep engine attribute.
`java.lang.String` `getLanguage()` Get the script language
`abstract java.lang.String` `getManagerName()` Get the name of the manager prefix used for this scriptrunner.
`Project` `getProject()` Get the project for this runner.
`java.lang.String` `getScript()` Get the current script text content.
`protected java.lang.ClassLoader` `getScriptClassLoader()` Get the classloader used to load the script engine.
`void` `loadResource​(Resource sourceResource)` Add a resource to the source list.
`void` `loadResources​(ResourceCollection collection)` Add all resources in a resource collection to the source list.
`protected java.lang.ClassLoader` `replaceContextLoader()` Replace the current context classloader with the script context classloader.
`protected void` `restoreContextLoader​(java.lang.ClassLoader origLoader)` Restore the context loader with the original context classloader.
`void` `setCompiled​(boolean compiled)` Whether to use script compilation if available.
`void` `setEncoding​(java.lang.String encoding)` Set encoding of the script from an external file; optional.
`void` `setKeepEngine​(boolean keepEngine)` Whether to keep the script engine between calls.
`void` `setLanguage​(java.lang.String language)` Defines the language (required).
`void` `setProject​(Project project)` Set the project for this runner.
`void` `setScriptClassLoader​(java.lang.ClassLoader classLoader)` Set the script classloader.
`void` `setSrc​(java.io.File file)` Load the script from an external file; optional.
`abstract boolean` `supportsLanguage()` Check if a script engine can be created for this language.

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

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

### Constructor Detail

#### ScriptRunnerBase

    public ScriptRunnerBase()

### Method Detail

#### addBeans

    public void addBeans​(java.util.Map<java.lang.String,​?> dictionary)

Add a list of named objects to the list to be exported to the script

Parameters:
  `dictionary` - a map of objects to be placed into the script context indexed by String names.

#### addBean

    public void addBean​(java.lang.String key,
                        java.lang.Object bean)

Add a single object into the script context.

Parameters:
  `key` - the name in the context this object is to stored under.
  `bean` - the object to be stored in the script context.

#### getBeans

    protected java.util.Map<java.lang.String,​java.lang.Object> getBeans()

Get the beans used for the script.

Returns:
  the map of beans.

#### executeScript

    public abstract void executeScript​(java.lang.String execName)

Do the work.

Parameters:
  `execName` - the name that will be passed to BSF for this script execution.

#### evaluateScript

    public abstract java.lang.Object evaluateScript​(java.lang.String execName)

Evaluate the script.

Parameters:
  `execName` - the name that will be passed to the scripting engine for this script execution.
Returns:
  the result of evaluating the script.

#### supportsLanguage

    public abstract boolean supportsLanguage()

Check if a script engine can be created for this language.

Returns:
  true if a script engine can be created, false otherwise.

#### getManagerName

    public abstract java.lang.String getManagerName()

Get the name of the manager prefix used for this scriptrunner.

Returns:
  the prefix string.

#### setLanguage

    public void setLanguage​(java.lang.String language)

Defines the language (required).

Parameters:
  `language` - the scripting language name for the script.

#### getLanguage

    public java.lang.String getLanguage()

Get the script language

Returns:
  the script language

#### setScriptClassLoader

    public void setScriptClassLoader​(java.lang.ClassLoader classLoader)

Set the script classloader.

Parameters:
  `classLoader` - the classloader to use.

#### getScriptClassLoader

    protected java.lang.ClassLoader getScriptClassLoader()

Get the classloader used to load the script engine.

Returns:
  the classloader.

#### setKeepEngine

    public void setKeepEngine​(boolean keepEngine)

Whether to keep the script engine between calls.

Parameters:
  `keepEngine` - if true, keep the engine.

#### getKeepEngine

    public boolean getKeepEngine()

Get the keep engine attribute.

Returns:
  the attribute.

#### setCompiled

    public final void setCompiled​(boolean compiled)

Whether to use script compilation if available.

Parameters:
  `compiled` - if true, compile the script if possible.
Since:
  Ant 1.10.2

#### getCompiled

    public final boolean getCompiled()

Get the compiled attribute.

Returns:
  the attribute.
Since:
  Ant 1.10.2

#### setEncoding

    public void setEncoding​(java.lang.String encoding)

Set encoding of the script from an external file; optional.

Parameters:
  `encoding` - encoding of the external file containing the script source.
Since:
  Ant 1.10.2

#### setSrc

    public void setSrc​(java.io.File file)

Load the script from an external file; optional.

Parameters:
  `file` - the file containing the script source.

#### loadResource

    public void loadResource​(Resource sourceResource)

Add a resource to the source list.

Parameters:
  `sourceResource` - the resource to load
Throws:
  `BuildException` - if the resource cannot be read
Since:
  Ant 1.7.1

#### loadResources

    public void loadResources​(ResourceCollection collection)

Add all resources in a resource collection to the source list.

Parameters:
  `collection` - the resource to load
Throws:
  `BuildException` - if a resource cannot be read
Since:
  Ant 1.7.1

#### addText

    public void addText​(java.lang.String text)

Set the script text. Properties in the text are not expanded!

Parameters:
  `text` - a component of the script text to be added.

#### getScript

    public java.lang.String getScript()

Get the current script text content.

Returns:
  the script text.

#### clearScript

    public void clearScript()

Clear the current script text content.

#### setProject

    public void setProject​(Project project)

Set the project for this runner.

Parameters:
  `project` - the project.

#### getProject

    public Project getProject()

Get the project for this runner.

Returns:
  the project.

#### bindToComponent

    public void bindToComponent​(ProjectComponent component)

Bind the runner to a project component. Properties, targets and references are all added as beans; project is bound to project, and self to the component.

Parameters:
  `component` - to become `self`

#### bindToComponentMinimum

    public void bindToComponentMinimum​(ProjectComponent component)

Bind the runner to a project component. The project and self are the only beans set.

Parameters:
  `component` - to become `self`

#### checkLanguage

    protected void checkLanguage()

Check if the language attribute is set.

Throws:
  `BuildException` - if it is not.

#### replaceContextLoader

    protected java.lang.ClassLoader replaceContextLoader()

Replace the current context classloader with the script context classloader.

Returns:
  the current context classloader.

#### restoreContextLoader

    protected void restoreContextLoader​(java.lang.ClassLoader origLoader)

Restore the context loader with the original context classloader. script context loader.

Parameters:
  `origLoader` - the original context classloader.