diff --git a/docs/manual/CoreTypes/selectors-program.html b/docs/manual/CoreTypes/selectors-program.html
index c4a12745e..b61e8f60a 100755
--- a/docs/manual/CoreTypes/selectors-program.html
+++ b/docs/manual/CoreTypes/selectors-program.html
@@ -76,7 +76,7 @@ to
isSelected()
method call validate()
and
a BuildException will be thrown with the contents of your error
message. The validate()
method also gives you a
- last change to check your settings for consistency because it
+ last chance to check your settings for consistency because it
calls verifySettings()
. Override this method and
call setError()
within it if you detect any
problems in how your selector is set up.
Selector Containers
.
There is also a category of selectors that allow
- user-defined extensions, called
+ user-defined extensions, called
Custom Selectors
.
The ones built in to Ant are called
Core Selectors
.
-
+
Core selectors are the ones that come standard with Ant. They can be used within a fileset and can be contained within Selector Containers.
- +The core selectors are:
- +The <depend>
tag selects files
- whose last modified date is later than another, equivalent file in
+ whose last modified date is later than another, equivalent file in
another location.
The <depend>
tag supports the use of a
@@ -443,9 +443,13 @@
"if"
or
+ "unless"
conditions are met. This
is the selector to use if you want to define a reference. It is
- usable as an element of <project>
.
+ usable as an element of <project>
. It is also
+ the one to use if you want selection of files to be dependent on
+ Ant property settings.
All selector containers can contain any other selector, including @@ -618,12 +622,43 @@
The <selector>
tag is used to create selectors
- that can be reused through references. It should be used outside of
+ that can be reused through references. It is the only selector which can
+ be used outside of
any target, as an element of the <project>
tag. It
can contain only one other selector, but of course that selector can
be a container.
The <selector>
tag can also be used to select
+ files conditionally based on whether an Ant property exists or not.
+ This functionality is realized using the "if"
and
+ "unless"
attributes in exactly the same way they
+ are used on targets or on the <include>
and
+ <exclude>
tags within a
+ <patternset>
.
Attribute | +Description | +Required | +
if | +Allow files to be selected only if the named + property is set. + | +No | +
unless | +Allow files to be selected only if the named + property is not set. + | +No | +
Here is an example of how to use the Selector Reference:
@@ -655,18 +690,42 @@ class file and javadoc file associated with them. +@@ -647,7 +682,7 @@ </fileset> </zip> </target> - + </project>
And an example of selecting files conditionally, based on whether + properties are set:
+ +++<fileset dir="${working.copy}"> + <or> + <selector if="include.tests"> + <filename name="**/*Test.class"> + </selector> + <selector if="include.source"> + <and> + <filename name="**/*.java"> + <not> + <selector unless="include.tests"> + <filename name="**/*Test.java"> + </selector> + </not> + </and> + </selector> + </or> +</fileset> +
A fileset that conditionally contains Java source files and Test + source and class files.
You can write your own selectors and use them within the selector +
You can write your own selectors and use them within the selector containers by specifying them within the <custom> tag.
First, you have to write your selector class in Java. The only
requirement it must meet in order to be a selector is that it implements
the org.apache.tools.ant.types.selectors.FileSelector
- interface, which contains a single method. See
+ interface, which contains a single method. See
Programming Selectors in Ant for
more information.