## org.apache.tools.ant
Class Project

    java.lang.Object
      |
      +--org.apache.tools.ant.Project

public class Project
extends java.lang.Object

Central representation of an Ant project. This class defines an Ant project with all of its targets, tasks and various other properties. It also provides the mechanism to kick off a build using a particular target name.

This class also encapsulates methods which allow files to be referred to using abstract path names which are translated to native system file paths at runtime.

Version:
  $Revision: 1.154.2.2 $
Author:
  duncan@x180.com

Field Summary
`static java.lang.String` `JAVA_1_0` Deprecated. use org.apache.tools.ant.util.JavaEnvUtils instead
`static java.lang.String` `JAVA_1_1` Deprecated. use org.apache.tools.ant.util.JavaEnvUtils instead
`static java.lang.String` `JAVA_1_2` Deprecated. use org.apache.tools.ant.util.JavaEnvUtils instead
`static java.lang.String` `JAVA_1_3` Deprecated. use org.apache.tools.ant.util.JavaEnvUtils instead
`static java.lang.String` `JAVA_1_4` Deprecated. use org.apache.tools.ant.util.JavaEnvUtils instead
`static int` `MSG_DEBUG` Message priority of "debug".
`static int` `MSG_ERR` Message priority of "error".
`static int` `MSG_INFO` Message priority of "information".
`static int` `MSG_VERBOSE` Message priority of "verbose".
`static int` `MSG_WARN` Message priority of "warning".
`static java.lang.String` `TOKEN_END` Default filter end token.
`static java.lang.String` `TOKEN_START` Default filter start token.

Constructor Summary
`Project()` Creates a new Ant project.

