MacroDef (Apache Ant API)
Description: declaration: package: org.apache.tools.ant.taskdefs, class: MacroDef

# 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:
  `Cloneable`

public class MacroDef extends AntlibDefinition
Describe class `MacroDef` here.

Since:
  Ant 1.6

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  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 Task

  `target, taskName, taskType, wrapper`
  Modifier and Type
  Field
  Description
  `protected Target`
  `target`
  Deprecated.
  since 1.6.x.
  `protected String`
  `taskName`
  Deprecated.
  since 1.6.x.
  `protected String`
  `taskType`
  Deprecated.
  since 1.6.x.
  `protected RuntimeConfigurable`
  `wrapper`
  Deprecated.
  since 1.6.x.

  ### Fields inherited from class ProjectComponent

  `description, location, project`
  Modifier and Type
  Field
  Description
  `protected String`
  `description`
  Deprecated.
  since 1.6.x.
  `protected Location`
  `location`
  Deprecated.
  since 1.6.x.
  `protected Project`
  `project`
  Deprecated.
  since 1.6.x.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `MacroDef()`

- ## Method Summary

  Modifier and Type
  Method
  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.
  `List<MacroDef.Attribute>`
  `getAttributes()`
  Gets this macro's attribute (and define?) list.
  `boolean`
  `getBackTrace()`
  `Map<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(Object obj)`
  Equality method for this definition
  `void`
  `setBackTrace(boolean backTrace)`
  Set the backTrace attribute.
  `void`
  `setName(String name)`
  Name of the definition
  `boolean`
  `similar(Object obj)`
  Similar method for this definition

  ### Methods inherited from class AntlibDefinition

  `getAntlibClassLoader, getURI, setAntlibClassLoader, setURI`
  Modifier and Type
  Method
  Description
  `ClassLoader`
  `getAntlibClassLoader()`
  The current antlib classloader
  `String`
  `getURI()`
  The URI for this definition.
  `void`
  `setAntlibClassLoader(ClassLoader classLoader)`
  Set the class loader of the loading object
  `void`
  `setURI(String uri)`
  The URI for this definition.

  ### Methods inherited from class 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`
  Modifier and Type
  Method
  Description
  `final void`
  `bindToOwner(Task owner)`
  Bind a task to another; use this when configuring a newly created task to do work on behalf of another.
  `Target`
  `getOwningTarget()`
  Returns the container target of this task.
  `RuntimeConfigurable`
  `getRuntimeConfigurableWrapper()`
  Returns the wrapper used for runtime configuration.
  `String`
  `getTaskName()`
  Returns the name to use in logging messages.
  `String`
  `getTaskType()`
  Return the type of task.
  `protected RuntimeConfigurable`
  `getWrapper()`
  Return the runtime configurable structure for this task.
  `protected void`
  `handleErrorFlush(String output)`
  Handles an error line by logging it with the WARN priority.
  `protected void`
  `handleErrorOutput(String output)`
  Handles an error output by logging it with the WARN priority.
  `protected void`
  `handleFlush(String output)`
  Handles output by logging it with the INFO priority.
  `protected int`
  `handleInput(byte[] buffer, int offset, int length)`
  Handle an input request by this task.
  `protected void`
  `handleOutput(String output)`
  Handles output by logging it with the INFO priority.
  `void`
  `init()`
  Called by the project to let the task initialize properly.
  `protected final boolean`
  `isInvalid()`
  Has this task been marked invalid?
  `void`
  `log(String msg)`
  Logs a message with the default (INFO) priority.
  `void`
  `log(String msg, int msgLevel)`
  Logs a message with the given priority.
  `void`
  `log(String msg, Throwable t, int msgLevel)`
  Logs a message with the given priority.
  `void`
  `log(Throwable t, int msgLevel)`
  Logs a message with the given priority.
  `void`
  `maybeConfigure()`
  Configures this task - if it hasn't been done already.
  `final void`
  `perform()`
  Performs this task if it's still valid, or gets a replacement version and performs that otherwise.
  `void`
  `reconfigure()`
  Force the task to be reconfigured from its RuntimeConfigurable.
  `void`
  `setOwningTarget(Target target)`
  Sets the target container of this task.
  `void`
  `setRuntimeConfigurableWrapper(RuntimeConfigurable wrapper)`
  Sets the wrapper to be used for runtime configuration.
  `void`
  `setTaskName(String name)`
  Sets the name to use in logging messages.
  `void`
  `setTaskType(String type)`
  Sets the name with which the task has been invoked.

  ### Methods inherited from class ProjectComponent

  `clone, getDescription, getLocation, getProject, setDescription, setLocation, setProject`
  Modifier and Type
  Method
  Description
  `Object`
  `clone()`
  `String`
  `getDescription()`
  Returns the description of the current action.
  `Location`
  `getLocation()`
  Returns the file/location where this task was defined.
  `Project`
  `getProject()`
  Returns the project to which this component belongs.
  `void`
  `setDescription(String desc)`
  Sets a description of the current action.
  `void`
  `setLocation(Location location)`
  Sets the file/location where this task was defined.
  `void`
  `setProject(Project project)`
  Sets the project object of this component.

  ### Methods inherited from class Object

  `equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### MacroDef

    public MacroDef()

- ## Method Details

  - ### setName

    public void setName(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 List<MacroDef.Attribute> getAttributes()
    Gets this macro's attribute (and define?) list.
    Returns:
      the nested Attributes

  - ### getElements

    public Map<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(Object obj)
    Similar method for this definition
    Parameters:
      `obj` - another definition
    Returns:
      true if the definitions are similar

  - ### sameDefinition

    public boolean sameDefinition(Object obj)
    Equality method for this definition
    Parameters:
      `obj` - another definition
    Returns:
      true if the definitions are the same