org.apache.tools.ant.taskdefs

## Class Available

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

- All Implemented Interfaces:
    java.lang.Cloneable, Condition

      public class Available
      extends Task
      implements Condition

  Will set the given property if the requested resource is available at runtime. This task may also be used as a condition by the condition task.
  Since:
    Ant 1.1

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `Available.FileDir` EnumeratedAttribute covering the file types to be checked for, either file or dir.

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

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `Path` | `createClasspath()` Classpath to be used when searching for classes and resources.
    `Path` | `createFilepath()` Path to search for file resources.
    `boolean` | `eval()` Evaluate the availability of a resource.
    `void` | `execute()` Entry point when operating as a task.
    `void` | `setClassname(java.lang.String classname)` Set a classname of a class which must be available to set the given property.
    `void` | `setClasspath(Path classpath)` Set the classpath to be used when searching for classes and resources.
    `void` | `setClasspathRef(Reference r)` Set the classpath by reference.
    `void` | `setFile(java.io.File file)` Set the file which must be present in the file system to set the given property.
    `void` | `setFilepath(Path filepath)` Set the path to use when looking for a file.
    `void` | `setIgnoresystemclasses(boolean ignore)` Set whether the search for classes should ignore the runtime classes and just use the given classpath.
    `void` | `setProperty(java.lang.String property)` Set the name of the property which will be set if the particular resource is available.
    `void` | `setResource(java.lang.String resource)` Set the name of a Java resource which is required to set the property.
    `void` | `setSearchParents(boolean searchParents)` Set the searchParents attribute.
    `void` | `setType(Available.FileDir type)` Set what type of file is required - either directory or file.
    `void` | `setType(java.lang.String type)` Deprecated. since 1.5.x. setType(String) is deprecated and is replaced with setType(Available.FileDir) to make Ant's Introspection mechanism do the work and also to encapsulate operations on the type in its own class.
    `void` | `setValue(java.lang.Object value)` Set the value to be given to the property if the desired resource is available.
    `void` | `setValue(java.lang.String value)` Set the value to be given to the property if the desired resource is available.

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

    - #### Available

          public Available()

  - ### Method Detail

    - #### setSearchParents

          public void setSearchParents(boolean searchParents)

      Set the searchParents attribute. This controls the behaviour of the the "file" type. If true, the path, parent path and grandparent path are searched for the file. If false, only the path is searched. The default value is false.
      Parameters:
        `searchParents` - the value to set.

    - #### setClasspath

          public void setClasspath(Path classpath)

      Set the classpath to be used when searching for classes and resources.
      Parameters:
        `classpath` - an Ant Path object containing the search path.

    - #### createClasspath

          public Path createClasspath()

      Classpath to be used when searching for classes and resources.
      Returns:
        an empty Path instance to be configured by Ant.

    - #### setClasspathRef

          public void setClasspathRef(Reference r)

      Set the classpath by reference.
      Parameters:
        `r` - a Reference to a Path instance to be used as the classpath value.

    - #### setFilepath

          public void setFilepath(Path filepath)

      Set the path to use when looking for a file.
      Parameters:
        `filepath` - a Path instance containing the search path for files.

    - #### createFilepath

          public Path createFilepath()

      Path to search for file resources.
      Returns:
        a new Path instance which Ant will configure with a file search path.

    - #### setProperty

          public void setProperty(java.lang.String property)

      Set the name of the property which will be set if the particular resource is available.
      Parameters:
        `property` - the name of the property to set.

    - #### setValue

          public void setValue(java.lang.Object value)

      Set the value to be given to the property if the desired resource is available.
      Parameters:
        `value` - the value to be given.

    - #### setValue

          public void setValue(java.lang.String value)

      Set the value to be given to the property if the desired resource is available.
      Parameters:
        `value` - the value to be given.

    - #### setClassname

          public void setClassname(java.lang.String classname)

      Set a classname of a class which must be available to set the given property.
      Parameters:
        `classname` - the name of the class required.

    - #### setFile

          public void setFile(java.io.File file)

      Set the file which must be present in the file system to set the given property.
      Parameters:
        `file` - the name of the file which is required.

    - #### setResource

          public void setResource(java.lang.String resource)

      Set the name of a Java resource which is required to set the property.
      Parameters:
        `resource` - the name of a resource which is required to be available.

    - #### setType

          public void setType(java.lang.String type)

      Deprecated. since 1.5.x. setType(String) is deprecated and is replaced with setType(Available.FileDir) to make Ant's Introspection mechanism do the work and also to encapsulate operations on the type in its own class.
      Parameters:
        `type` - the type of resource

    - #### setType

          public void setType(Available.FileDir type)

      Set what type of file is required - either directory or file.
      Parameters:
        `type` - an instance of the FileDir enumeratedAttribute indicating whether the file required is to be a directory or a plain file.

    - #### setIgnoresystemclasses

          public void setIgnoresystemclasses(boolean ignore)

      Set whether the search for classes should ignore the runtime classes and just use the given classpath.
      Parameters:
        `ignore` - true if system classes are to be ignored.

    - #### execute

          public void execute()
                       throws BuildException

      Entry point when operating as a task.
      Overrides:
        `execute` in class `Task`
      Throws:
        `BuildException` - if the task is not configured correctly.

    - #### eval

          public boolean eval()
                       throws BuildException

      Evaluate the availability of a resource.
      Specified by:
        `eval` in interface `Condition`
      Returns:
        boolean is the resource is available.
      Throws:
        `BuildException` - if the condition is not configured correctly