Method Summary
`void` `addBuildListener(BuildListener listener)` Adds a build listener to the list.
`void` `addDataTypeDefinition(java.lang.String typeName, java.lang.Class typeClass)` Adds a new datatype definition.
`void` `addFilter(java.lang.String token, java.lang.String value)` Deprecated. Use getGlobalFilterSet().addFilter(token,value)
`void` `addOrReplaceTarget(java.lang.String targetName, Target target)` Adds a target to the project, or replaces one with the same name.
`void` `addOrReplaceTarget(Target target)` Adds a target to the project, or replaces one with the same name.
`void` `addReference(java.lang.String name, java.lang.Object value)` Adds a reference to the project.
`void` `addTarget(java.lang.String targetName, Target target)` Adds a new target to the project.
`void` `addTarget(Target target)` Adds a new target to the project.
`void` `addTaskDefinition(java.lang.String taskName, java.lang.Class taskClass)` Adds a new task definition to the project.
`void` `checkTaskClass(java.lang.Class taskClass)` Checks whether or not a class is suitable for serving as Ant task.
`void` `copyFile(java.io.File sourceFile, java.io.File destFile)` Deprecated.
`void` `copyFile(java.io.File sourceFile, java.io.File destFile, boolean filtering)` Deprecated.
`void` `copyFile(java.io.File sourceFile, java.io.File destFile, boolean filtering, boolean overwrite)` Deprecated.
`void` `copyFile(java.io.File sourceFile, java.io.File destFile, boolean filtering, boolean overwrite, boolean preserveLastModified)` Deprecated.
`void` `copyFile(java.lang.String sourceFile, java.lang.String destFile)` Deprecated.
`void` `copyFile(java.lang.String sourceFile, java.lang.String destFile, boolean filtering)` Deprecated.
`void` `copyFile(java.lang.String sourceFile, java.lang.String destFile, boolean filtering, boolean overwrite)` Deprecated.
`void` `copyFile(java.lang.String sourceFile, java.lang.String destFile, boolean filtering, boolean overwrite, boolean preserveLastModified)` Deprecated.
`void` `copyInheritedProperties(Project other)` Copies all user properties that have not been set on the command line or a GUI tool from this instance to the Project instance given as the argument.
`void` `copyUserProperties(Project other)` Copies all user properties that have been set on the command line or a GUI tool from this instance to the Project instance given as the argument.
`AntClassLoader` `createClassLoader(Path path)` Factory method to create a class loader for loading classes from a given path
`java.lang.Object` `createDataType(java.lang.String typeName)` Creates a new instance of a data type.
`Task` `createTask(java.lang.String taskType)` Creates a new instance of a task, adding it to a list of created tasks for later invalidation.
`int` `defaultInput(byte[] buffer, int offset, int length)` Read data from the default input stream.
`void` `demuxFlush(java.lang.String output, boolean isError)` Demultiplexes flush operation so that each task receives the appropriate messages.
`int` `demuxInput(byte[] buffer, int offset, int length)` Demux an input request to the correct task.
`void` `demuxOutput(java.lang.String output, boolean isWarning)` Demultiplexes output so that each task receives the appropriate messages.
`void` `executeTarget(java.lang.String targetName)` Executes the specified target and any targets it depends on.
`void` `executeTargets(java.util.Vector targetNames)` Execute the specified sequence of targets, and the targets they depend on.
`void` `fireBuildFinished(java.lang.Throwable exception)` Sends a "build finished" event to the build listeners for this project.
`void` `fireBuildStarted()` Sends a "build started" event to the build listeners for this project.
`protected void` `fireMessageLogged(Project project, java.lang.String message, int priority)` Sends a "message logged" project level event to the build listeners for this project.
`protected void` `fireMessageLogged(Target target, java.lang.String message, int priority)` Sends a "message logged" target level event to the build listeners for this project.
`protected void` `fireMessageLogged(Task task, java.lang.String message, int priority)` Sends a "message logged" task level event to the build listeners for this project.
`protected void` `fireTargetFinished(Target target, java.lang.Throwable exception)` Sends a "target finished" event to the build listeners for this project.
`protected void` `fireTargetStarted(Target target)` Sends a "target started" event to the build listeners for this project.
`protected void` `fireTaskFinished(Task task, java.lang.Throwable exception)` Sends a "task finished" event to the build listeners for this project.
`protected void` `fireTaskStarted(Task task)` Sends a "task started" event to the build listeners for this project.
`java.io.File` `getBaseDir()` Returns the base directory of the project as a file object.
`java.util.Vector` `getBuildListeners()` Returns a copy of the list of build listeners for the project.
`java.lang.ClassLoader` `getCoreLoader()` Returns the core classloader to use for this project.
`java.util.Hashtable` `getDataTypeDefinitions()` Returns the current datatype definition hashtable.
`java.io.InputStream` `getDefaultInputStream()` Get this project's input stream
`java.lang.String` `getDefaultTarget()` Returns the name of the default target of the project.
`java.lang.String` `getDescription()` Returns the project description, if one has been set.
`java.lang.String` `getElementName(java.lang.Object element)` Returns a description of the type of the given element, with special handling for instances of tasks and data types.
`java.util.Hashtable` `getFilters()` Deprecated. Use getGlobalFilterSet().getFilterHash()
`FilterSet` `getGlobalFilterSet()` Returns the set of global filters.
`InputHandler` `getInputHandler()` Retrieves the current input handler.
`static java.lang.String` `getJavaVersion()` Deprecated. use org.apache.tools.ant.util.JavaEnvUtils instead
`java.lang.String` `getName()` Returns the project name, if one has been set.
`java.util.Hashtable` `getProperties()` Returns a copy of the properties table.
`java.lang.String` `getProperty(java.lang.String name)` Returns the value of a property, if it is set.
`java.lang.Object` `getReference(java.lang.String key)` Looks up a reference by its key (ID).
`java.util.Hashtable` `getReferences()` Returns a map of the references in the project (String to Object).
`java.util.Hashtable` `getTargets()` Returns the hashtable of targets.
`java.util.Hashtable` `getTaskDefinitions()` Returns the current task definition hashtable.
`Task` `getThreadTask(java.lang.Thread thread)` Get the current task associated with a thread, if any
`java.util.Hashtable` `getUserProperties()` Returns a copy of the user property hashtable
`java.lang.String` `getUserProperty(java.lang.String name)` Returns the value of a user property, if it is set.
`void` `init()` Initialises the project.
`void` `initSubProject(Project subProject)` inits a sub project - used by taskdefs.Ant
`boolean` `isKeepGoingMode()` Returns the keep-going mode.
`void` `log(java.lang.String message)` Writes a message to the log with the default log level of MSG_INFO
`void` `log(java.lang.String message, int msgLevel)` Writes a project level message to the log with the given log level.
`void` `log(Target target, java.lang.String message, int msgLevel)` Writes a target level message to the log with the given log level.
`void` `log(Task task, java.lang.String message, int msgLevel)` Writes a task level message to the log with the given log level.
`void` `registerThreadTask(java.lang.Thread thread, Task task)` Register a task as the current task for a thread.
`void` `removeBuildListener(BuildListener listener)` Removes a build listener from the list.
`java.lang.String` `replaceProperties(java.lang.String value)` Replaces ${} style constructions in the given value with the string value of the corresponding data types.
`java.io.File` `resolveFile(java.lang.String fileName)` Returns the canonical form of a filename.
`java.io.File` `resolveFile(java.lang.String fileName, java.io.File rootDir)` Deprecated.
`void` `setBaseDir(java.io.File baseDir)` Sets the base directory for the project, checking that the given file exists and is a directory.
`void` `setBasedir(java.lang.String baseD)` Sets the base directory for the project, checking that the given filename exists and is a directory.
`void` `setCoreLoader(java.lang.ClassLoader coreLoader)` Sets the core classloader for the project.
`void` `setDefault(java.lang.String defaultTarget)` Sets the default target of the project.
`void` `setDefaultInputStream(java.io.InputStream defaultInputStream)` Set the default System input stream.
`void` `setDefaultTarget(java.lang.String defaultTarget)` Deprecated. use setDefault
`void` `setDescription(java.lang.String description)` Sets the project description.
`void` `setFileLastModified(java.io.File file, long time)` Deprecated.
`void` `setInheritedProperty(java.lang.String name, java.lang.String value)` Sets a user property, which cannot be overwritten by set/unset property calls.
`void` `setInputHandler(InputHandler handler)` Sets the input handler
`void` `setJavaVersionProperty()` Sets the `ant.java.version` property and tests for unsupported JVM versions.
`void` `setKeepGoingMode(boolean keepGoingMode)` Sets "keep-going" mode.
`void` `setName(java.lang.String name)` Sets the name of the project, also setting the user property `ant.project.name`.
`void` `setNewProperty(java.lang.String name, java.lang.String value)` Sets a property if no value currently exists.
`void` `setProjectReference(java.lang.Object obj)` Set a reference to this Project on the parameterized object.
`void` `setProperty(java.lang.String name, java.lang.String value)` Sets a property.
`void` `setSystemProperties()` Adds all system properties which aren't already defined as user properties to the project properties.
`void` `setUserProperty(java.lang.String name, java.lang.String value)` Sets a user property, which cannot be overwritten by set/unset property calls.
`static boolean` `toBoolean(java.lang.String s)` Returns the boolean equivalent of a string, which is considered `true` if either `"on"`, `"true"`, or `"yes"` is found, ignoring case.
`java.util.Vector` `topoSort(java.lang.String root, java.util.Hashtable targets)` Topologically sorts a set of targets.
`static java.lang.String` `translatePath(java.lang.String toProcess)` Translates a path into its native (platform specific) format.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### MSG_ERR

    public static final int MSG_ERR

  Message priority of "error".

  See Also:
    Constant Field Values

