Target (Apache Ant API)
Date: 2018-03-24

org.apache.tools.ant

## Class Target

- java.lang.Object
- - org.apache.tools.ant.Target

- All Implemented Interfaces:
    TaskContainer
  Direct Known Subclasses:
    ExtensionPoint

      public class Target
      extends java.lang.Object
      implements TaskContainer

  Class to implement a target object with required parameters.

  If you are creating Targets programmatically, make sure you set the Location to a useful value. In particular all targets should have different location values.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `Target()` Default constructor.
    `Target(Target other)` Cloning constructor.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addDataType(RuntimeConfigurable r)` Adds the wrapper for a data type element to this target.
    `void` | `addDependency(java.lang.String dependency)` Adds a dependency to this target.
    `void` | `addTask(Task task)` Adds a task to this target.
    `boolean` | `dependsOn(java.lang.String other)` Does this target depend on the named target?
    `void` | `execute()` Executes the target if the "if" and "unless" conditions are satisfied.
    `java.util.Enumeration<java.lang.String>` | `getDependencies()` Returns an enumeration of the dependencies of this target.
    `java.lang.String` | `getDescription()` Returns the description of this target.
    `java.lang.String` | `getIf()` Returns the "if" property condition of this target.
    `Location` | `getLocation()` Get the location of this target's definition.
    `java.lang.String` | `getName()` Returns the name of this target.
    `Project` | `getProject()` Returns the project this target belongs to.
    `Task[]` | `getTasks()` Returns the current set of tasks to be executed by this target.
    `java.lang.String` | `getUnless()` Returns the "unless" property condition of this target.
    `static java.util.List<java.lang.String>` | `parseDepends(java.lang.String depends, java.lang.String targetName, java.lang.String attributeName)`
    `void` | `performTasks()` Performs the tasks within this target (if the conditions are met), firing target started/target finished messages around a call to execute.
    `void` | `setDepends(java.lang.String depS)` Sets the list of targets this target is dependent on.
    `void` | `setDescription(java.lang.String description)` Sets the description of this target.
    `void` | `setIf(Condition condition)` Same as `setIf(String)` but requires a `Condition` instance
    `void` | `setIf(java.lang.String property)` Sets the "if" condition to test on execution.
    `void` | `setLocation(Location location)` Sets the location of this target's definition.
    `void` | `setName(java.lang.String name)` Sets the name of this target.
    `void` | `setProject(Project project)` Sets the project this target belongs to.
    `void` | `setUnless(Condition condition)` Same as `setUnless(String)` but requires a `Condition` instance
    `void` | `setUnless(java.lang.String property)` Sets the "unless" condition to test on execution.
    `java.lang.String` | `toString()` Returns the name of this target.

    - ### Methods inherited from class java.lang.Object

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

- - ### Constructor Detail

    - #### Target

          public Target()

      Default constructor.

    - #### Target

          public Target(Target other)

      Cloning constructor.
      Parameters:
        `other` - the Target to clone.

  - ### Method Detail

    - #### setProject

          public void setProject(Project project)

      Sets the project this target belongs to.
      Parameters:
        `project` - The project this target belongs to. Must not be `null`.

    - #### getProject

          public Project getProject()

      Returns the project this target belongs to.
      Returns:
        The project this target belongs to, or `null` if the project has not been set yet.

    - #### setLocation

          public void setLocation(Location location)

      Sets the location of this target's definition.
      Parameters:
        `location` - `Location`
      Since:
        1.6.2

    - #### getLocation

          public Location getLocation()

      Get the location of this target's definition.
      Returns:
        `Location`
      Since:
        1.6.2

    - #### setDepends

          public void setDepends(java.lang.String depS)

      Sets the list of targets this target is dependent on. The targets themselves are not resolved at this time.
      Parameters:
        `depS` - A comma-separated list of targets this target depends on. Must not be `null`.

    - #### parseDepends

          public static java.util.List<java.lang.String> parseDepends(java.lang.String depends,
                                                                      java.lang.String targetName,
                                                                      java.lang.String attributeName)

    - #### setName

          public void setName(java.lang.String name)

      Sets the name of this target.
      Parameters:
        `name` - The name of this target. Should not be `null`.

    - #### getName

          public java.lang.String getName()

      Returns the name of this target.
      Returns:
        the name of this target, or `null` if the name has not been set yet.

    - #### addTask

          public void addTask(Task task)

      Adds a task to this target.
      Specified by:
        `addTask` in interface `TaskContainer`
      Parameters:
        `task` - The task to be added. Must not be `null`.

    - #### addDataType

          public void addDataType(RuntimeConfigurable r)

      Adds the wrapper for a data type element to this target.
      Parameters:
        `r` - The wrapper for the data type element to be added. Must not be `null`.

    - #### getTasks

          public Task[] getTasks()

      Returns the current set of tasks to be executed by this target.
      Returns:
        an array of the tasks currently within this target

    - #### addDependency

          public void addDependency(java.lang.String dependency)

      Adds a dependency to this target.
      Parameters:
        `dependency` - The name of a target this target is dependent on. Must not be `null`.

    - #### getDependencies

          public java.util.Enumeration<java.lang.String> getDependencies()

      Returns an enumeration of the dependencies of this target.
      Returns:
        an enumeration of the dependencies of this target (enumeration of String)

    - #### dependsOn

          public boolean dependsOn(java.lang.String other)

      Does this target depend on the named target?
      Parameters:
        `other` - the other named target.
      Returns:
        true if the target does depend on the named target
      Since:
        Ant 1.6

    - #### setIf

          public void setIf(java.lang.String property)

      Sets the "if" condition to test on execution. This is the name of a property to test for existence - if the property is not set, the task will not execute. The property goes through property substitution once before testing, so if property `foo` has value `bar`, setting the "if" condition to `${foo}_x` will mean that the task will only execute if property `bar_x` is set.
      Parameters:
        `property` - The property condition to test on execution. May be `null`, in which case no "if" test is performed.

    - #### getIf

          public java.lang.String getIf()

      Returns the "if" property condition of this target.
      Returns:
        the "if" property condition or `null` if no "if" condition had been defined.
      Since:
        1.6.2

    - #### setIf

          public void setIf(Condition condition)

      Same as `setIf(String)` but requires a `Condition` instance
      Parameters:
        `condition` - Condition
      Since:
        1.9

    - #### setUnless

          public void setUnless(java.lang.String property)

      Sets the "unless" condition to test on execution. This is the name of a property to test for existence - if the property is set, the task will not execute. The property goes through property substitution once before testing, so if property `foo` has value `bar`, setting the "unless" condition to `${foo}_x` will mean that the task will only execute if property `bar_x` isn't set.
      Parameters:
        `property` - The property condition to test on execution. May be `null`, in which case no "unless" test is performed.

    - #### getUnless

          public java.lang.String getUnless()

      Returns the "unless" property condition of this target.
      Returns:
        the "unless" property condition or `null` if no "unless" condition had been defined.
      Since:
        1.6.2

    - #### setUnless

          public void setUnless(Condition condition)

      Same as `setUnless(String)` but requires a `Condition` instance
      Parameters:
        `condition` - Condition
      Since:
        1.9

    - #### setDescription

          public void setDescription(java.lang.String description)

      Sets the description of this target.
      Parameters:
        `description` - The description for this target. May be `null`, indicating that no description is available.

    - #### getDescription

          public java.lang.String getDescription()

      Returns the description of this target.
      Returns:
        the description of this target, or `null` if no description is available.

    - #### toString

          public java.lang.String toString()

      Returns the name of this target.
      Overrides:
        `toString` in class `java.lang.Object`
      Returns:
        the name of this target, or `null` if the name has not been set yet.

    - #### execute

          public void execute()
                       throws BuildException

      Executes the target if the "if" and "unless" conditions are satisfied. Dependency checking should be done before calling this method, as it does no checking of its own. If either the "if" or "unless" test prevents this target from being executed, a verbose message is logged giving the reason. It is recommended that clients of this class call performTasks rather than this method so that appropriate build events are fired.
      Throws:
        `BuildException` - if any of the tasks fail or if a data type configuration fails.
      See Also:
        `performTasks()`, `setIf(String)`, `setUnless(String)`

    - #### performTasks

          public final void performTasks()

      Performs the tasks within this target (if the conditions are met), firing target started/target finished messages around a call to execute.
      See Also:
        `execute()`