Class MajoritySelector
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
org.apache.tools.ant.types.selectors.MajoritySelector
- All Implemented Interfaces:
Cloneable
,ResourceSelector
,FileSelector
,SelectorContainer
This selector is here just to shake up your thinking a bit. Don't get
too caught up in boolean, there are other ways you can evaluate a
collection of selectors. This one takes a vote of the selectors it
contains, and majority wins. You could also have an "all-but-one"
selector, a "weighted-average" selector, and so on. These are left
as exercises for the reader (as are the usecases where this would
be necessary).
- Since:
- 1.5
-
Field Summary
Fields inherited from class org.apache.tools.ant.ProjectComponent
description, location, project
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionboolean
isSelected
(File basedir, String filename, File file) Returns true (the file is selected) if most of the other selectors agree.void
setAllowtie
(boolean tiebreaker) A attribute to specify what will happen if number of yes votes is the same as the number of no votes defaults to truetoString()
Convert the Selectors within this container to a string.Methods inherited from class org.apache.tools.ant.types.selectors.BaseSelectorContainer
add, addAnd, addContains, addContainsRegexp, addCustom, addDate, addDepend, addDepth, addDifferent, addExecutable, addFilename, addMajority, addModified, addNone, addNot, addOr, addOwnedBy, addPosixGroup, addPosixPermissions, addPresent, addReadable, addSelector, addSize, addSymlink, addType, addWritable, appendSelector, dieOnCircularReference, getSelectors, hasSelectors, selectorCount, selectorElements, validate
Methods inherited from class org.apache.tools.ant.types.selectors.BaseSelector
getError, setError, setError, verifySettings
Methods inherited from class org.apache.tools.ant.types.DataType
checkAttributesAllowed, checkChildrenAllowed, circularReference, clone, 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
-
MajoritySelector
public MajoritySelector()
-
-
Method Details
-
toString
Description copied from class:BaseSelectorContainer
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.- Overrides:
toString
in classBaseSelectorContainer
- Returns:
- a string describing this object
-
setAllowtie
public void setAllowtie(boolean tiebreaker) A attribute to specify what will happen if number of yes votes is the same as the number of no votes defaults to true- Parameters:
tiebreaker
- the value to give if there is a tie
-
isSelected
Returns true (the file is selected) if most of the other selectors agree. In case of a tie, go by the allowtie setting. That defaults to true, meaning in case of a tie, the file is selected.- Specified by:
isSelected
in interfaceFileSelector
- Specified by:
isSelected
in classBaseSelectorContainer
- Parameters:
basedir
- the base directory the scan is being done fromfilename
- is the name of the file to checkfile
- is a java.io.File object for the filename that the selector can use- Returns:
- whether the file should be selected or not
-