Package 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`, `ResourceSelector`, `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
  Modifier and Type | Class | Description
  --- | --- | ---
  `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 | Description
  --- | ---
  `PresentSelector()` |

- ## Method Summary

  Modifier and Type | Method | Description
  --- | --- | ---
  `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, setError, validate`

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

  `checkAttributesAllowed, checkChildrenAllowed, circularReference, clone, dieOnCircularReference, dieOnCircularReference, dieOnCircularReference, getCheckedRef, 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`

  ### Methods inherited from interface org.apache.tools.ant.types.selectors.FileSelector

  `isSelected`

- ## Constructor Details

  - ### PresentSelector

    public PresentSelector()

- ## Method Details

  - ### 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` or `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