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 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
Constructor
Description
`ScriptRunnerBase()`

## Method Summary

Modifier and Type
Method
Description
`void`
`addBean(String key, Object bean)`
Add a single object into the script context.
`void`
`addBeans(Map<String,?> dictionary)`
Add a list of named objects to the list to be exported to the script
`void`
`addText(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 Object`
`evaluateScript(String execName)`
Evaluate the script.
`abstract void`
`executeScript(String execName)`
Do the work.
`protected Map<String,Object>`
`getBeans()`
Get the beans used for the script.
`final boolean`
`getCompiled()`
Get the compiled attribute.
`boolean`
`getKeepEngine()`
Get the keep engine attribute.
`String`
`getLanguage()`
Get the script language
`abstract String`
`getManagerName()`
Get the name of the manager prefix used for this scriptrunner.
`Project`
`getProject()`
Get the project for this runner.
`String`
`getScript()`
Get the current script text content.
`protected 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 ClassLoader`
`replaceContextLoader()`
Replace the current context classloader with the script context classloader.
`protected void`
`restoreContextLoader(ClassLoader origLoader)`
Restore the context loader with the original context classloader.
`final void`
`setCompiled(boolean compiled)`
Whether to use script compilation if available.
`void`
`setEncoding(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(String language)`
Defines the language (required).
`void`
`setProject(Project project)`
Set the project for this runner.
`void`
`setScriptClassLoader(ClassLoader classLoader)`
Set the script classloader.
`void`
`setSrc(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 Details

### ScriptRunnerBase

public ScriptRunnerBase()

## Method Details

### addBeans

public void addBeans(Map<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(String key, 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 Map<String,Object> getBeans()
Get the beans used for the script.

Returns:
  the map of beans.

### executeScript

public abstract void executeScript(String execName)
Do the work.

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

### evaluateScript

public abstract Object evaluateScript(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 String getManagerName()
Get the name of the manager prefix used for this scriptrunner.

Returns:
  the prefix string.

### setLanguage

public void setLanguage(String language)
Defines the language (required).

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

### getLanguage

public String getLanguage()
Get the script language

Returns:
  the script language

### setScriptClassLoader

public void setScriptClassLoader(ClassLoader classLoader)
Set the script classloader.

Parameters:
  `classLoader` - the classloader to use.

### getScriptClassLoader

protected 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(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(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(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 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 ClassLoader replaceContextLoader()
Replace the current context classloader with the script context classloader.

Returns:
  the current context classloader.

### restoreContextLoader

protected void restoreContextLoader(ClassLoader origLoader)
Restore the context loader with the original context classloader. script context loader.

Parameters:
  `origLoader` - the original context classloader.