<html> <head> <meta http-equiv="Content-Language" content="en-us"> <title>PathConvert Task</title> </head> <body> <h2><a name="foreach">Pathconvert</a></h2> <h3>Description</h3> <p>Converts a nested <code><path></code> or reference to a Path, FileSet, DirSet, or FileList into a path form for a particular platform, and stores the result in a given property. It can also be used when you need to convert a Path, FileSet, or DirSet into a list, separated by a given character, such as a comma or space, or, conversely, to convert a list of files in a FileList into a path. </p> <p>Nested <code><map></code> elements can be specified to map Windows drive letters to Unix paths, and vice-versa.</p> <h3>Parameters</h3> <table border="1" cellpadding="2" cellspacing="0"> <tr> <td valign="top"><b>Attribute</b></td> <td valign="top"><b>Description</b></td> <td align="center" valign="top"><b>Required</b></td> </tr> <tr> <td valign="top">targetos</td> <td valign="top"> The target architecture. Must be one of 'unix', 'windows', 'netware', 'tandem' or 'os/2'. This is a shorthand mechanism for specifying both <code>pathsep</code> and <code>dirsep</code> according to the specified target architecture. </td> <td valign="top" align="center"> Yes, unless <code>pathsep</code> and/or <code>dirsep</code> are specified. </td> </tr> <tr> <td valign="top">dirsep</td> <td valign="top"> The character(s) to use as the directory separator in the generated paths. </td> <td valign="top" align="center">No, defaults to current JVM <tt>File.separator</tt></td> </tr> <tr> <td valign="top">pathsep</td> <td valign="top"> The character(s) to use as the path-element separator in the generated paths. </td> <td valign="top" align="center">No, defaults to current JVM <tt>File.pathSeparator</tt></td> </tr> <tr> <td valign="top">property</td> <td valign="top">The name of the property in which to place the converted path.</td> <td valign="top" align="center">Yes</td> </tr> <tr> <td valign="top">refid</td> <td valign="top">What to convert, given as a <a href="../using.html#references">reference</a> to a <code><path></code>, <code><fileset></code>, <code><dirset></code>, or <code><filelist></code> defined elsewhere</td> <td valign="top" align="center">No; if omitted, a nested <code><path></code> element must be supplied.</td> </tr> <td valign="top">setonempty</td> <td valign="top">Should the property be set, even if the result is the empty string? <td valign="top" align="center">No; default is "true". </tr> </table> <h3>Parameters specified as nested elements</h3> <h4>map</h4> <p>Specifies the mapping of path prefixes between Unix and Windows.</p> <table border="1" cellpadding="2" cellspacing="0"> <tr> <td valign="top"><b>Attribute</b></td> <td valign="top"><b>Description</b></td> <td align="center" valign="top"><b>Required</b></td> </tr> <tr> <td valign="top">from</td> <td valign="top">The prefix to match. Note that this value is case-insensitive when the build is running on a Windows platform and case-sensitive when running on a Unix platform.</td> <td valign="top" align="center">Yes</td> </tr> <tr> <td valign="top">to</td> <td valign="top">The replacement text to use when <code>from</code> is matched.</td> <td valign="top" align="center">Yes</td> </tr> </table> <p>Each map element specifies a single replacement map to be applied to the elements of the path being processed. If no map entries are specified, then no path prefix mapping is performed. </p> <p><strong>Note</strong>: The map elements are applied in the order specified, and only the first matching map element is applied. So, the ordering of your map elements can be important, if any <code>from</code> values are prefixes of other <code>from</code> values.</i> </p> <h4>path</h4> <p>If the <code>refid</code> attribute is not specified, then a nested <code><path></code> element must be supplied. See <a href="../using.html#path">Path-like Structures</a> for details.</p> <h3>Examples</h3> <p>In the examples below, assume that the <code>${wl.home}</code> property has the value <code>d:\weblogic</code>, and <code>${wl.home.unix}</code> has the value <code>/weblogic</code>.</p> <h4>Example 1</h4> <pre> <path id="wl.path"> <pathelement location="${wl.home}/lib/weblogicaux.jar"/> <pathelement location="${wl.home}/classes"/> <pathelement location="${wl.home}/mssqlserver4/classes"/> <pathelement location="c:\winnt\System32"/> </path> <pathconvert targetos="unix" property="wl.path.unix" refid="wl.path"> <map from="${wl.home}" to="${wl.home.unix}"/> <map from="c:" to=""/> </pathconvert> </pre> <p> will generate the path shown below and store it in the property named <code>wl.path.unix</code>. </p> <pre> /weblogic/lib/weblogicaux.jar:/weblogic/classes:/weblogic/mssqlserver4/classes:/WINNT/SYSTEM32 </pre> <h4>Example 2</h4> Given a FileList defined as: <pre> <filelist id="custom_tasks.jars" dir="${env.HOME}/ant/lib" files="njavac.jar,xproperty.jar"/> </pre> then: <pre> <pathconvert targetos="unix" property="custom_tasks.jars" refid="custom_tasks.jars"> <map from="${env.HOME}" to="/usr/local"/> </pathconvert> </pre> will convert the list of files to the following Unix path: <pre> /usr/local/ant/lib/njavac.jar:/usr/local/ant/lib/xproperty.jar </pre> <h4>Example 3</h4> <pre> <fileset dir="${src.dir}" id="src.files"> <include name="**/*.java"/> </fileset> <pathconvert pathsep="," property="javafiles" refid="src.files"/> </pre> <p>This example takes the set of files determined by the fileset (all files ending in <tt>.java</tt>), joins them together separated by commas, and places the resulting list into the property <tt>javafiles</tt>. The directory separator is not specified, so it defaults to the appropriate character for the current platform. Such a list could then be used in another task, like <tt>javadoc</tt>, that requires a comma separated list of files. </p> <hr> <p align="center">Copyright © 2001-2003 Apache Software Foundation. All rights Reserved.</p> </body> </html>