### MSG_WARN

    public static final int MSG_WARN

  Message priority of "warning".

  See Also:
    Constant Field Values

### MSG_INFO

    public static final int MSG_INFO

  Message priority of "information".

  See Also:
    Constant Field Values

### MSG_VERBOSE

    public static final int MSG_VERBOSE

  Message priority of "verbose".

  See Also:
    Constant Field Values

### MSG_DEBUG

    public static final int MSG_DEBUG

  Message priority of "debug".

  See Also:
    Constant Field Values

### JAVA_1_0

    public static final java.lang.String JAVA_1_0

  Deprecated. use org.apache.tools.ant.util.JavaEnvUtils instead

  Version constant for Java 1.0

  See Also:
    Constant Field Values

### JAVA_1_1

    public static final java.lang.String JAVA_1_1

  Deprecated. use org.apache.tools.ant.util.JavaEnvUtils instead

  Version constant for Java 1.1

  See Also:
    Constant Field Values

### JAVA_1_2

    public static final java.lang.String JAVA_1_2

  Deprecated. use org.apache.tools.ant.util.JavaEnvUtils instead

  Version constant for Java 1.2

  See Also:
    Constant Field Values

### JAVA_1_3

    public static final java.lang.String JAVA_1_3

  Deprecated. use org.apache.tools.ant.util.JavaEnvUtils instead

  Version constant for Java 1.3

  See Also:
    Constant Field Values

### JAVA_1_4

    public static final java.lang.String JAVA_1_4

  Deprecated. use org.apache.tools.ant.util.JavaEnvUtils instead

  Version constant for Java 1.4

  See Also:
    Constant Field Values

### TOKEN_START

    public static final java.lang.String TOKEN_START

  Default filter start token.

  See Also:
    Constant Field Values

### TOKEN_END

    public static final java.lang.String TOKEN_END

  Default filter end token.

  See Also:
    Constant Field Values

Constructor Detail

### Project

    public Project()

  Creates a new Ant project.

Method Detail

### setInputHandler

    public void setInputHandler(InputHandler handler)

  Sets the input handler

  Parameters:
    `handler` - the InputHandler instance to use for gathering input.

### setDefaultInputStream

    public void setDefaultInputStream(java.io.InputStream defaultInputStream)

  Set the default System input stream. Normally this stream is set to System.in. This inputStream is used when no task input redirection is being performed.

  Parameters:
    `defaultInputStream` - the default input stream to use when input is requested.
  Since:
    Ant 1.6

### getDefaultInputStream

    public java.io.InputStream getDefaultInputStream()

  Get this project's input stream

  Returns:
    the InputStream instance in use by this Project instance to read input

### getInputHandler

    public InputHandler getInputHandler()

  Retrieves the current input handler.

  Returns:
    the InputHandler instance currently in place for the project instance.

### initSubProject

    public void initSubProject(Project subProject)

  inits a sub project - used by taskdefs.Ant

  Parameters:
    `subProject` - the subproject to initialize

### init

    public void init()
              throws BuildException

  Initialises the project. This involves setting the default task definitions and loading the system properties.

  Throws:
    `BuildException` - if the default task list cannot be loaded

### createClassLoader

    public AntClassLoader createClassLoader(Path path)

  Factory method to create a class loader for loading classes from a given path

  Parameters:
    `path` - the path from which classes are to be loaded.
  Returns:
    an appropriate classloader

### setCoreLoader

    public void setCoreLoader(java.lang.ClassLoader coreLoader)

  Sets the core classloader for the project. If a `null` classloader is specified, the parent classloader should be used.

  Parameters:
    `coreLoader` - The classloader to use for the project. May be `null`.

### getCoreLoader

    public java.lang.ClassLoader getCoreLoader()

  Returns the core classloader to use for this project. This may be `null`, indicating that the parent classloader should be used.

  Returns:
    the core classloader to use for this project.

### addBuildListener

    public void addBuildListener(BuildListener listener)

  Adds a build listener to the list. This listener will be notified of build events for this project.

  Parameters:
    `listener` - The listener to add to the list. Must not be `null`.

### removeBuildListener

    public void removeBuildListener(BuildListener listener)

  Removes a build listener from the list. This listener will no longer be notified of build events for this project.

  Parameters:
    `listener` - The listener to remove from the list. Should not be `null`.

### getBuildListeners

    public java.util.Vector getBuildListeners()

  Returns a copy of the list of build listeners for the project.

  Returns:
    a list of build listeners for the project

### log

    public void log(java.lang.String message)

  Writes a message to the log with the default log level of MSG_INFO

  Parameters:
    `message` - The text to log. Should not be `null`.

