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

Package org.apache.tools.ant.taskdefs

# Class MacroInstance

java.lang.Object
org.apache.tools.ant.ProjectComponent
org.apache.tools.ant.Task
org.apache.tools.ant.taskdefs.MacroInstance

All Implemented Interfaces:
  `Cloneable`, `DynamicAttribute`, `TaskContainer`

public class MacroInstance extends Task implements DynamicAttribute, TaskContainer
The class to be placed in the ant type definition. It is given a pointer to the template definition, and makes a copy of the unknown element, substituting the parameter values in attributes and text.

Since:
  Ant 1.6

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static class`
  `MacroInstance.Element`
  Embedded element in macro instance

- ## 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
  `MacroInstance()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addTask(Task nestedTask)`
  Add a unknownElement for the macro instances nested elements.
  `void`
  `addText(String text)`
  Set the text contents for the macro.
  `Object`
  `createDynamicElement(String name)`
  Deprecated.
  since 1.6.x.
  `void`
  `execute()`
  Execute the templates instance.
  `MacroDef`
  `getMacroDef()`
  `void`
  `setDynamicAttribute(String name, String value)`
  A parameter name value pair as a xml attribute.
  `void`
  `setMacroDef(MacroDef macroDef)`
  Called from MacroDef.MyAntTypeDefinition#create()

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

  `bindToOwner, getOwningTarget, getRuntimeConfigurableWrapper, getTaskName, getTaskType, getWrapper, handleErrorFlush, handleErrorOutput, handleFlush, handleInput, handleOutput, init, 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, setProject`

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

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

- ## Constructor Details

  - ### MacroInstance

    public MacroInstance()

- ## Method Details

  - ### setMacroDef

    public void setMacroDef(MacroDef macroDef)
    Called from MacroDef.MyAntTypeDefinition#create()
    Parameters:
      `macroDef` - a `MacroDef` value

  - ### getMacroDef

    public MacroDef getMacroDef()
    Returns:
      the macro definition object for this macro instance.

  - ### setDynamicAttribute

    public void setDynamicAttribute(String name, String value)
    A parameter name value pair as a xml attribute.
    Specified by:
      `setDynamicAttribute` in interface `DynamicAttribute`
    Parameters:
      `name` - the name of the attribute
      `value` - the value of the attribute

  - ### createDynamicElement

    @Deprecated public Object createDynamicElement(String name) throws BuildException
    Deprecated.
    since 1.6.x.
    Method present for BC purposes.
    Parameters:
      `name` - not used
    Returns:
      nothing
    Throws:
      `BuildException` - always

  - ### addTask

    public void addTask(Task nestedTask)
    Add a unknownElement for the macro instances nested elements.
    Specified by:
      `addTask` in interface `TaskContainer`
    Parameters:
      `nestedTask` - a nested element.

  - ### addText

    public void addText(String text)
    Set the text contents for the macro.
    Parameters:
      `text` - the text to be added to the macro.

  - ### execute

    public void execute()
    Execute the templates instance. Copies the unknown element, substitutes the attributes, and calls perform on the unknown element.
    Overrides:
      `execute` in class `Task`