## 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
`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.