org.apache.tools.ant.types.selectors
Class PresentSelector

java.lang.Object
  extended by org.apache.tools.ant.ProjectComponent
      extended by org.apache.tools.ant.types.DataType
          extended by org.apache.tools.ant.types.selectors.BaseSelector
              extended by 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
 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, 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 that one mapper defined

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

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