MacroInstance (Apache Ant API)
Date: 2015-07-03

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

  - ### Method Summary

    Methods
    Modifier and Type | Method and 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

          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`