ScriptDef (Apache Ant API)
Description: declaration: package: org.apache.tools.ant.taskdefs.optional.script, class: ScriptDef

# 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:
  `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 Task

  `target, taskName, taskType, wrapper`
  Modifier and Type
  Field
  Description
  `protected Target`
  `target`
  Deprecated.
  since 1.6.x.
  `protected String`
  `taskName`
  Deprecated.
  since 1.6.x.
  `protected String`
  `taskType`
  Deprecated.
  since 1.6.x.
  `protected RuntimeConfigurable`
  `wrapper`
  Deprecated.
  since 1.6.x.

  ### Fields inherited from class ProjectComponent

  `description, location, project`
  Modifier and Type
  Field
  Description
  `protected String`
  `description`
  Deprecated.
  since 1.6.x.
  `protected Location`
  `location`
  Deprecated.
  since 1.6.x.
  `protected Project`
  `project`
  Deprecated.
  since 1.6.x.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ScriptDef()`
  Create a new `ScriptDef`.

- ## Method Summary

  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(String text)`
  Sets the script text.
  `Object`
  `createNestedElement(String elementName)`
  Creates a nested element to be configured.
  `void`
  `execute()`
  Defines the script.
  `void`
  `executeScript(Map<String,String> attributes, Map<String, List<Object>> elements)`
  Deprecated.
  since 1.7.
  `void`
  `executeScript(Map<String,String> attributes, Map<String, List<Object>> elements, ScriptDefBase instance)`
  Executes the script.
  `boolean`
  `isAttributeSupported(String attributeName)`
  Indicates whether the task supports a given attribute name
  `void`
  `setCompiled(boolean compiled)`
  Defines the compilation feature; optional.
  `void`
  `setEncoding(String encoding)`
  Sets the encoding of the script from an external file; optional.
  `void`
  `setLanguage(String language)`
  Defines the language (required).
  `void`
  `setManager(String manager)`
  Deprecated.
  `void`
  `setManager(ScriptManager manager)`
  Set the script manager.
  `void`
  `setName(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(File file)`
  Loads the script from an external file; optional.

  ### Methods inherited from class DefBase

  `createClasspath, createLoader, getClasspath, getClasspathId, getLoaderId, hasCpDelegate, init, isReverseLoader, setClasspath, setClasspathRef, setLoaderRef, setReverseLoader`
  Modifier and Type
  Method
  Description
  `Path`
  `createClasspath()`
  Create the classpath to be used when searching for component being defined.
  `protected ClassLoader`
  `createLoader()`
  create a classloader for this definition
  `Path`
  `getClasspath()`
  `String`
  `getClasspathId()`
  Returns the class path id of the class path delegate.
  `String`
  `getLoaderId()`
  Returns the loader id of the class path Delegate.
  `protected boolean`
  `hasCpDelegate()`
  Check if classpath attributes have been set.
  `void`
  `init()`
  Called by the project to let the task initialize properly.
  `boolean`
  `isReverseLoader()`
  `void`
  `setClasspath(Path classpath)`
  Set the classpath to be used when searching for component being defined.
  `void`
  `setClasspathRef(Reference r)`
  Set a reference to a classpath to use when loading the files.
  `void`
  `setLoaderRef(Reference r)`
  Use the reference to locate the loader.
  `void`
  `setReverseLoader(boolean reverseLoader)`
  Deprecated.
  since 1.6.x.

  ### Methods inherited from class AntlibDefinition

  `getAntlibClassLoader, getURI, setAntlibClassLoader, setURI`
  Modifier and Type
  Method
  Description
  `ClassLoader`
  `getAntlibClassLoader()`
  The current antlib classloader
  `String`
  `getURI()`
  The URI for this definition.
  `void`
  `setAntlibClassLoader(ClassLoader classLoader)`
  Set the class loader of the loading object
  `void`
  `setURI(String uri)`
  The URI for this definition.

  ### Methods inherited from class Task

  `bindToOwner, getOwningTarget, getRuntimeConfigurableWrapper, getTaskName, getTaskType, getWrapper, handleErrorFlush, handleErrorOutput, handleFlush, handleInput, handleOutput, isInvalid, log, log, log, log, maybeConfigure, perform, reconfigure, setOwningTarget, setRuntimeConfigurableWrapper, setTaskName, setTaskType`
  Modifier and Type
  Method
  Description
  `final void`
  `bindToOwner(Task owner)`
  Bind a task to another; use this when configuring a newly created task to do work on behalf of another.
  `Target`
  `getOwningTarget()`
  Returns the container target of this task.
  `RuntimeConfigurable`
  `getRuntimeConfigurableWrapper()`
  Returns the wrapper used for runtime configuration.
  `String`
  `getTaskName()`
  Returns the name to use in logging messages.
  `String`
  `getTaskType()`
  Return the type of task.
  `protected RuntimeConfigurable`
  `getWrapper()`
  Return the runtime configurable structure for this task.
  `protected void`
  `handleErrorFlush(String output)`
  Handles an error line by logging it with the WARN priority.
  `protected void`
  `handleErrorOutput(String output)`
  Handles an error output by logging it with the WARN priority.
  `protected void`
  `handleFlush(String output)`
  Handles output by logging it with the INFO priority.
  `protected int`
  `handleInput(byte[] buffer, int offset, int length)`
  Handle an input request by this task.
  `protected void`
  `handleOutput(String output)`
  Handles output by logging it with the INFO priority.
  `protected final boolean`
  `isInvalid()`
  Has this task been marked invalid?
  `void`
  `log(String msg)`
  Logs a message with the default (INFO) priority.
  `void`
  `log(String msg, int msgLevel)`
  Logs a message with the given priority.
  `void`
  `log(String msg, Throwable t, int msgLevel)`
  Logs a message with the given priority.
  `void`
  `log(Throwable t, int msgLevel)`
  Logs a message with the given priority.
  `void`
  `maybeConfigure()`
  Configures this task - if it hasn't been done already.
  `final void`
  `perform()`
  Performs this task if it's still valid, or gets a replacement version and performs that otherwise.
  `void`
  `reconfigure()`
  Force the task to be reconfigured from its RuntimeConfigurable.
  `void`
  `setOwningTarget(Target target)`
  Sets the target container of this task.
  `void`
  `setRuntimeConfigurableWrapper(RuntimeConfigurable wrapper)`
  Sets the wrapper to be used for runtime configuration.
  `void`
  `setTaskName(String name)`
  Sets the name to use in logging messages.
  `void`
  `setTaskType(String type)`
  Sets the name with which the task has been invoked.

  ### Methods inherited from class ProjectComponent

  `clone, getDescription, getLocation, getProject, setDescription, setLocation`
  Modifier and Type
  Method
  Description
  `Object`
  `clone()`
  `String`
  `getDescription()`
  Returns the description of the current action.
  `Location`
  `getLocation()`
  Returns the file/location where this task was defined.
  `Project`
  `getProject()`
  Returns the project to which this component belongs.
  `void`
  `setDescription(String desc)`
  Sets a description of the current action.
  `void`
  `setLocation(Location location)`
  Sets the file/location where this task was defined.

  ### Methods inherited from class Object

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

- ## Constructor Details

  - ### ScriptDef

    public ScriptDef()
    Create a new `ScriptDef`.

- ## Method Details

  - ### 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(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(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 Object createNestedElement(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(Map<String,String> attributes, Map<String, List<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(Map<String,String> attributes, Map<String, List<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(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(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(File file)
    Loads the script from an external file; optional.
    Parameters:
      `file` - the file containing the script source.

  - ### setEncoding

    public void setEncoding(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(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