MajoritySelector (Apache Ant API)
Date: 2015-06-29

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:
    java.lang.Cloneable, 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 and Description
    `MajoritySelector()` Default constructor.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `isSelected(java.io.File basedir, java.lang.String filename, java.io.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
    `java.lang.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, addFilename, addMajority, addModified, addNone, addNot, addOr, addPresent, addReadable, addSelector, addSize, addType, addWritable, appendSelector, dieOnCircularReference, getSelectors, hasSelectors, selectorCount, selectorElements, validate`

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

      `getError, setError, verifySettings`

    - ### Methods inherited from class org.apache.tools.ant.types.DataType

      `checkAttributesAllowed, checkChildrenAllowed, circularReference, clone, dieOnCircularReference, dieOnCircularReference, 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`

- - ### Constructor Detail

    - #### MajoritySelector

          public MajoritySelector()

      Default constructor.

  - ### Method Detail

    - #### toString

          public java.lang.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(java.io.File basedir,
                           java.lang.String filename,
                           java.io.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