## org.apache.tools.ant.types.selectors
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:
  FileSelector, SelectorContainer

Direct Known Subclasses:
  AndSelector, MajoritySelector, NoneSelector, OrSelector

public abstract class BaseSelectorContainer
extends BaseSelector
implements SelectorContainer

This is the base class for selectors that can contain other selectors.

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
`BaseSelectorContainer()` Default constructor.

Method Summary
`void` `addAnd(AndSelector selector)` add an "And" selector entry on the selector list
`void` `addContains(ContainsSelector selector)` add a contains selector entry on the selector list
`void` `addCustom(ExtendSelector selector)` add an extended selector entry on the selector list
`void` `addDate(DateSelector selector)` add a selector date entry on the selector list
`void` `addDepend(DependSelector selector)` add a depends selector entry on the selector list
`void` `addDepth(DepthSelector selector)` add a depth selector entry on the selector list
`void` `addFilename(FilenameSelector selector)` add a selector filename entry on the selector list
`void` `addMajority(MajoritySelector selector)` add a majority selector entry on the selector list
`void` `addNone(NoneSelector selector)` add a "None" selector entry on the selector list
`void` `addNot(NotSelector selector)` add a "Not" selector entry on the selector list
`void` `addOr(OrSelector selector)` add an "Or" selector entry on the selector list
`void` `addPresent(PresentSelector selector)` add a present selector entry on the selector list
`void` `addSelector(SelectSelector selector)` add a "Select" selector entry on the selector list
`void` `addSize(SizeSelector selector)` add a selector size entry on the selector list
`void` `appendSelector(FileSelector selector)` Add a new selector into this container.
`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 container
`java.util.Enumeration` `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
`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

### BaseSelectorContainer

    public BaseSelectorContainer()

  Default constructor.

Method Detail

### hasSelectors

    public boolean hasSelectors()

  Indicates whether there are any selectors here.

  Specified by:
    `hasSelectors` in interface `SelectorContainer`
  Returns:
    whether any selectors are in this container

### selectorCount

    public int selectorCount()

  Gives the count of the number of selectors in this container

  Specified by:
    `selectorCount` in interface `SelectorContainer`
  Returns:
    the number of selectors in this container

### getSelectors

    public FileSelector[] getSelectors(Project p)

  Returns the set of selectors as an array.

  Specified by:
    `getSelectors` in interface `SelectorContainer`
  Returns:
    an array of selectors in this container

### selectorElements

    public java.util.Enumeration selectorElements()

  Returns an enumerator for accessing the set of selectors.

  Specified by:
    `selectorElements` in interface `SelectorContainer`
  Returns:
    an enumerator that goes through each of 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.

  Returns:
    comma separated list of Selectors contained in this one

### appendSelector

    public void appendSelector(FileSelector selector)

  Add a new selector into this container.

  Specified by:
    `appendSelector` in interface `SelectorContainer`
  Parameters:
    `selector` - the new selector to add
  Returns:
    the selector that was added

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

### 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 interface `FileSelector`
  Specified by:
    `isSelected` in class `BaseSelector`
  Parameters:
    `basedir` - the base directory the scan is being done from
    `filename` - the name of the file to check
    `file` - 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 interface `SelectorContainer`

### addAnd

    public void addAnd(AndSelector selector)

  add an "And" selector entry on the selector list

  Specified by:
    `addAnd` in interface `SelectorContainer`

### addOr

    public void addOr(OrSelector selector)

  add an "Or" selector entry on the selector list

  Specified by:
    `addOr` in interface `SelectorContainer`

### addNot

    public void addNot(NotSelector selector)

  add a "Not" selector entry on the selector list

  Specified by:
    `addNot` in interface `SelectorContainer`

### addNone

    public void addNone(NoneSelector selector)

  add a "None" selector entry on the selector list

  Specified by:
    `addNone` in interface `SelectorContainer`

### addMajority

    public void addMajority(MajoritySelector selector)

  add a majority selector entry on the selector list

  Specified by:
    `addMajority` in interface `SelectorContainer`

### addDate

    public void addDate(DateSelector selector)

  add a selector date entry on the selector list

  Specified by:
    `addDate` in interface `SelectorContainer`

### addSize

    public void addSize(SizeSelector selector)

  add a selector size entry on the selector list

  Specified by:
    `addSize` in interface `SelectorContainer`

### addFilename

    public void addFilename(FilenameSelector selector)

  add a selector filename entry on the selector list

  Specified by:
    `addFilename` in interface `SelectorContainer`

### addCustom

    public void addCustom(ExtendSelector selector)

  add an extended selector entry on the selector list

  Specified by:
    `addCustom` in interface `SelectorContainer`

### addContains

    public void addContains(ContainsSelector selector)

  add a contains selector entry on the selector list

  Specified by:
    `addContains` in interface `SelectorContainer`

### addPresent

    public void addPresent(PresentSelector selector)

  add a present selector entry on the selector list

  Specified by:
    `addPresent` in interface `SelectorContainer`

### addDepth

    public void addDepth(DepthSelector selector)

  add a depth selector entry on the selector list

  Specified by:
    `addDepth` in interface `SelectorContainer`

### addDepend

    public void addDepend(DependSelector selector)

  add a depends selector entry on the selector list

  Specified by:
    `addDepend` in interface `SelectorContainer`

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