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.