ScriptDef (Apache Ant API)
Date: 2021-07-10

org.apache.tools.ant.taskdefs.optional.script

## Class ScriptDef

- java.lang.Object
- - org.apache.tools.ant.ProjectComponent
  - - org.apache.tools.ant.Task
    - - org.apache.tools.ant.taskdefs.AntlibDefinition
      - - org.apache.tools.ant.taskdefs.DefBase
        - - org.apache.tools.ant.taskdefs.optional.script.ScriptDef

- All Implemented Interfaces:
    java.lang.Cloneable

      public class ScriptDef
      extends DefBase

  Define a task using a script
  Since:
    Ant 1.6

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `ScriptDef.Attribute` Class representing an attribute definition
    `static class` | `ScriptDef.NestedElement` Class to represent a nested element definition

  - ### Field Summary

    - ### Fields inherited from class org.apache.tools.ant.Task

      `target, taskName, taskType, wrapper`

    - ### Fields inherited from class org.apache.tools.ant.ProjectComponent

      `description, location, project`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ScriptDef()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `add(ResourceCollection resource)` Add any source resource.
    `void` | `addAttribute(ScriptDef.Attribute attribute)` Add an attribute definition to this script.
    `void` | `addElement(ScriptDef.NestedElement nestedElement)` Add a nested element definition.
    `void` | `addText(java.lang.String text)` Set the script text.
    `java.lang.Object` | `createNestedElement(java.lang.String elementName)` Create a nested element to be configured.
    `void` | `execute()` Define the script.
    `void` | `executeScript(java.util.Map attributes, java.util.Map elements)` Deprecated. since 1.7. Use executeScript(attribute, elements, instance) instead.
    `void` | `executeScript(java.util.Map attributes, java.util.Map elements, ScriptDefBase instance)` Execute the script.
    `boolean` | `isAttributeSupported(java.lang.String attributeName)` Indicates whether the task supports a given attribute name
    `void` | `setLanguage(java.lang.String language)` Defines the language (required).
    `void` | `setManager(java.lang.String manager)` Defines the manager.
    `void` | `setName(java.lang.String name)` set the name under which this script will be activated in a build file
    `void` | `setProject(Project project)` Set the project.
    `void` | `setSrc(java.io.File file)` Load the script from an external file ; optional.

    - ### Methods inherited from class org.apache.tools.ant.taskdefs.DefBase

      `createClasspath, createLoader, getClasspath, getClasspathId, getLoaderId, hasCpDelegate, init, isReverseLoader, setClasspath, setClasspathRef, setLoaderRef, setReverseLoader`

    - ### Methods inherited from class org.apache.tools.ant.taskdefs.AntlibDefinition

      `getAntlibClassLoader, getURI, setAntlibClassLoader, setURI`

    - ### Methods inherited from class org.apache.tools.ant.Task

      `bindToOwner, getOwningTarget, getRuntimeConfigurableWrapper, getTaskName, getTaskType, getWrapper, handleErrorFlush, handleErrorOutput, handleFlush, handleInput, handleOutput, isInvalid, log, log, log, log, maybeConfigure, perform, reconfigure, setOwningTarget, setRuntimeConfigurableWrapper, setTaskName, setTaskType`

    - ### Methods inherited from class org.apache.tools.ant.ProjectComponent

      `clone, getDescription, getLocation, getProject, setDescription, setLocation`

    - ### Methods inherited from class java.lang.Object

      `equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### ScriptDef

          public ScriptDef()

  - ### Method Detail

    - #### setProject

          public void setProject(Project project)

      Set the project.
      Overrides:
        `setProject` in class `ProjectComponent`
      Parameters:
        `project` - the project that this def belows to.

    - #### setName

          public void setName(java.lang.String name)

      set the name under which this script will be activated in a build file
      Parameters:
        `name` - the name of the script

    - #### isAttributeSupported

          public boolean isAttributeSupported(java.lang.String attributeName)

      Indicates whether the task supports a given attribute name
      Parameters:
        `attributeName` - the name of the attribute.
      Returns:
        true if the attribute is supported by the script.

    - #### addAttribute

          public void addAttribute(ScriptDef.Attribute attribute)

      Add an attribute definition to this script.
      Parameters:
        `attribute` - the attribute definition.

    - #### addElement

          public void addElement(ScriptDef.NestedElement nestedElement)

      Add a nested element definition.
      Parameters:
        `nestedElement` - the nested element definition.

    - #### execute

          public void execute()

      Define the script.
      Overrides:
        `execute` in class `Task`

    - #### createNestedElement

          public java.lang.Object createNestedElement(java.lang.String elementName)

      Create a nested element to be configured.
      Parameters:
        `elementName` - the name of the nested element.
      Returns:
        object representing the element name.

    - #### executeScript

          public void executeScript(java.util.Map attributes,
                                    java.util.Map elements)

      Deprecated. since 1.7. Use executeScript(attribute, elements, instance) instead.
      Execute the script.
      Parameters:
        `attributes` - collection of attributes
        `elements` - a list of nested element values.

    - #### executeScript

          public void executeScript(java.util.Map attributes,
                                    java.util.Map elements,
                                    ScriptDefBase instance)

      Execute the script. This is called by the script instance to execute the script for this definition.
      Parameters:
        `attributes` - collection of attributes
        `elements` - a list of nested element values.
        `instance` - the script instance; can be null

    - #### setManager

          public void setManager(java.lang.String manager)

      Defines the manager.
      Parameters:
        `manager` - the scripting manager.

    - #### setLanguage

          public void setLanguage(java.lang.String language)

      Defines the language (required).
      Parameters:
        `language` - the scripting language name for the script.

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

    - #### add

          public void add(ResourceCollection resource)

      Add any source resource.
      Parameters:
        `resource` - source of script
      Since:
        Ant1.7.1