org.apache.tools.ant.types.selectors

## Class PresentSelector

- java.lang.Object
- - org.apache.tools.ant.ProjectComponent
  - - org.apache.tools.ant.types.DataType
    - - org.apache.tools.ant.types.selectors.BaseSelector
      - - org.apache.tools.ant.types.selectors.PresentSelector

All Implemented Interfaces:
  java.lang.Cloneable, FileSelector

    public class PresentSelector
    extends BaseSelector

Selector that filters files based on whether they appear in another directory tree. It can contain a mapper element, so isn't available as an ExtendSelector (since those parameters can't hold other elements).

Since:
  1.5

### Nested Class Summary

Nested Classes
`static class` `PresentSelector.FilePresence` Enumerated attribute with the values for indicating where a file's presence is allowed and required.

### Field Summary

### Fields inherited from class org.apache.tools.ant.types.DataType

`checked, ref`

### Fields inherited from class org.apache.tools.ant.ProjectComponent

`description, location, project`

### Constructor Summary

Constructors
Constructor and Description
`PresentSelector()` Creates a new `PresentSelector` instance.

### Method Summary

Methods
`void` `addConfigured(FileNameMapper fileNameMapper)` Add a configured FileNameMapper instance.
`Mapper` `createMapper()` Defines the FileNameMapper to use (nested mapper element).
`boolean` `isSelected(java.io.File basedir, java.lang.String filename, java.io.File file)` The heart of the matter.
`void` `setPresent(PresentSelector.FilePresence fp)` This sets whether to select a file if its dest file is present.
`void` `setTargetdir(java.io.File targetdir)` The name of the file or directory which is checked for matching files.
`java.lang.String` `toString()` Basic DataType toString().
`void` `verifySettings()` Checks to make sure all settings are kosher.

### Methods inherited from class org.apache.tools.ant.types.selectors.BaseSelector

`getError, setError, validate`

### Methods inherited from class org.apache.tools.ant.types.DataType

`checkAttributesAllowed, checkChildrenAllowed, circularReference, clone, dieOnCircularReference, dieOnCircularReference, dieOnCircularReference, getCheckedRef, getCheckedRef, getCheckedRef, getCheckedRef, getDataTypeName, getRefid, invokeCircularReferenceCheck, isChecked, isReference, noChildrenAllowed, pushAndInvokeCircularReferenceCheck, setChecked, setRefid, tooManyAttributes`

### Methods inherited from class org.apache.tools.ant.ProjectComponent

`getDescription, getLocation, getProject, log, log, setDescription, setLocation, setProject`

### Methods inherited from class java.lang.Object

`equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Constructor Detail

#### PresentSelector

    public PresentSelector()

Creates a new `PresentSelector` instance.

### Method Detail

#### toString

    public java.lang.String toString()

Description copied from class: `DataType`
Basic DataType toString().

Overrides:
  `toString` in class `DataType`
Returns:
  a string describing this object

#### setTargetdir

    public void setTargetdir(java.io.File targetdir)

The name of the file or directory which is checked for matching files.

Parameters:
  `targetdir` - the directory to scan looking for matching files.

#### createMapper

    public Mapper createMapper()
                        throws BuildException

Defines the FileNameMapper to use (nested mapper element).

Returns:
  a mapper to be configured
Throws:
  `BuildException` - if more than one mapper defined

#### addConfigured

    public void addConfigured(FileNameMapper fileNameMapper)

Add a configured FileNameMapper instance.

Parameters:
  `fileNameMapper` - the FileNameMapper to add
Throws:
  `BuildException` - if more than one mapper defined
Since:
  Ant 1.8.0

#### setPresent

    public void setPresent(PresentSelector.FilePresence fp)

This sets whether to select a file if its dest file is present. It could be a `negate` boolean, but by doing things this way, we get some documentation on how the system works. A user looking at the documentation should clearly understand that the ONLY files whose presence is being tested are those that already exist in the source directory, hence the lack of a `destonly` option.

Parameters:
  `fp` - An attribute set to either `srconly`both.

#### verifySettings

    public void verifySettings()

Checks to make sure all settings are kosher. In this case, it means that the targetdir attribute has been set and we have a mapper.

Overrides:
  `verifySettings` in class `BaseSelector`

#### isSelected

    public boolean isSelected(java.io.File basedir,
                     java.lang.String filename,
                     java.io.File file)

The heart of the matter. This is where the selector gets to decide on the inclusion of a file in a particular fileset.

Specified by:
  `isSelected` in interface `FileSelector`
Specified by:
  `isSelected` in class `BaseSelector`
Parameters:
  `basedir` - the base directory the scan is being done from
  `filename` - is the name of the file to check
  `file` - is a java.io.File object the selector can use
Returns:
  whether the file should be selected or not