org.apache.tools.ant.taskdefs

## Class MacroDef

- java.lang.Object
- - org.apache.tools.ant.ProjectComponent
  - - org.apache.tools.ant.Task
    - - org.apache.tools.ant.taskdefs.AntlibDefinition
      - - org.apache.tools.ant.taskdefs.MacroDef

- All Implemented Interfaces:
    java.lang.Cloneable

      public class MacroDef
      extends AntlibDefinition

  Describe class `MacroDef` here.
  Since:
    Ant 1.6

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `MacroDef.Attribute` An attribute for the MacroDef task.
    `static class` | `MacroDef.NestedSequential` The class corresponding to the sequential nested element.
    `static class` | `MacroDef.TemplateElement` A nested element for the MacroDef task.
    `static class` | `MacroDef.Text` A nested text element for the MacroDef task.

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

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addConfiguredAttribute(MacroDef.Attribute attribute)` Add an attribute element.
    `void` | `addConfiguredElement(MacroDef.TemplateElement element)` Add an element element.
    `void` | `addConfiguredText(MacroDef.Text text)` Add the text element.
    `MacroDef.NestedSequential` | `createSequential()` This is the sequential nested element of the macrodef.
    `void` | `execute()` Create a new ant type based on the embedded tasks and types.
    `java.util.List<MacroDef.Attribute>` | `getAttributes()` Gets this macro's attribute (and define?) list.
    `boolean` | `getBackTrace()`
    `java.util.Map<java.lang.String,MacroDef.TemplateElement>` | `getElements()` Gets this macro's elements.
    `UnknownElement` | `getNestedTask()` Convert the nested sequential to an unknown element
    `MacroDef.Text` | `getText()`
    `static boolean` | `isValidNameCharacter(char c)` Check if a character is a valid character for an element or attribute name.
    `boolean` | `sameDefinition(java.lang.Object obj)` Equality method for this definition
    `void` | `setBackTrace(boolean backTrace)` Set the backTrace attribute.
    `void` | `setName(java.lang.String name)` Name of the definition
    `boolean` | `similar(java.lang.Object obj)` Similar method for this definition

    - ### Methods inherited from class org.apache.tools.ant.taskdefs.AntlibDefinition

      `getAntlibClassLoader, getURI, setAntlibClassLoader, setURI`

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

    - #### MacroDef

          public MacroDef()

  - ### Method Detail

    - #### setName

          public void setName(java.lang.String name)

      Name of the definition
      Parameters:
        `name` - the name of the definition

    - #### addConfiguredText

          public void addConfiguredText(MacroDef.Text text)

      Add the text element.
      Parameters:
        `text` - the nested text element to add
      Since:
        ant 1.6.1

    - #### getText

          public MacroDef.Text getText()

      Returns:
        the nested text element
      Since:
        ant 1.6.1

    - #### setBackTrace

          public void setBackTrace(boolean backTrace)

      Set the backTrace attribute.
      Parameters:
        `backTrace` - if true and the macro instance generates an error, a backtrace of the location within the macro and call to the macro will be output. if false, only the location of the call to the macro will be shown. Default is true.
      Since:
        ant 1.7

    - #### getBackTrace

          public boolean getBackTrace()

      Returns:
        the backTrace attribute.
      Since:
        ant 1.7

    - #### createSequential

          public MacroDef.NestedSequential createSequential()

      This is the sequential nested element of the macrodef.
      Returns:
        a sequential element to be configured.

    - #### getNestedTask

          public UnknownElement getNestedTask()

      Convert the nested sequential to an unknown element
      Returns:
        the nested sequential as an unknown element.

    - #### getAttributes

          public java.util.List<MacroDef.Attribute> getAttributes()

      Gets this macro's attribute (and define?) list.
      Returns:
        the nested Attributes

    - #### getElements

          public java.util.Map<java.lang.String,MacroDef.TemplateElement> getElements()

      Gets this macro's elements.
      Returns:
        the map nested elements, keyed by element name, with `MacroDef.TemplateElement` values.

    - #### isValidNameCharacter

          public static boolean isValidNameCharacter(char c)

      Check if a character is a valid character for an element or attribute name.
      Parameters:
        `c` - the character to check
      Returns:
        true if the character is a letter or digit or '.' or '-' attribute name

    - #### addConfiguredAttribute

          public void addConfiguredAttribute(MacroDef.Attribute attribute)

      Add an attribute element.
      Parameters:
        `attribute` - an attribute nested element.

    - #### addConfiguredElement

          public void addConfiguredElement(MacroDef.TemplateElement element)

      Add an element element.
      Parameters:
        `element` - an element nested element.

    - #### execute

          public void execute()

      Create a new ant type based on the embedded tasks and types.
      Overrides:
        `execute` in class `Task`

    - #### similar

          public boolean similar(java.lang.Object obj)

      Similar method for this definition
      Parameters:
        `obj` - another definition
      Returns:
        true if the definitions are similar

    - #### sameDefinition

          public boolean sameDefinition(java.lang.Object obj)

      Equality method for this definition
      Parameters:
        `obj` - another definition
      Returns:
        true if the definitions are the same