org.apache.tools.ant.types.selectors

Class PresentSelector

Implemented Interfaces:
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(File basedir, String filename, 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(File targetdir)
The name of the file or directory which is checked for matching files.
String
toString()
void
verifySettings()
Checks to make sure all settings are kosher.

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

getError, isSelected, setError, validate, verifySettings

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, toString, tooManyAttributes

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

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

Constructor Details

PresentSelector

public PresentSelector()
Creates a new PresentSelector instance.

Method Details

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

isSelected

public boolean isSelected(File basedir,
                          String filename,
                          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
Overrides:
isSelected in interface 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

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.

setTargetdir

public void setTargetdir(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.

toString

public String toString()
Overrides:
toString in interface DataType
Returns:
a string describing this object

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 interface BaseSelector