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

### Method Summary

All Methods Instance Methods Concrete Methods Deprecated Methods
`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