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

# Class TaskAdapter

java.lang.Object
org.apache.tools.ant.ProjectComponent
org.apache.tools.ant.Task
org.apache.tools.ant.TaskAdapter

All Implemented Interfaces:
  `Cloneable, TypeAdapter`

public class TaskAdapter extends Task implements TypeAdapter
Uses introspection to "adapt" an arbitrary Bean which doesn't itself extend Task, but still contains an execute method and optionally a setProject method.

- ## 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
  `TaskAdapter()`
  No-arg constructor for reflection.
  `TaskAdapter(Object proxy)`
  Constructor for given proxy.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `checkProxyClass(Class<?> proxyClass)`
  Check if the proxy class is a valid class to use with this adapter.
  `static void`
  `checkTaskClass(Class<?> taskClass, Project project)`
  Checks whether or not a class is suitable to be adapted by TaskAdapter.
  `void`
  `execute()`
  Executes the proxied task.
  `Object`
  `getProxy()`
  Returns the target object being proxied.
  `void`
  `setProxy(Object o)`
  Sets the target object to proxy for.

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

  ### Methods inherited from interface TypeAdapter

  `getProject, setProject`
  Modifier and Type
  Method
  Description
  `Project`
  `getProject()`
  Gets the project
  `void`
  `setProject(Project p)`
  Sets the project

- ## Constructor Details

  - ### TaskAdapter

    public TaskAdapter()
    No-arg constructor for reflection.

  - ### TaskAdapter

    public TaskAdapter(Object proxy)
    Constructor for given proxy. So you could write easier code

        myTaskContainer.addTask(new TaskAdapter(myProxy));

    Parameters:
      `proxy` - The object which Ant should use as task.

- ## Method Details

  - ### checkTaskClass

    public static void checkTaskClass(Class<?> taskClass, Project project)
    Checks whether or not a class is suitable to be adapted by TaskAdapter. If the class is of type Dispatchable, the check is not performed because the method that will be executed will be determined only at runtime of the actual task and not during parse time. This only checks conditions which are additionally required for tasks adapted by TaskAdapter. Thus, this method should be called by Project.checkTaskClass. Throws a BuildException and logs as Project.MSG_ERR for conditions that will cause the task execution to fail. Logs other suspicious conditions with Project.MSG_WARN.
    Parameters:
      `taskClass` - Class to test for suitability. Must not be `null`.
      `project` - Project to log warnings/errors to. Must not be `null`.
    See Also:
      - `Project.checkTaskClass(Class)`

  - ### checkProxyClass

    public void checkProxyClass(Class<?> proxyClass)
    Check if the proxy class is a valid class to use with this adapter. The class must have a public no-arg "execute()" method.
    Specified by:
      `checkProxyClass` in interface `TypeAdapter`
    Parameters:
      `proxyClass` - the class to check.

  - ### execute

    public void execute() throws BuildException
    Executes the proxied task.
    Overrides:
      `execute` in class `Task`
    Throws:
      `BuildException` - if the project could not be set or the method could not be executed.

  - ### setProxy

    public void setProxy(Object o)
    Sets the target object to proxy for.
    Specified by:
      `setProxy` in interface `TypeAdapter`
    Parameters:
      `o` - The target object. Must not be `null`.

  - ### getProxy

    public Object getProxy()
    Returns the target object being proxied.
    Specified by:
      `getProxy` in interface `TypeAdapter`
    Returns:
      the target proxy object.