git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@684721 13f79535-47bb-0310-9956-ffa450edef68master
| @@ -221,7 +221,7 @@ leading directory information stripped off. Both <code>to</code> and | |||||
| <!-- --> | <!-- --> | ||||
| <h4><a name="glob-mapper">glob</a></h4> | <h4><a name="glob-mapper">glob</a></h4> | ||||
| <p>Both <code>to</code> and <code>from</code> define patterns that may | |||||
| <p>Both <code>to</code> and <code>from</code> are required and define patterns that may | |||||
| contain at most one <code>*</code>. For each source file that matches | contain at most one <code>*</code>. For each source file that matches | ||||
| the <code>from</code> pattern, a target file name will be constructed | the <code>from</code> pattern, a target file name will be constructed | ||||
| from the <code>to</code> pattern by substituting the <code>*</code> in | from the <code>to</code> pattern by substituting the <code>*</code> in | ||||
| @@ -350,7 +350,7 @@ that don't match the <code>from</code> pattern will be ignored.</p> | |||||
| <!-- --> | <!-- --> | ||||
| <h4><a name="regexp-mapper">regexp</a></h4> | <h4><a name="regexp-mapper">regexp</a></h4> | ||||
| <p>Both <code>to</code> and <code>from</code> define regular | |||||
| <p>Both <code>to</code> and <code>from</code> are required and define regular | |||||
| expressions. If the source file name matches the <code>from</code> | expressions. If the source file name matches the <code>from</code> | ||||
| pattern, the target file name will be constructed from the | pattern, the target file name will be constructed from the | ||||
| <code>to</code> pattern, using <code>\0</code> to <code>\9</code> as | <code>to</code> pattern, using <code>\0</code> to <code>\9</code> as | ||||
| @@ -571,6 +571,7 @@ the package mapper replaces | |||||
| directory separators found in the matched source pattern with dots in the target | directory separators found in the matched source pattern with dots in the target | ||||
| pattern placeholder. This mapper is particularly useful in combination | pattern placeholder. This mapper is particularly useful in combination | ||||
| with <code><uptodate></code> and <code><junit></code> output.</p> | with <code><uptodate></code> and <code><junit></code> output.</p> | ||||
| <p>The to and from attributes are both required.</p> | |||||
| <b>Example:</b> | <b>Example:</b> | ||||
| <blockquote><pre> | <blockquote><pre> | ||||
| <mapper type="package" from="*Test.java" to="TEST-*Test.xml"/> | <mapper type="package" from="*Test.java" to="TEST-*Test.xml"/> | ||||
| @@ -602,6 +603,7 @@ with <code><uptodate></code> and <code><junit></code> output.</p> | |||||
| test cases. The mapper shares the sample syntax | test cases. The mapper shares the sample syntax | ||||
| as the <a href="#glob-mapper">glob mapper</a>. | as the <a href="#glob-mapper">glob mapper</a>. | ||||
| </p> | </p> | ||||
| <p>The to and from attributes are both required.</p> | |||||
| <b>Example:</b> | <b>Example:</b> | ||||
| <blockquote><pre> | <blockquote><pre> | ||||
| <mapper type="unpackage" from="TEST-*Test.xml" to="${test.src.dir}/*Test.java"> | <mapper type="unpackage" from="TEST-*Test.xml" to="${test.src.dir}/*Test.java"> | ||||
| @@ -18,6 +18,8 @@ | |||||
| package org.apache.tools.ant.util; | package org.apache.tools.ant.util; | ||||
| import org.apache.tools.ant.BuildException; | |||||
| /** | /** | ||||
| * Implementation of FileNameMapper that does simple wildcard pattern | * Implementation of FileNameMapper that does simple wildcard pattern | ||||
| * replacements. | * replacements. | ||||
| @@ -95,6 +97,7 @@ public class GlobPatternMapper implements FileNameMapper { | |||||
| * @param from a string | * @param from a string | ||||
| */ | */ | ||||
| public void setFrom(String from) { | public void setFrom(String from) { | ||||
| if (from != null) { | |||||
| int index = from.lastIndexOf("*"); | int index = from.lastIndexOf("*"); | ||||
| if (index == -1) { | if (index == -1) { | ||||
| fromPrefix = from; | fromPrefix = from; | ||||
| @@ -105,6 +108,9 @@ public class GlobPatternMapper implements FileNameMapper { | |||||
| } | } | ||||
| prefixLength = fromPrefix.length(); | prefixLength = fromPrefix.length(); | ||||
| postfixLength = fromPostfix.length(); | postfixLength = fromPostfix.length(); | ||||
| } else { | |||||
| throw new BuildException("this mapper requires a 'from' attribute"); | |||||
| } | |||||
| } | } | ||||
| /** | /** | ||||
| @@ -112,6 +118,7 @@ public class GlobPatternMapper implements FileNameMapper { | |||||
| * @param to a string | * @param to a string | ||||
| */ | */ | ||||
| public void setTo(String to) { | public void setTo(String to) { | ||||
| if (to != null) { | |||||
| int index = to.lastIndexOf("*"); | int index = to.lastIndexOf("*"); | ||||
| if (index == -1) { | if (index == -1) { | ||||
| toPrefix = to; | toPrefix = to; | ||||
| @@ -120,6 +127,9 @@ public class GlobPatternMapper implements FileNameMapper { | |||||
| toPrefix = to.substring(0, index); | toPrefix = to.substring(0, index); | ||||
| toPostfix = to.substring(index + 1); | toPostfix = to.substring(index + 1); | ||||
| } | } | ||||
| } else { | |||||
| throw new BuildException("this mapper requires a 'to' attribute"); | |||||
| } | |||||
| } | } | ||||
| /** | /** | ||||
| @@ -80,6 +80,7 @@ public class RegexpPatternMapper implements FileNameMapper { | |||||
| * @throws BuildException on error. | * @throws BuildException on error. | ||||
| */ | */ | ||||
| public void setFrom(String from) throws BuildException { | public void setFrom(String from) throws BuildException { | ||||
| if (from != null) { | |||||
| try { | try { | ||||
| reg.setPattern(from); | reg.setPattern(from); | ||||
| } catch (NoClassDefFoundError e) { | } catch (NoClassDefFoundError e) { | ||||
| @@ -88,6 +89,9 @@ public class RegexpPatternMapper implements FileNameMapper { | |||||
| throw new BuildException("Cannot load regular expression matcher", | throw new BuildException("Cannot load regular expression matcher", | ||||
| e); | e); | ||||
| } | } | ||||
| } else { | |||||
| throw new BuildException("this mapper requires a 'from' attribute"); | |||||
| } | |||||
| } | } | ||||
| /** | /** | ||||
| @@ -96,7 +100,11 @@ public class RegexpPatternMapper implements FileNameMapper { | |||||
| * @throws BuildException on error. | * @throws BuildException on error. | ||||
| */ | */ | ||||
| public void setTo(String to) { | public void setTo(String to) { | ||||
| if (to != null) { | |||||
| this.to = to.toCharArray(); | this.to = to.toCharArray(); | ||||
| } else { | |||||
| throw new BuildException("this mapper requires a 'to' attribute"); | |||||
| } | |||||
| } | } | ||||
| /** | /** | ||||