### log

    public void log(java.lang.String message,
                    int msgLevel)

  Writes a project level message to the log with the given log level.

  Parameters:
    `message` - The text to log. Should not be `null`.
    `msgLevel` - The priority level to log at.

### log

    public void log(Task task,
                    java.lang.String message,
                    int msgLevel)

  Writes a task level message to the log with the given log level.

  Parameters:
    `task` - The task to use in the log. Must not be `null`.
    `message` - The text to log. Should not be `null`.
    `msgLevel` - The priority level to log at.

### log

    public void log(Target target,
                    java.lang.String message,
                    int msgLevel)

  Writes a target level message to the log with the given log level.

  Parameters:
    `target` - The target to use in the log. Must not be `null`.
    `message` - The text to log. Should not be `null`.
    `msgLevel` - The priority level to log at.

### getGlobalFilterSet

    public FilterSet getGlobalFilterSet()

  Returns the set of global filters.

  Returns:
    the set of global filters

### setProperty

    public void setProperty(java.lang.String name,
                            java.lang.String value)

  Sets a property. Any existing property of the same name is overwritten, unless it is a user property.

  Parameters:
    `name` - The name of property to set. Must not be `null`.
    `value` - The new value of the property. Must not be `null`.

### setNewProperty

    public void setNewProperty(java.lang.String name,
                               java.lang.String value)

  Sets a property if no value currently exists. If the property exists already, a message is logged and the method returns with no other effect.

  Parameters:
    `name` - The name of property to set. Must not be `null`.
    `value` - The new value of the property. Must not be `null`.
  Since:
    1.5

### setUserProperty

    public void setUserProperty(java.lang.String name,
                                java.lang.String value)

  Sets a user property, which cannot be overwritten by set/unset property calls. Any previous value is overwritten.

  Parameters:
    `name` - The name of property to set. Must not be `null`.
    `value` - The new value of the property. Must not be `null`.
  See Also:
    `setProperty(String,String)`

### setInheritedProperty

    public void setInheritedProperty(java.lang.String name,
                                     java.lang.String value)

  Sets a user property, which cannot be overwritten by set/unset property calls. Any previous value is overwritten. Also marks these properties as properties that have not come from the command line.

  Parameters:
    `name` - The name of property to set. Must not be `null`.
    `value` - The new value of the property. Must not be `null`.
  See Also:
    `setProperty(String,String)`

### getProperty

    public java.lang.String getProperty(java.lang.String name)

  Returns the value of a property, if it is set.

  Parameters:
    `name` - The name of the property. May be `null`, in which case the return value is also `null`.
  Returns:
    the property value, or `null` for no match or if a `null` name is provided.

### replaceProperties

    public java.lang.String replaceProperties(java.lang.String value)
                                       throws BuildException

  Replaces ${} style constructions in the given value with the string value of the corresponding data types.

  Parameters:
    `value` - The string to be scanned for property references. May be `null`.
  Returns:
    the given string with embedded property names replaced by values, or `null` if the given string is `null`.
  Throws:
    `BuildException` - if the given value has an unclosed property name, e.g. `${xxx`

### getUserProperty

    public java.lang.String getUserProperty(java.lang.String name)

  Returns the value of a user property, if it is set.

  Parameters:
    `name` - The name of the property. May be `null`, in which case the return value is also `null`.
  Returns:
    the property value, or `null` for no match or if a `null` name is provided.

### getProperties

    public java.util.Hashtable getProperties()

  Returns a copy of the properties table.

  Returns:
    a hashtable containing all properties (including user properties).

### getUserProperties

    public java.util.Hashtable getUserProperties()

  Returns a copy of the user property hashtable

  Returns:
    a hashtable containing just the user properties

### copyUserProperties

    public void copyUserProperties(Project other)

  Copies all user properties that have been set on the command line or a GUI tool from this instance to the Project instance given as the argument.

  To copy all "user" properties, you will also have to call `copyInheritedProperties`.

  Parameters:
    `other` - the project to copy the properties to. Must not be null.
  Since:
    Ant 1.5

### copyInheritedProperties

    public void copyInheritedProperties(Project other)

  Copies all user properties that have not been set on the command line or a GUI tool from this instance to the Project instance given as the argument.

  To copy all "user" properties, you will also have to call `copyUserProperties`.

  Parameters:
    `other` - the project to copy the properties to. Must not be null.
  Since:
    Ant 1.5

### setDefaultTarget

    public void setDefaultTarget(java.lang.String defaultTarget)

  Deprecated. use setDefault

  Sets the default target of the project.

  Parameters:
    `defaultTarget` - The name of the default target for this project. May be `null`, indicating that there is no default target.
  See Also:
    `setDefault(String)`

### getDefaultTarget

    public java.lang.String getDefaultTarget()

  Returns the name of the default target of the project.

  Returns:
    name of the default target or `null` if no default has been set.

### setDefault

    public void setDefault(java.lang.String defaultTarget)

  Sets the default target of the project.

  Parameters:
    `defaultTarget` - The name of the default target for this project. May be `null`, indicating that there is no default target.

### setName

    public void setName(java.lang.String name)

  Sets the name of the project, also setting the user property `ant.project.name`.

  Parameters:
    `name` - The name of the project. Must not be `null`.

### getName

    public java.lang.String getName()

  Returns the project name, if one has been set.

  Returns:
    the project name, or `null` if it hasn't been set.

