Different selectors have different attributes. Some selectors can contain other selectors, and these are called Selector Containers.
Core selectors can be used within a fileset and can be contained within Selector Containers.
The core selectors are:
- <contains> - Select files that contain a particular text string
- <date> - Select files that have been modified either before or after a particular date and time
- <depend> - Select files that have been modified more recently than equivalent files elsewhere
- <depth> - Select files that appear so many directories down in a directory tree
- <different> - Select files that are different from those elsewhere
- <filename> - Select files whose name matches a particular pattern. Equivalent to the include and exclude elements of a patternset.
- <present> - Select files that either do or do not exist in some other location
- <containsregexp> - Select files that match a regular expression
- <size> - Select files that are larger or smaller than a particular number of bytes.
- <type> - Select files that are either regular files or directories.
- <modified> - Select files if the return value of the configured algorithm is different from that stored in a cache.
The <filename> tag acts like the <include> and <exclude> tags within a fileset. By using a selector instead, however, one can combine it with all the other selectors using whatever selector container is desired.
The <filename> selector is case-sensitive.
The selector containers are:
- <and> - select a file only if all the contained selectors select it.
- <majority> - select a file if a majority of its selectors select it.
- <none> - select a file only if none of the contained selectors select it.
- <not> - can contain only one selector, and reverses what it selects and doesn't select.
- <or> - selects a file if any one of the contained selectors selects it.
- <selector> - contains only one selector and forwards all requests to it without alteration, provided that any "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>. It is also the one to use if you want selection of files to be dependent on Ant property settings.