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

All Methods Instance Methods Concrete Methods Deprecated Methods
`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`