Class BaseSelectorContainer
- 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.BaseSelectorContainer
-
- All Implemented Interfaces:
java.lang.Cloneable
,ResourceSelector
,FileSelector
,SelectorContainer
- Direct Known Subclasses:
AndSelector
,MajoritySelector
,NoneSelector
,OrSelector
,SelectSelector
public abstract class BaseSelectorContainer extends BaseSelector implements SelectorContainer
This is the base class for selectors that can contain other selectors.- Since:
- 1.5
-
-
Field Summary
-
Fields inherited from class org.apache.tools.ant.ProjectComponent
description, location, project
-
-
Constructor Summary
Constructors Constructor Description BaseSelectorContainer()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
add(FileSelector selector)
add an arbitrary selectorvoid
addAnd(AndSelector selector)
add an "And" selector entry on the selector listvoid
addContains(ContainsSelector selector)
add a contains selector entry on the selector listvoid
addContainsRegexp(ContainsRegexpSelector selector)
add a regular expression selector entry on the selector listvoid
addCustom(ExtendSelector selector)
add an extended selector entry on the selector listvoid
addDate(DateSelector selector)
add a selector date entry on the selector listvoid
addDepend(DependSelector selector)
add a depends selector entry on the selector listvoid
addDepth(DepthSelector selector)
add a depth selector entry on the selector listvoid
addDifferent(DifferentSelector selector)
adds a different selector to the selector listvoid
addExecutable(ExecutableSelector e)
void
addFilename(FilenameSelector selector)
add a selector filename entry on the selector listvoid
addMajority(MajoritySelector selector)
add a majority selector entry on the selector listvoid
addModified(ModifiedSelector selector)
add the modified selectorvoid
addNone(NoneSelector selector)
add a "None" selector entry on the selector listvoid
addNot(NotSelector selector)
add a "Not" selector entry on the selector listvoid
addOr(OrSelector selector)
add an "Or" selector entry on the selector listvoid
addOwnedBy(OwnedBySelector o)
void
addPosixGroup(PosixGroupSelector o)
void
addPosixPermissions(PosixPermissionsSelector o)
void
addPresent(PresentSelector selector)
add a present selector entry on the selector listvoid
addReadable(ReadableSelector r)
void
addSelector(SelectSelector selector)
add a "Select" selector entry on the selector listvoid
addSize(SizeSelector selector)
add a selector size entry on the selector listvoid
addSymlink(SymlinkSelector e)
void
addType(TypeSelector selector)
adds a type selector to the selector listvoid
addWritable(WritableSelector w)
void
appendSelector(FileSelector selector)
Add a new selector into this container.protected void
dieOnCircularReference(java.util.Stack<java.lang.Object> stk, Project p)
Check to see whether any DataType we hold references to is included in the Stack (which holds all DataType instances that directly or indirectly reference this instance, including this instance itself).FileSelector[]
getSelectors(Project p)
Returns the set of selectors as an array.boolean
hasSelectors()
Indicates whether there are any selectors here.abstract boolean
isSelected(java.io.File basedir, java.lang.String filename, java.io.File file)
Method that each selector will implement to create their selection behaviour.int
selectorCount()
Gives the count of the number of selectors in this containerjava.util.Enumeration<FileSelector>
selectorElements()
Returns an enumerator for accessing the set of selectors.java.lang.String
toString()
Convert the Selectors within this container to a string.void
validate()
This implementation validates the container by calling verifySettings() and then validates each contained selector provided that the selector implements the validate interface.-
Methods inherited from class org.apache.tools.ant.types.selectors.BaseSelector
getCheckedRef, getError, setError, setError, verifySettings
-
Methods inherited from class org.apache.tools.ant.types.DataType
checkAttributesAllowed, checkChildrenAllowed, circularReference, clone, dieOnCircularReference, dieOnCircularReference, 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
-
-
-
-
Method Detail
-
hasSelectors
public boolean hasSelectors()
Indicates whether there are any selectors here.- Specified by:
hasSelectors
in interfaceSelectorContainer
- Returns:
- true if there are selectors
-
selectorCount
public int selectorCount()
Gives the count of the number of selectors in this container- Specified by:
selectorCount
in interfaceSelectorContainer
- Returns:
- the number of selectors
-
getSelectors
public FileSelector[] getSelectors(Project p)
Returns the set of selectors as an array.- Specified by:
getSelectors
in interfaceSelectorContainer
- Parameters:
p
- the current project- Returns:
- an array of selectors
-
selectorElements
public java.util.Enumeration<FileSelector> selectorElements()
Returns an enumerator for accessing the set of selectors.- Specified by:
selectorElements
in interfaceSelectorContainer
- Returns:
- an enumerator for the selectors
-
toString
public java.lang.String toString()
Convert the Selectors within this container to a string. This will just be a helper class for the subclasses that put their own name around the contents listed here.
-
appendSelector
public void appendSelector(FileSelector selector)
Add a new selector into this container.- Specified by:
appendSelector
in interfaceSelectorContainer
- Parameters:
selector
- the new selector to add
-
validate
public void validate()
This implementation validates the container by calling verifySettings() and then validates each contained selector provided that the selector implements the validate interface.
Ordinarily, this will validate all the elements of a selector container even if the isSelected() method of some elements is never called. This has two effects:
- Validation will often occur twice.
- Since it is not required that selectors derive from BaseSelector, there could be selectors in the container whose error conditions are not detected if their isSelected() call is never made.
- Overrides:
validate
in classBaseSelector
-
isSelected
public abstract boolean isSelected(java.io.File basedir, java.lang.String filename, java.io.File file)
Method that each selector will implement to create their selection behaviour. This is what makes SelectorContainer abstract.- Specified by:
isSelected
in interfaceFileSelector
- Specified by:
isSelected
in classBaseSelector
- Parameters:
basedir
- the base directory the scan is being done fromfilename
- the name of the file to checkfile
- a java.io.File object for the filename that the selector can use- Returns:
- whether the file should be selected or not
-
addSelector
public void addSelector(SelectSelector selector)
add a "Select" selector entry on the selector list- Specified by:
addSelector
in interfaceSelectorContainer
- Parameters:
selector
- the selector to add
-
addAnd
public void addAnd(AndSelector selector)
add an "And" selector entry on the selector list- Specified by:
addAnd
in interfaceSelectorContainer
- Parameters:
selector
- the selector to add
-
addOr
public void addOr(OrSelector selector)
add an "Or" selector entry on the selector list- Specified by:
addOr
in interfaceSelectorContainer
- Parameters:
selector
- the selector to add
-
addNot
public void addNot(NotSelector selector)
add a "Not" selector entry on the selector list- Specified by:
addNot
in interfaceSelectorContainer
- Parameters:
selector
- the selector to add
-
addNone
public void addNone(NoneSelector selector)
add a "None" selector entry on the selector list- Specified by:
addNone
in interfaceSelectorContainer
- Parameters:
selector
- the selector to add
-
addMajority
public void addMajority(MajoritySelector selector)
add a majority selector entry on the selector list- Specified by:
addMajority
in interfaceSelectorContainer
- Parameters:
selector
- the selector to add
-
addDate
public void addDate(DateSelector selector)
add a selector date entry on the selector list- Specified by:
addDate
in interfaceSelectorContainer
- Parameters:
selector
- the selector to add
-
addSize
public void addSize(SizeSelector selector)
add a selector size entry on the selector list- Specified by:
addSize
in interfaceSelectorContainer
- Parameters:
selector
- the selector to add
-
addFilename
public void addFilename(FilenameSelector selector)
add a selector filename entry on the selector list- Specified by:
addFilename
in interfaceSelectorContainer
- Parameters:
selector
- the selector to add
-
addCustom
public void addCustom(ExtendSelector selector)
add an extended selector entry on the selector list- Specified by:
addCustom
in interfaceSelectorContainer
- Parameters:
selector
- the selector to add
-
addContains
public void addContains(ContainsSelector selector)
add a contains selector entry on the selector list- Specified by:
addContains
in interfaceSelectorContainer
- Parameters:
selector
- the selector to add
-
addPresent
public void addPresent(PresentSelector selector)
add a present selector entry on the selector list- Specified by:
addPresent
in interfaceSelectorContainer
- Parameters:
selector
- the selector to add
-
addDepth
public void addDepth(DepthSelector selector)
add a depth selector entry on the selector list- Specified by:
addDepth
in interfaceSelectorContainer
- Parameters:
selector
- the selector to add
-
addDepend
public void addDepend(DependSelector selector)
add a depends selector entry on the selector list- Specified by:
addDepend
in interfaceSelectorContainer
- Parameters:
selector
- the selector to add
-
addDifferent
public void addDifferent(DifferentSelector selector)
adds a different selector to the selector list- Specified by:
addDifferent
in interfaceSelectorContainer
- Parameters:
selector
- the selector to add
-
addType
public void addType(TypeSelector selector)
adds a type selector to the selector list- Specified by:
addType
in interfaceSelectorContainer
- Parameters:
selector
- the selector to add
-
addContainsRegexp
public void addContainsRegexp(ContainsRegexpSelector selector)
add a regular expression selector entry on the selector list- Specified by:
addContainsRegexp
in interfaceSelectorContainer
- Parameters:
selector
- the selector to add
-
addModified
public void addModified(ModifiedSelector selector)
add the modified selector- Specified by:
addModified
in interfaceSelectorContainer
- Parameters:
selector
- the selector to add- Since:
- ant 1.6
-
addReadable
public void addReadable(ReadableSelector r)
-
addWritable
public void addWritable(WritableSelector w)
-
addExecutable
public void addExecutable(ExecutableSelector e)
- Parameters:
e
- ExecutableSelector- Since:
- 1.10.0
-
addSymlink
public void addSymlink(SymlinkSelector e)
- Parameters:
e
- SymlinkSelector- Since:
- 1.10.0
-
addOwnedBy
public void addOwnedBy(OwnedBySelector o)
- Parameters:
o
- OwnedBySelector- Since:
- 1.10.0
-
addPosixGroup
public void addPosixGroup(PosixGroupSelector o)
- Parameters:
o
- PosixGroupSelector- Since:
- 1.10.4
-
addPosixPermissions
public void addPosixPermissions(PosixPermissionsSelector o)
- Parameters:
o
- PosixPermissionsSelector- Since:
- 1.10.4
-
add
public void add(FileSelector selector)
add an arbitrary selector- Specified by:
add
in interfaceSelectorContainer
- Parameters:
selector
- the selector to add- Since:
- Ant 1.6
-
dieOnCircularReference
protected void dieOnCircularReference(java.util.Stack<java.lang.Object> stk, Project p) throws BuildException
Description copied from class:DataType
Check to see whether any DataType we hold references to is included in the Stack (which holds all DataType instances that directly or indirectly reference this instance, including this instance itself).If one is included, throw a BuildException created by
circularReference
.This implementation is appropriate only for a DataType that cannot hold other DataTypes as children.
The general contract of this method is that it shouldn't do anything if
DataType.checked
is true and set it to true on exit.- Overrides:
dieOnCircularReference
in classDataType
- Parameters:
stk
- the stack of references to check.p
- the project to use to dereference the references.- Throws:
BuildException
- on error.
-
-