## org.apache.tools.ant.types
Class Path

    java.lang.Object
      |
      +--org.apache.tools.ant.ProjectComponent
            |
            +--org.apache.tools.ant.types.DataType
                  |
                  +--org.apache.tools.ant.types.Path

All Implemented Interfaces:
  java.lang.Cloneable

public class Path
extends DataType
implements java.lang.Cloneable

This object represents a path as used by CLASSPATH or PATH environment variable.

`<sometask>
<somepath>
<pathelement location="/path/to/file.jar" />
<pathelement path="/path/to/file2.jar:/path/to/class2;/path/to/class3" />
<pathelement location="/path/to/file3.jar" />
<pathelement location="/path/to/file4.jar" />
</somepath>
</sometask>
`

The object implemention `sometask` must provide a method called `createSomepath` which returns an instance of `Path`. Nested path definitions are handled by the Path object and must be labeled `pathelement`.

The path element takes a parameter `path` which will be parsed and split into single elements. It will usually be used to define a path from an environment variable.

Author:
  Thomas.Haas@softwired-inc.com, Stefan Bodewig

Nested Class Summary
`class` `Path.PathElement` Helper class, holds the nested `<pathelement>` values.

Field Summary
`static Path` `systemClasspath` The system classspath as a Path object

Fields inherited from class org.apache.tools.ant.types.DataType
`checked, description, ref`

Fields inherited from class org.apache.tools.ant.ProjectComponent
`project`

Constructor Summary
`Path(Project project)`
`Path(Project p, java.lang.String path)` Invoked by IntrospectionHelper for `setXXX(Path p)` attribute setters.

Method Summary
`void` `add(Path path)` Adds a nested path
`void` `addDirset(DirSet dset)` Adds a nested `<dirset>` element.
`void` `addExisting(Path source)` Adds the components on the given path which exist to this Path.
`void` `addExisting(Path source, boolean tryUserDir)` Same as addExisting, but support classpath behavior if tryUserDir is true.
`void` `addExtdirs(Path extdirs)` Emulation of extdirs feature in java >= 1.2.
`void` `addFilelist(FileList fl)` Adds a nested `<filelist>` element.
`void` `addFileset(FileSet fs)` Adds a nested `<fileset>` element.
`void` `addJavaRuntime()` Add the Java Runtime classes to this Path instance.
`void` `append(Path other)` Append the contents of the other Path instance to this.
`java.lang.Object` `clone()` Return a Path that holds the same elements as this instance.
`Path` `concatSystemClasspath()` Concatenates the system class path in the order specified by the ${build.sysclasspath} property - using "last" as default value.
`Path` `concatSystemClasspath(java.lang.String defValue)` Concatenates the system class path in the order specified by the ${build.sysclasspath} property - using the supplied value if ${build.sysclasspath} has not been set.
`Path` `createPath()` Creates a nested `<path>` element.
`Path.PathElement` `createPathElement()` Creates the nested `<pathelement>` element.
`protected void` `dieOnCircularReference(java.util.Stack stk, Project p)` Overrides the version of DataType to recurse on all DataType child elements that may have been added.
`java.lang.String[]` `list()` Returns all path elements defined by this and nested path objects.
`void` `setLocation(java.io.File location)` Adds a element definition to the path.
`void` `setPath(java.lang.String path)` Parses a path definition and creates single PathElements.
`void` `setRefid(Reference r)` Makes this instance in effect a reference to another Path instance.
`int` `size()` How many parts does this Path instance consist of.
`java.lang.String` `toString()` Returns a textual representation of the path, which can be used as CLASSPATH or PATH environment variable definition.
`static java.lang.String` `translateFile(java.lang.String source)` Returns its argument with all file separator characters replaced so that they match the local OS conventions.
`protected static boolean` `translateFileSep(java.lang.StringBuffer buffer, int pos)` Translates all occurrences of / or \ to correct separator of the current platform and returns whether it had to do any replacements.
`static java.lang.String[]` `translatePath(Project project, java.lang.String source)` Splits a PATH (with : or ; as separators) into its parts.

Methods inherited from class org.apache.tools.ant.types.DataType
`checkAttributesAllowed, checkChildrenAllowed, circularReference, getCheckedRef, getDescription, getRefid, isChecked, isReference, noChildrenAllowed, setChecked, setDescription, tooManyAttributes`

Methods inherited from class org.apache.tools.ant.ProjectComponent
`getProject, log, log, setProject`

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

Field Detail

