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

  Defines 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)` Adds any source resource.
    `void` | `addAttribute(ScriptDef.Attribute attribute)` Adds an attribute definition to this script.
    `void` | `addElement(ScriptDef.NestedElement nestedElement)` Adds a nested element definition.
    `void` | `addText(java.lang.String text)` Sets the script text.
    `java.lang.Object` | `createNestedElement(java.lang.String elementName)` Creates a nested element to be configured.
    `void` | `execute()` Defines the script.
    `void` | `executeScript(java.util.Map<java.lang.String,java.lang.String> attributes, java.util.Map<java.lang.String,java.util.List<java.lang.Object>> elements)` Deprecated. since 1.7. Use executeScript(attribute, elements, instance) instead.
    `void` | `executeScript(java.util.Map<java.lang.String,java.lang.String> attributes, java.util.Map<java.lang.String,java.util.List<java.lang.Object>> elements, ScriptDefBase instance)` Executes the script.
    `boolean` | `isAttributeSupported(java.lang.String attributeName)` Indicates whether the task supports a given attribute name
    `void` | `setCompiled(boolean compiled)` Defines the compilation feature; optional.
    `void` | `setEncoding(java.lang.String encoding)` Sets the encoding of the script from an external file; optional.
    `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)` Sets 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)` Loads 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 definition belongs to.

    - #### setName

          public void setName(java.lang.String name)

      Sets 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)

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

    - #### addElement

          public void addElement(ScriptDef.NestedElement nestedElement)

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

    - #### execute

          public void execute()

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

    - #### createNestedElement

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

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

    - #### executeScript

          @Deprecated
          public void executeScript(java.util.Map<java.lang.String,java.lang.String> attributes,
                                                java.util.Map<java.lang.String,java.util.List<java.lang.Object>> elements)

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

    - #### executeScript

          public void executeScript(java.util.Map<java.lang.String,java.lang.String> attributes,
                                    java.util.Map<java.lang.String,java.util.List<java.lang.Object>> elements,
                                    ScriptDefBase instance)

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

    - #### setCompiled

          public void setCompiled(boolean compiled)

      Defines the compilation feature; optional.
      Parameters:
        `compiled` - enables the script compilation if available.
      Since:
        Ant 1.10.2

    - #### setSrc

          public void setSrc(java.io.File file)

      Loads the script from an external file; optional.
      Parameters:
        `file` - the file containing the script source.

    - #### setEncoding

          public void setEncoding(java.lang.String encoding)

      Sets the encoding of the script from an external file; optional.
      Parameters:
        `encoding` - the encoding of the file containing the script source.
      Since:
        Ant 1.10.2

    - #### addText

          public void addText(java.lang.String text)

      Sets the script text.
      Parameters:
        `text` - a component of the script text to be added.

    - #### add

          public void add(ResourceCollection resource)

      Adds any source resource.
      Parameters:
        `resource` - source of script
      Since:
        Ant 1.7.1