ScriptRunnerBase (Apache Ant API)
Date: 2018-07-10

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

    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<java.lang.String,?> 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)` Evaluate the script.
    `abstract void` | `executeScript(java.lang.String execName)` Do the work.
    `protected java.util.Map<java.lang.String,java.lang.Object>` | `getBeans()` Get the beans used for the script.
    `boolean` | `getCompiled()` Get the compiled attribute.
    `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.
    `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` | `setCompiled(boolean compiled)` Whether to use script compilation if available.
    `void` | `setEncoding(java.lang.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(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<java.lang.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(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<java.lang.String,java.lang.Object> 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.

    - #### 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(java.lang.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(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 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.