MappingSelector (Apache Ant API)
Date: 2018-07-10

org.apache.tools.ant.types.selectors

## Class MappingSelector

- 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.MappingSelector

- All Implemented Interfaces:
    java.lang.Cloneable, FileSelector
  Direct Known Subclasses:
    DependSelector, DifferentSelector

      public abstract class MappingSelector
      extends BaseSelector

  A mapping selector is an abstract class adding mapping support to the base selector

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected int` | `granularity`
    `protected FileNameMapper` | `map`
    `protected Mapper` | `mapperElement`
    `protected java.io.File` | `targetdir`

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

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and 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.
    `protected abstract boolean` | `selectionTest(java.io.File srcfile, java.io.File destfile)` this test is our selection test that compared the file with the destfile
    `void` | `setGranularity(int granularity)` Sets the number of milliseconds leeway we will give before we consider a file out of date.
    `void` | `setTargetdir(java.io.File targetdir)` The name of the file or directory which is checked for out-of-date files.
    `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, getDataTypeName, getRefid, invokeCircularReferenceCheck, isChecked, isReference, noChildrenAllowed, pushAndInvokeCircularReferenceCheck, setChecked, setRefid, tooManyAttributes, toString`

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

- - ### Field Detail

    - #### targetdir

          protected java.io.File targetdir

    - #### mapperElement

          protected Mapper mapperElement

    - #### map

          protected FileNameMapper map

    - #### granularity

          protected int granularity

  - ### Constructor Detail

    - #### MappingSelector

          public MappingSelector()

      Creates a new `MappingSelector` instance.

  - ### Method Detail

    - #### setTargetdir

          public void setTargetdir(java.io.File targetdir)

      The name of the file or directory which is checked for out-of-date files.
      Parameters:
        `targetdir` - the directory to scan looking for 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

    - #### verifySettings

          public void verifySettings()

      Checks to make sure all settings are kosher. In this case, it means that the dest 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

    - #### selectionTest

          protected abstract boolean selectionTest(java.io.File srcfile,
                                                   java.io.File destfile)

      this test is our selection test that compared the file with the destfile
      Parameters:
        `srcfile` - file to test; may be null
        `destfile` - destination file
      Returns:
        true if source file compares with destination file

    - #### setGranularity

          public void setGranularity(int granularity)

      Sets the number of milliseconds leeway we will give before we consider a file out of date. Defaults to 2000 on MS-DOS derivatives and 1000 on others.
      Parameters:
        `granularity` - the leeway in milliseconds