### systemClasspath

    public static Path systemClasspath

  The system classspath as a Path object

Constructor Detail

### Path

    public Path(Project p,
                java.lang.String path)

  Invoked by IntrospectionHelper for `setXXX(Path p)` attribute setters.

### Path

    public Path(Project project)

Method Detail

### setLocation

    public void setLocation(java.io.File location)
                     throws BuildException

  Adds a element definition to the path.

  Parameters:
    `location` - the location of the element to add (must not be `null` nor empty.
    `BuildException`

### setPath

    public void setPath(java.lang.String path)
                 throws BuildException

  Parses a path definition and creates single PathElements.

  Parameters:
    `path` - the path definition.
    `BuildException`

### setRefid

    public void setRefid(Reference r)
                  throws BuildException

  Makes this instance in effect a reference to another Path instance.

  You must not set another attribute or nest elements inside this element if you make it a reference.

  Overrides:
    `setRefid` in class `DataType`
    `BuildException`

### createPathElement

    public Path.PathElement createPathElement()
                                       throws BuildException

  Creates the nested `<pathelement>` element.

    `BuildException`

### addFileset

    public void addFileset(FileSet fs)
                    throws BuildException

  Adds a nested `<fileset>` element.

    `BuildException`

### addFilelist

    public void addFilelist(FileList fl)
                     throws BuildException

  Adds a nested `<filelist>` element.

    `BuildException`

### addDirset

    public void addDirset(DirSet dset)
                   throws BuildException

  Adds a nested `<dirset>` element.

    `BuildException`

### add

    public void add(Path path)
             throws BuildException

  Adds a nested path

    `BuildException`
  Since:
    Ant 1.6

### createPath

    public Path createPath()
                    throws BuildException

  Creates a nested `<path>` element.

    `BuildException`

### append

    public void append(Path other)

  Append the contents of the other Path instance to this.

### addExisting

    public void addExisting(Path source)

  Adds the components on the given path which exist to this Path. Components that don't exist, aren't added.

  Parameters:
    `source` - - source path whose components are examined for existence

### addExisting

    public void addExisting(Path source,
                            boolean tryUserDir)

  Same as addExisting, but support classpath behavior if tryUserDir is true. Classpaths are relative to user dir, not the project base. That used to break jspc test

  Parameters:
    `source` -
    `tryUserDir` -

### list

    public java.lang.String[] list()

  Returns all path elements defined by this and nested path objects.

  Returns:
    list of path elements.

### toString

    public java.lang.String toString()

  Returns a textual representation of the path, which can be used as CLASSPATH or PATH environment variable definition.

  Overrides:
    `toString` in class `java.lang.Object`
  Returns:
    a textual representation of the path.

### translatePath

    public static java.lang.String[] translatePath(Project project,
                                                   java.lang.String source)

  Splits a PATH (with : or ; as separators) into its parts.

### translateFile

    public static java.lang.String translateFile(java.lang.String source)

  Returns its argument with all file separator characters replaced so that they match the local OS conventions.

### translateFileSep

    protected static boolean translateFileSep(java.lang.StringBuffer buffer,
                                              int pos)

  Translates all occurrences of / or \ to correct separator of the current platform and returns whether it had to do any replacements.

### size

    public int size()

  How many parts does this Path instance consist of.

### clone

    public java.lang.Object clone()

  Return a Path that holds the same elements as this instance.

  Overrides:
    `clone` in class `java.lang.Object`

### dieOnCircularReference

    protected void dieOnCircularReference(java.util.Stack stk,
                                          Project p)
                                   throws BuildException

  Overrides the version of DataType to recurse on all DataType child elements that may have been added.

  Overrides:
    `dieOnCircularReference` in class `DataType`
    `BuildException`

### concatSystemClasspath

    public Path concatSystemClasspath()

  Concatenates the system class path in the order specified by the ${build.sysclasspath} property - using "last" as default value.

### concatSystemClasspath

    public Path concatSystemClasspath(java.lang.String defValue)

  Concatenates the system class path in the order specified by the ${build.sysclasspath} property - using the supplied value if ${build.sysclasspath} has not been set.

### addJavaRuntime

    public void addJavaRuntime()

  Add the Java Runtime classes to this Path instance.

### addExtdirs

    public void addExtdirs(Path extdirs)

  Emulation of extdirs feature in java >= 1.2. This method adds all files in the given directories (but not in sub-directories!) to the classpath, so that you don't have to specify them all one by one.

  Parameters:
    `extdirs` - - Path to append files to

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