MajoritySelector (Apache Ant API)
Description: declaration: package: org.apache.tools.ant.types.selectors, class: MajoritySelector

Package org.apache.tools.ant.types.selectors

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

public class MajoritySelector extends BaseSelectorContainer
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.types.DataType

  `checked, ref`

  ### Fields inherited from class org.apache.tools.ant.ProjectComponent

  `description, location, project`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `MajoritySelector()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `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 true
  `String`
  `toString()`
  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

    public String 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 class `BaseSelectorContainer`
    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

    public boolean isSelected(File basedir, String filename, File file)
    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 interface `FileSelector`
    Specified by:
      `isSelected` in class `BaseSelectorContainer`
    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 for the filename that the selector can use
    Returns:
      whether the file should be selected or not