## 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:
  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
Author:
  Bruce Atherton

Field Summary

Fields inherited from class org.apache.tools.ant.types.DataType
`checked, description, ref`

Fields inherited from class org.apache.tools.ant.ProjectComponent
`project`

Constructor Summary
`MajoritySelector()` Default constructor.

Method Summary
`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)`
`java.lang.String` `toString()` Convert the Selectors within this container to a string.

Methods inherited from class org.apache.tools.ant.types.selectors.BaseSelectorContainer
`addAnd, addContains, addCustom, addDate, addDepend, addDepth, addFilename, addMajority, addNone, addNot, addOr, addPresent, addSelector, addSize, appendSelector, 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
`circularReference, dieOnCircularReference, getCheckedRef, getDescription, isReference, noChildrenAllowed, setDescription, setRefid, tooManyAttributes`

Methods inherited from class org.apache.tools.ant.ProjectComponent
`getProject, log, log, setProject`

Methods inherited from class java.lang.Object
`clone, 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:
    comma separated list of Selectors contained in this one

### setAllowtie

    public void setAllowtie(boolean tiebreaker)

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

Copyright © 2000-2003 Apache Software Foundation. All Rights Reserved.