### setDescription

    public void setDescription(java.lang.String description)

  Sets the project description.

  Parameters:
    `description` - The description of the project. May be `null`.

### getDescription

    public java.lang.String getDescription()

  Returns the project description, if one has been set.

  Returns:
    the project description, or `null` if it hasn't been set.

### addFilter

    public void addFilter(java.lang.String token,
                          java.lang.String value)

  Deprecated. Use getGlobalFilterSet().addFilter(token,value)

  Adds a filter to the set of global filters.

  Parameters:
    `token` - The token to filter. Must not be `null`.
    `value` - The replacement value. Must not be `null`.
  See Also:
    `getGlobalFilterSet()`, `FilterSet.addFilter(String,String)`

### getFilters

    public java.util.Hashtable getFilters()

  Deprecated. Use getGlobalFilterSet().getFilterHash()

  Returns a hashtable of global filters, mapping tokens to values.

  Returns:
    a hashtable of global filters, mapping tokens to values (String to String).
  See Also:
    `getGlobalFilterSet()`, `FilterSet.getFilterHash()`

### setBasedir

    public void setBasedir(java.lang.String baseD)
                    throws BuildException

  Sets the base directory for the project, checking that the given filename exists and is a directory.

  Parameters:
    `baseD` - The project base directory. Must not be `null`.
  Throws:
    `BuildException` - if the directory if invalid

### setBaseDir

    public void setBaseDir(java.io.File baseDir)
                    throws BuildException

  Sets the base directory for the project, checking that the given file exists and is a directory.

  Parameters:
    `baseDir` - The project base directory. Must not be `null`.
  Throws:
    `BuildException` - if the specified file doesn't exist or isn't a directory

### getBaseDir

    public java.io.File getBaseDir()

  Returns the base directory of the project as a file object.

  Returns:
    the project base directory, or `null` if the base directory has not been successfully set to a valid value.

### setKeepGoingMode

    public void setKeepGoingMode(boolean keepGoingMode)

  Sets "keep-going" mode. In this mode ANT will try to execute as many targets as possible. All targets that do not depend on failed target(s) will be executed.

  Parameters:
    `keepGoingMode` - "keep-going" mode
  Since:
    Ant 1.6

### isKeepGoingMode

    public boolean isKeepGoingMode()

  Returns the keep-going mode.

  Returns:
    "keep-going" mode
  Since:
    Ant 1.6

### getJavaVersion

    public static java.lang.String getJavaVersion()

  Deprecated. use org.apache.tools.ant.util.JavaEnvUtils instead

  Returns the version of Java this class is running under.

  Returns:
    the version of Java as a String, e.g. "1.1"
  See Also:
    `JavaEnvUtils.getJavaVersion()`

### setJavaVersionProperty

    public void setJavaVersionProperty()
                                throws BuildException

  Sets the `ant.java.version` property and tests for unsupported JVM versions. If the version is supported, verbose log messages are generated to record the Java version and operating system name.

  Throws:
    `BuildException` - if this Java version is not supported
  See Also:
    `JavaEnvUtils.getJavaVersion()`

### setSystemProperties

    public void setSystemProperties()

  Adds all system properties which aren't already defined as user properties to the project properties.

### addTaskDefinition

    public void addTaskDefinition(java.lang.String taskName,
                                  java.lang.Class taskClass)
                           throws BuildException

  Adds a new task definition to the project. Attempting to override an existing definition with an equivalent one (i.e. with the same classname) results in a verbose log message. Attempting to override an existing definition with a different one results in a warning log message and invalidates any tasks which have already been created with the old definition.

  Parameters:
    `taskName` - The name of the task to add. Must not be `null`.
    `taskClass` - The full name of the class implementing the task. Must not be `null`.
  Throws:
    `BuildException` - if the class is unsuitable for being an Ant task. An error level message is logged before this exception is thrown.
  See Also:
    `checkTaskClass(Class)`

### checkTaskClass

    public void checkTaskClass(java.lang.Class taskClass)
                        throws BuildException

  Checks whether or not a class is suitable for serving as Ant task. Ant task implementation classes must be public, concrete, and have a no-arg constructor.

  Parameters:
    `taskClass` - The class to be checked. Must not be `null`.
  Throws:
    `BuildException` - if the class is unsuitable for being an Ant task. An error level message is logged before this exception is thrown.

### getTaskDefinitions

    public java.util.Hashtable getTaskDefinitions()

  Returns the current task definition hashtable. The returned hashtable is "live" and so should not be modified.

  Returns:
    a map of from task name to implementing class (String to Class).

### addDataTypeDefinition

    public void addDataTypeDefinition(java.lang.String typeName,
                                      java.lang.Class typeClass)

  Adds a new datatype definition. Attempting to override an existing definition with an equivalent one (i.e. with the same classname) results in a verbose log message. Attempting to override an existing definition with a different one results in a warning log message, but the definition is changed.

  Parameters:
    `typeName` - The name of the datatype. Must not be `null`.
    `typeClass` - The full name of the class implementing the datatype. Must not be `null`.

### getDataTypeDefinitions

    public java.util.Hashtable getDataTypeDefinitions()

  Returns the current datatype definition hashtable. The returned hashtable is "live" and so should not be modified.

  Returns:
    a map of from datatype name to implementing class (String to Class).

