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:
    `java.lang.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

    All Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `addTask​(Task nestedTask)` | Add a unknownElement for the macro instances nested elements.
    `void` | `addText​(java.lang.String text)` | Set the text contents for the macro.
    `java.lang.Object` | `createDynamicElement​(java.lang.String name)` | Deprecated. since 1.6.x.
    `void` | `execute()` | Execute the templates instance.
    `MacroDef` | `getMacroDef()` |
    `void` | `setDynamicAttribute​(java.lang.String name, java.lang.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 Detail

    - #### MacroInstance

          public MacroInstance()

  - ### Method Detail

    - #### 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​(java.lang.String name,
                                          java.lang.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 java.lang.Object createDynamicElement​(java.lang.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​(java.lang.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`