## 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
`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
`PresentSelector()` Creates a new `PresentSelector` instance.

Method Summary
`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