### addTarget

    public void addTarget(Target target)
                   throws BuildException

  Adds a new target to the project.

  Parameters:
    `target` - The target to be added to the project. Must not be `null`.
  Throws:
    `BuildException` - if the target already exists in the project
  See Also:
    `addOrReplaceTarget(org.apache.tools.ant.Target)`

### addTarget

    public void addTarget(java.lang.String targetName,
                          Target target)
                   throws BuildException

  Adds a new target to the project.

  Parameters:
    `targetName` - The name to use for the target. Must not be `null`.
    `target` - The target to be added to the project. Must not be `null`.
  Throws:
    `BuildException` - if the target already exists in the project
  See Also:
    `addOrReplaceTarget(org.apache.tools.ant.Target)`

### addOrReplaceTarget

    public void addOrReplaceTarget(Target target)

  Adds a target to the project, or replaces one with the same name.

  Parameters:
    `target` - The target to be added or replaced in the project. Must not be `null`.

### addOrReplaceTarget

    public void addOrReplaceTarget(java.lang.String targetName,
                                   Target target)

  Adds a target to the project, or replaces one with the same name.

  Parameters:
    `targetName` - The name to use for the target. Must not be `null`.
    `target` - The target to be added or replaced in the project. Must not be `null`.

### getTargets

    public java.util.Hashtable getTargets()

  Returns the hashtable of targets. The returned hashtable is "live" and so should not be modified.

  Returns:
    a map from name to target (String to Target).

### createTask

    public Task createTask(java.lang.String taskType)
                    throws BuildException

  Creates a new instance of a task, adding it to a list of created tasks for later invalidation. This causes all tasks to be remembered until the containing project is removed

  Parameters:
    `taskType` - The name of the task to create an instance of. Must not be `null`.
  Returns:
    an instance of the specified task, or `null` if the task name is not recognised.
  Throws:
    `BuildException` - if the task name is recognised but task creation fails.

### createDataType

    public java.lang.Object createDataType(java.lang.String typeName)
                                    throws BuildException

  Creates a new instance of a data type.

  Parameters:
    `typeName` - The name of the data type to create an instance of. Must not be `null`.
  Returns:
    an instance of the specified data type, or `null` if the data type name is not recognised.
  Throws:
    `BuildException` - if the data type name is recognised but instance creation fails.

### executeTargets

    public void executeTargets(java.util.Vector targetNames)
                        throws BuildException

  Execute the specified sequence of targets, and the targets they depend on.

  Parameters:
    `targetNames` - A vector of target name strings to execute. Must not be `null`.
  Throws:
    `BuildException` - if the build failed

### demuxOutput

    public void demuxOutput(java.lang.String output,
                            boolean isWarning)

  Demultiplexes output so that each task receives the appropriate messages. If the current thread is not currently executing a task, the message is logged directly.

  Parameters:
    `output` - Message to handle. Should not be `null`.
    `isWarning` - Whether the text represents an warning (`true`) or information (`false`).

### defaultInput

    public int defaultInput(byte[] buffer,
                            int offset,
                            int length)
                     throws java.io.IOException

  Read data from the default input stream. If no default has been specified, System.in is used.

  Parameters:
    `buffer` - the buffer into which data is to be read.
    `offset` - the offset into the buffer at which data is stored.
    `length` - the amount of data to read
  Returns:
    the number of bytes read
  Throws:
    `java.io.IOException` - if the data cannot be read
  Since:
    Ant 1.6

### demuxInput

    public int demuxInput(byte[] buffer,
                          int offset,
                          int length)
                   throws java.io.IOException

  Demux an input request to the correct task.

  Parameters:
    `buffer` - the buffer into which data is to be read.
    `offset` - the offset into the buffer at which data is stored.
    `length` - the amount of data to read
  Returns:
    the number of bytes read
  Throws:
    `java.io.IOException` - if the data cannot be read
  Since:
    Ant 1.6

### demuxFlush

    public void demuxFlush(java.lang.String output,
                           boolean isError)

  Demultiplexes flush operation so that each task receives the appropriate messages. If the current thread is not currently executing a task, the message is logged directly.

  Parameters:
    `output` - Message to handle. Should not be `null`.
    `isError` - Whether the text represents an error (`true`) or information (`false`).
  Since:
    Ant 1.5.2

### executeTarget

    public void executeTarget(java.lang.String targetName)
                       throws BuildException

  Executes the specified target and any targets it depends on.

  Parameters:
    `targetName` - The name of the target to execute. Must not be `null`.
  Throws:
    `BuildException` - if the build failed

### resolveFile

    public java.io.File resolveFile(java.lang.String fileName,
                                    java.io.File rootDir)

  Deprecated.

  Returns the canonical form of a filename.

  If the specified file name is relative it is resolved with respect to the given root directory.

  Parameters:
    `fileName` - The name of the file to resolve. Must not be `null`.
    `rootDir` - The directory to resolve relative file names with respect to. May be `null`, in which case the current directory is used.
  Returns:
    the resolved File.

### resolveFile

    public java.io.File resolveFile(java.lang.String fileName)

  Returns the canonical form of a filename.

  If the specified file name is relative it is resolved with respect to the project's base directory.

  Parameters:
    `fileName` - The name of the file to resolve. Must not be `null`.
  Returns:
    the resolved File.

### translatePath

    public static java.lang.String translatePath(java.lang.String toProcess)

  Translates a path into its native (platform specific) format.

  This method uses PathTokenizer to separate the input path into its components. This handles DOS style paths in a relatively sensible way. The file separators are then converted to their platform specific versions.

  Parameters:
    `toProcess` - The path to be translated. May be `null`.
  Returns:
    the native version of the specified path or an empty string if the path is `null` or empty.
  See Also:
    `PathTokenizer`

