org.apache.tools.ant.utilClass 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 Constructor and Description ScriptRunnerBase()
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method and Description void
addBean(java.lang.String key, java.lang.Object bean)
Add a single object into the script context.void
addBeans(java.util.Map dictionary)
Add a list of named objects to the list to be exported to the scriptvoid
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
getBeans()
Get the beans used for the script.boolean
getKeepEngine()
Get the keep engine attribute.java.lang.String
getLanguage()
Get the script languageabstract 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
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.
Method Detail
addBeans
public void addBeans(java.util.Map 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 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.
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 becomeself
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 becomeself
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.