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

Method Summary
`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`