### copyFile

    public void copyFile(java.lang.String sourceFile,
                         java.lang.String destFile)
                  throws java.io.IOException

  Deprecated.

  Convenience method to copy a file from a source to a destination. No filtering is performed.

  Parameters:
    `sourceFile` - Name of file to copy from. Must not be `null`.
    `destFile` - Name of file to copy to. Must not be `null`.
  Throws:
    `java.io.IOException` - if the copying fails

### copyFile

    public void copyFile(java.lang.String sourceFile,
                         java.lang.String destFile,
                         boolean filtering)
                  throws java.io.IOException

  Deprecated.

  Convenience method to copy a file from a source to a destination specifying if token filtering should be used.

  Parameters:
    `sourceFile` - Name of file to copy from. Must not be `null`.
    `destFile` - Name of file to copy to. Must not be `null`.
    `filtering` - Whether or not token filtering should be used during the copy.
  Throws:
    `java.io.IOException` - if the copying fails

### copyFile

    public void copyFile(java.lang.String sourceFile,
                         java.lang.String destFile,
                         boolean filtering,
                         boolean overwrite)
                  throws java.io.IOException

  Deprecated.

  Convenience method to copy a file from a source to a destination specifying if token filtering should be used and if source files may overwrite newer destination files.

  Parameters:
    `sourceFile` - Name of file to copy from. Must not be `null`.
    `destFile` - Name of file to copy to. Must not be `null`.
    `filtering` - Whether or not token filtering should be used during the copy.
    `overwrite` - Whether or not the destination file should be overwritten if it already exists.
  Throws:
    `java.io.IOException` - if the copying fails

### copyFile

    public void copyFile(java.lang.String sourceFile,
                         java.lang.String destFile,
                         boolean filtering,
                         boolean overwrite,
                         boolean preserveLastModified)
                  throws java.io.IOException

  Deprecated.

  Convenience method to copy a file from a source to a destination specifying if token filtering should be used, if source files may overwrite newer destination files, and if the last modified time of the resulting file should be set to that of the source file.

  Parameters:
    `sourceFile` - Name of file to copy from. Must not be `null`.
    `destFile` - Name of file to copy to. Must not be `null`.
    `filtering` - Whether or not token filtering should be used during the copy.
    `overwrite` - Whether or not the destination file should be overwritten if it already exists.
    `preserveLastModified` - Whether or not the last modified time of the resulting file should be set to that of the source file.
  Throws:
    `java.io.IOException` - if the copying fails

### copyFile

    public void copyFile(java.io.File sourceFile,
                         java.io.File destFile)
                  throws java.io.IOException

  Deprecated.

  Convenience method to copy a file from a source to a destination. No filtering is performed.

  Parameters:
    `sourceFile` - File to copy from. Must not be `null`.
    `destFile` - File to copy to. Must not be `null`.
  Throws:
    `java.io.IOException` - if the copying fails

### copyFile

    public void copyFile(java.io.File sourceFile,
                         java.io.File destFile,
                         boolean filtering)
                  throws java.io.IOException

  Deprecated.

  Convenience method to copy a file from a source to a destination specifying if token filtering should be used.

  Parameters:
    `sourceFile` - File to copy from. Must not be `null`.
    `destFile` - File to copy to. Must not be `null`.
    `filtering` - Whether or not token filtering should be used during the copy.
  Throws:
    `java.io.IOException` - if the copying fails

### copyFile

    public void copyFile(java.io.File sourceFile,
                         java.io.File destFile,
                         boolean filtering,
                         boolean overwrite)
                  throws java.io.IOException

  Deprecated.

  Convenience method to copy a file from a source to a destination specifying if token filtering should be used and if source files may overwrite newer destination files.

  Parameters:
    `sourceFile` - File to copy from. Must not be `null`.
    `destFile` - File to copy to. Must not be `null`.
    `filtering` - Whether or not token filtering should be used during the copy.
    `overwrite` - Whether or not the destination file should be overwritten if it already exists.
  Throws:
    `java.io.IOException` - if the file cannot be copied.

### copyFile

    public void copyFile(java.io.File sourceFile,
                         java.io.File destFile,
                         boolean filtering,
                         boolean overwrite,
                         boolean preserveLastModified)
                  throws java.io.IOException

  Deprecated.

  Convenience method to copy a file from a source to a destination specifying if token filtering should be used, if source files may overwrite newer destination files, and if the last modified time of the resulting file should be set to that of the source file.

  Parameters:
    `sourceFile` - File to copy from. Must not be `null`.
    `destFile` - File to copy to. Must not be `null`.
    `filtering` - Whether or not token filtering should be used during the copy.
    `overwrite` - Whether or not the destination file should be overwritten if it already exists.
    `preserveLastModified` - Whether or not the last modified time of the resulting file should be set to that of the source file.
  Throws:
    `java.io.IOException` - if the file cannot be copied.

### setFileLastModified

    public void setFileLastModified(java.io.File file,
                                    long time)
                             throws BuildException

  Deprecated.

  Calls File.setLastModified(long time) on Java above 1.1, and logs a warning on Java 1.1.

  Parameters:
    `file` - The file to set the last modified time on. Must not be `null`.
    `time` - the required modification time.
  Throws:
    `BuildException` - if the last modified time cannot be set despite running on a platform with a version above 1.1.

