Package 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 | 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 | Description
    --- | ---
    `ScriptDef()` | Create a new `ScriptDef`.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method | 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.
    `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)` | Deprecated.
    `void` | `setManager​(ScriptManager manager)` | Set the script 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` | `setSetBeans​(boolean setBeans)` | Set the setbeans attribute.
    `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()

      Create a new `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

          @Deprecated
          public void setManager​(java.lang.String manager)

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

    - #### setManager

          public void setManager​(ScriptManager manager)

      Set the script manager.
      Parameters:
        `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

    - #### setSetBeans

          public void setSetBeans​(boolean setBeans)

      Set the setbeans attribute. If this is true, <script> will create variables in the script instance for all properties, targets and references of the current project. It this is false, only the project and self variables will be set. The default is true.
      Parameters:
        `setBeans` - the value to set.

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