org.apache.tools.ant.util.facade

## Class FacadeTaskHelper

- java.lang.Object
- - org.apache.tools.ant.util.facade.FacadeTaskHelper

-     public class FacadeTaskHelper
      extends java.lang.Object

  Helper class for facade implementations - encapsulates treatment of explicit implementation choices, magic properties and implementation specific command line arguments.
  Since:
    Ant 1.5

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `FacadeTaskHelper(java.lang.String defaultValue)`
    `FacadeTaskHelper(java.lang.String defaultValue, java.lang.String magicValue)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addImplementationArgument(ImplementationSpecificArgument arg)` Command line argument.
    `java.lang.String[]` | `getArgs()` Retrieves the command line arguments enabled for the current facade implementation.
    `java.lang.String` | `getExplicitChoice()` Retrieves the explicit user choice.
    `java.lang.String` | `getImplementation()` Retrieves the implementation.
    `Path` | `getImplementationClasspath(Project project)` The classpath to use when loading the implementation.
    `boolean` | `hasBeenSet()` Tests whether the implementation has been chosen by the user (either via a magic property or explicitly.
    `void` | `setImplementation(java.lang.String userChoice)` Used for explicit user choices.
    `void` | `setMagicValue(java.lang.String magicValue)` Used to set the value of the magic property.

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

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

- - ### Constructor Detail

    - #### FacadeTaskHelper

          public FacadeTaskHelper(java.lang.String defaultValue)

      Parameters:
        `defaultValue` - The default value for the implementation. Must not be null.

    - #### FacadeTaskHelper

          public FacadeTaskHelper(java.lang.String defaultValue,
                          java.lang.String magicValue)

      Parameters:
        `defaultValue` - The default value for the implementation. Must not be null.
        `magicValue` - the value of a magic property that may hold a user. choice. May be null.

  - ### Method Detail

    - #### setMagicValue

          public void setMagicValue(java.lang.String magicValue)

      Used to set the value of the magic property.
      Parameters:
        `magicValue` - the value of a magic property that may hold a user.

    - #### setImplementation

          public void setImplementation(java.lang.String userChoice)

      Used for explicit user choices.
      Parameters:
        `userChoice` - the explicitly chosen implementation.

    - #### getImplementation

          public java.lang.String getImplementation()

      Retrieves the implementation.
      Returns:
        the implementation.

    - #### getExplicitChoice

          public java.lang.String getExplicitChoice()

      Retrieves the explicit user choice.
      Returns:
        the explicit user choice.

    - #### addImplementationArgument

          public void addImplementationArgument(ImplementationSpecificArgument arg)

      Command line argument.
      Parameters:
        `arg` - an argument to add.

    - #### getArgs

          public java.lang.String[] getArgs()

      Retrieves the command line arguments enabled for the current facade implementation.
      Returns:
        an array of command line arguments.

    - #### hasBeenSet

          public boolean hasBeenSet()

      Tests whether the implementation has been chosen by the user (either via a magic property or explicitly.
      Returns:
        true if magic or user choice has be set.
      Since:
        Ant 1.5.2

    - #### getImplementationClasspath

          public Path getImplementationClasspath(Project project)

      The classpath to use when loading the implementation.
      Parameters:
        `project` - the current project
      Returns:
        a Path instance that may be appended to
      Since:
        Ant 1.8.0