### toBoolean

    public static boolean toBoolean(java.lang.String s)

  Returns the boolean equivalent of a string, which is considered `true` if either `"on"`, `"true"`, or `"yes"` is found, ignoring case.

  Parameters:
    `s` - The string to convert to a boolean value.
  Returns:
    `true` if the given string is `"on"`, `"true"` or `"yes"`, or `false` otherwise.

### topoSort

    public final java.util.Vector topoSort(java.lang.String root,
                                           java.util.Hashtable targets)
                                    throws BuildException

  Topologically sorts a set of targets.

  Parameters:
    `root` - The name of the root target. The sort is created in such a way that the sequence of Targets up to the root target is the minimum possible such sequence. Must not be `null`.
    `targets` - A map of names to targets (String to Target). Must not be `null`.
  Returns:
    a vector of Target objects in sorted order.
  Throws:
    `BuildException` - if there is a cyclic dependency among the targets, or if a named target does not exist.

### addReference

    public void addReference(java.lang.String name,
                             java.lang.Object value)

  Adds a reference to the project.

  Parameters:
    `name` - The name of the reference. Must not be `null`.
    `value` - The value of the reference. Must not be `null`.

### getReferences

    public java.util.Hashtable getReferences()

  Returns a map of the references in the project (String to Object). The returned hashtable is "live" and so must not be modified.

  Returns:
    a map of the references in the project (String to Object).

### getReference

    public java.lang.Object getReference(java.lang.String key)

  Looks up a reference by its key (ID).

  Parameters:
    `key` - The key for the desired reference. Must not be `null`.
  Returns:
    the reference with the specified ID, or `null` if there is no such reference in the project.

### getElementName

    public java.lang.String getElementName(java.lang.Object element)

  Returns a description of the type of the given element, with special handling for instances of tasks and data types.

  This is useful for logging purposes.

  Parameters:
    `element` - The element to describe. Must not be `null`.
  Returns:
    a description of the element type
  Since:
    1.95, Ant 1.5

### fireBuildStarted

    public void fireBuildStarted()

  Sends a "build started" event to the build listeners for this project.

### fireBuildFinished

    public void fireBuildFinished(java.lang.Throwable exception)

  Sends a "build finished" event to the build listeners for this project.

  Parameters:
    `exception` - an exception indicating a reason for a build failure. May be `null`, indicating a successful build.

### fireTargetStarted

    protected void fireTargetStarted(Target target)

  Sends a "target started" event to the build listeners for this project.

  Parameters:
    `target` - The target which is starting to build. Must not be `null`.

### fireTargetFinished

    protected void fireTargetFinished(Target target,
                                      java.lang.Throwable exception)

  Sends a "target finished" event to the build listeners for this project.

  Parameters:
    `target` - The target which has finished building. Must not be `null`.
    `exception` - an exception indicating a reason for a build failure. May be `null`, indicating a successful build.

### fireTaskStarted

    protected void fireTaskStarted(Task task)

  Sends a "task started" event to the build listeners for this project.

  Parameters:
    `task` - The target which is starting to execute. Must not be `null`.

### fireTaskFinished

    protected void fireTaskFinished(Task task,
                                    java.lang.Throwable exception)

  Sends a "task finished" event to the build listeners for this project.

  Parameters:
    `task` - The task which has finished executing. Must not be `null`.
    `exception` - an exception indicating a reason for a build failure. May be `null`, indicating a successful build.

### fireMessageLogged

    protected void fireMessageLogged(Project project,
                                     java.lang.String message,
                                     int priority)

  Sends a "message logged" project level event to the build listeners for this project.

  Parameters:
    `project` - The project generating the event. Should not be `null`.
    `message` - The message to send. Should not be `null`.
    `priority` - The priority of the message.

### fireMessageLogged

    protected void fireMessageLogged(Target target,
                                     java.lang.String message,
                                     int priority)

  Sends a "message logged" target level event to the build listeners for this project.

  Parameters:
    `target` - The target generating the event. Must not be `null`.
    `message` - The message to send. Should not be `null`.
    `priority` - The priority of the message.

### fireMessageLogged

    protected void fireMessageLogged(Task task,
                                     java.lang.String message,
                                     int priority)

  Sends a "message logged" task level event to the build listeners for this project.

  Parameters:
    `task` - The task generating the event. Must not be `null`.
    `message` - The message to send. Should not be `null`.
    `priority` - The priority of the message.

### registerThreadTask

    public void registerThreadTask(java.lang.Thread thread,
                                   Task task)

  Register a task as the current task for a thread. If the task is null, the thread's entry is removed.

  Parameters:
    `thread` - the thread on which the task is registered.
    `task` - the task to be registered.
  Since:
    Ant 1.5

### getThreadTask

    public Task getThreadTask(java.lang.Thread thread)

  Get the current task associated with a thread, if any

  Parameters:
    `thread` - the thread for which the task is required.
  Returns:
    the task which is currently registered for the given thread or null if no task is registered.

### setProjectReference

    public final void setProjectReference(java.lang.Object obj)

  Set a reference to this Project on the parameterized object. Need to set the project before other set/add elements are called

  Parameters:
    `obj` - the object to invoke setProject(this) on

Copyright © 2000-2003 Apache Software Foundation. All Rights Reserved.