diff --git a/src/main/org/apache/tools/ant/taskdefs/MatchingTask.java b/src/main/org/apache/tools/ant/taskdefs/MatchingTask.java
index 88050ff0a..35056da24 100644
--- a/src/main/org/apache/tools/ant/taskdefs/MatchingTask.java
+++ b/src/main/org/apache/tools/ant/taskdefs/MatchingTask.java
@@ -65,6 +65,7 @@ import java.util.*;
*
* @author Arnout J. Kuiper ajkuiper@wxs.nl
* @author Stefano Mazzocchi stefano@apache.org
+ * @author Sam Ruby rubys@us.ibm.com
* @author Jon S. Stevens jon@clearink.com
*/
@@ -74,7 +75,18 @@ public abstract class MatchingTask extends Task {
protected Vector excludeList = new Vector();
protected boolean useDefaultExcludes = true;
- // inner class to hold a name on list
+ /**
+ * provide access to properties from within the inner class
+ */
+ protected String getProperty(String name) {
+ return project.getProperty(name);
+ }
+
+ /**
+ * inner class to hold a name on list. "If" and "Unless" attributes
+ * may be used to invalidate the entry based on the existence of a
+ * property (typically set thru the use of the Available task).
+ */
public class NameEntry {
private boolean valid = true;
private String name;
@@ -82,20 +94,12 @@ public abstract class MatchingTask extends Task {
public String getName() { return valid ? name : null; }
public void setName(String name) { this.name = name; }
- public void setIfClassFound(String name) {
- try {
- Class.forName(name);
- } catch (ClassNotFoundException cnf) {
- valid = false;
- }
+ public void setIf(String name) {
+ if (getProperty(name) == null) valid = false;
}
- public void setUnlessClassFound(String name) {
- try {
- Class.forName(name);
- valid = false;
- } catch (ClassNotFoundException cnf) {
- }
+ public void setUnless(String name) {
+ if (getProperty(name) != null) valid = false;
}
}