org.apache.tools.ant.util
Class ScriptRunnerBase

java.lang.Object
  extended by 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
ScriptRunnerBase()
           
 
Method Summary
 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 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)
          Evalulate 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 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.
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.
 
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 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)
Evalulate the script.

Parameters:
execName - the name that will be passed to BSF for this script execution.
Returns:
the result of evalulating 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.

addText

public void addText(java.lang.String text)
Set the script text.

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.