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