mbenson 2004/02/27 15:23:06 Modified: docs/manual/CoreTasks pathconvert.html . WHATSNEW src/main/org/apache/tools/ant/taskdefs PathConvert.java Log: Add nested <mapper>s to <pathconvert>. PR: 26364 Submitted by: Peter Reilly Revision Changes Path 1.14 +8 -0 ant/docs/manual/CoreTasks/pathconvert.html Index: pathconvert.html =================================================================== RCS file: /home/cvs/ant/docs/manual/CoreTasks/pathconvert.html,v retrieving revision 1.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 --- pathconvert.html 9 Feb 2004 21:50:05 -0000 1.13 +++ pathconvert.html 27 Feb 2004 23:23:05 -0000 1.14 @@ -19,6 +19,9 @@ </p> <p>Nested <code><map></code> elements can be specified to map Windows drive letters to Unix paths, and vice-versa.</p> +<p>More complex transformations can be achieved using a nested +<a href="../CoreTypes/mapper.html"><code><mapper></code></a>. +</p> <h3>Parameters</h3> <table border="1" cellpadding="2" cellspacing="0"> @@ -114,6 +117,11 @@ <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> +<h4>mapper</h4> +<p>A single nested <a href="../CoreTypes/mapper.html"> +<code><mapper></code></a> element can be specified +to perform any of various filename transformations. +</p> <h3>Examples</h3> <p>In the examples below, assume that the <code>${wl.home}</code> property 1.559 +2 -0 ant/WHATSNEW Index: WHATSNEW =================================================================== RCS file: /home/cvs/ant/WHATSNEW,v retrieving revision 1.558 retrieving revision 1.559 diff -u -r1.558 -r1.559 --- WHATSNEW 27 Feb 2004 14:54:58 -0000 1.558 +++ WHATSNEW 27 Feb 2004 23:23:05 -0000 1.559 @@ -72,6 +72,8 @@ * Docs fixes for xmlvalidate.html. Bugzilla Report 27092. +* <pathconvert> now accepts nested <mapper>s. Bugzilla Report 26364. + Changes from Ant 1.6.0 to Ant 1.6.1 ============================================= 1.31 +31 -0 ant/src/main/org/apache/tools/ant/taskdefs/PathConvert.java Index: PathConvert.java =================================================================== RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/PathConvert.java,v retrieving revision 1.30 retrieving revision 1.31 diff -u -r1.30 -r1.31 --- PathConvert.java 9 Feb 2004 21:05:20 -0000 1.30 +++ PathConvert.java 27 Feb 2004 23:23:06 -0000 1.31 @@ -19,6 +19,8 @@ import java.io.File; import java.util.StringTokenizer; import java.util.Vector; +import java.util.List; +import java.util.ArrayList; import org.apache.tools.ant.BuildException; import org.apache.tools.ant.Project; import org.apache.tools.ant.Task; @@ -29,6 +31,8 @@ import org.apache.tools.ant.types.FileSet; import org.apache.tools.ant.types.Path; import org.apache.tools.ant.types.Reference; +import org.apache.tools.ant.types.Mapper; +import org.apache.tools.ant.util.FileNameMapper; /** * Converts path and classpath information to a specific target OS @@ -83,6 +87,9 @@ */ private String dirSep = null; + /** Filename mapper */ + private Mapper mapper = null; + /** * constructor */ @@ -352,6 +359,18 @@ // Get the list of path components in canonical form String[] elems = path.list(); + if (mapper != null) { + FileNameMapper impl = mapper.getImplementation(); + List ret = new ArrayList(); + for (int i = 0; i < elems.length; ++i) { + String[] mapped = impl.mapFileName(elems[i]); + for (int m = 0; mapped != null && m < mapped.length; ++m) { + ret.add(mapped[m]); + } + } + elems = (String[]) ret.toArray(new String[] {}); + } + for (int i = 0; i < elems.length; i++) { String elem = elems[i]; @@ -435,6 +454,18 @@ return elem; } + /** + * Add a mapper to convert the file names. + * + * @param mapper a <code>Mapper</code> value + */ + public void addMapper(Mapper mapper) { + if (this.mapper != null) { + throw new BuildException( + "Cannot define more than one mapper"); + } + this.mapper = mapper; + } /** * Validate that all our parameters have been properly initialized.
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]