SelectSelector (Apache Ant API)
Date: 2021-07-10

org.apache.tools.ant.types.selectors

## Class SelectSelector

- 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.SelectSelector

- All Implemented Interfaces:
    java.lang.Cloneable, FileSelector, SelectorContainer

      public class SelectSelector
      extends BaseSelectorContainer

  This selector just holds one other selector and forwards all requests to it. It exists so that there is a single selector type that can exist outside of any targets, as an element of project. It overrides all of the reference stuff so that it works as expected. Note that this is the only selector you can reference.
  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
    `SelectSelector()` Default constructor.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `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.
    `boolean` | `isSelected(java.io.File basedir, java.lang.String filename, java.io.File file)` Returns true (the file is selected) only if the if property (if any) exists, the unless property (if any) doesn't exist, and the contained selector (if any) selects the file.
    `boolean` | `passesConditions()` Ensures that the selector passes the conditions placed on it with `if` and `unless`.
    `int` | `selectorCount()` Gives the count of the number of selectors in this container
    `java.util.Enumeration<FileSelector>` | `selectorElements()` Returns an enumerator for accessing the set of selectors.
    `void` | `setIf(java.lang.Object ifProperty)` Sets the if attribute to an expression which must evaluate to true or the name of an existing property for the selector to select any files.
    `void` | `setIf(java.lang.String ifProperty)` Sets the if attribute to an expression which must evaluate to true or the name of an existing property for the selector to select any files.
    `void` | `setUnless(java.lang.Object unlessProperty)` Sets the unless attribute to an expression which must evaluate to false or the name of a property which cannot exist for the selector to select any files.
    `void` | `setUnless(java.lang.String unlessProperty)` Sets the unless attribute to an expression which must evaluate to false or the name of a property which cannot exist for the selector to select any files.
    `java.lang.String` | `toString()` Convert the Selectors within this container to a string.
    `void` | `verifySettings()` Makes sure that there is only one entry, sets an error message if not.

    - ### 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, dieOnCircularReference, validate`

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

      `getError, setError, setError`

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

    - #### SelectSelector

          public SelectSelector()

      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

    - #### hasSelectors

          public boolean hasSelectors()

      Indicates whether there are any selectors here.
      Specified by:
        `hasSelectors` in interface `SelectorContainer`
      Overrides:
        `hasSelectors` in class `BaseSelectorContainer`
      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`
      Overrides:
        `selectorCount` in class `BaseSelectorContainer`
      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`
      Overrides:
        `getSelectors` in class `BaseSelectorContainer`
      Parameters:
        `p` - the current project
      Returns:
        an array of selectors in this container

    - #### selectorElements

          public java.util.Enumeration<FileSelector> selectorElements()

      Returns an enumerator for accessing the set of selectors.
      Specified by:
        `selectorElements` in interface `SelectorContainer`
      Overrides:
        `selectorElements` in class `BaseSelectorContainer`
      Returns:
        an enumerator that goes through each of the selectors

    - #### appendSelector

          public void appendSelector(FileSelector selector)

      Add a new selector into this container.
      Specified by:
        `appendSelector` in interface `SelectorContainer`
      Overrides:
        `appendSelector` in class `BaseSelectorContainer`
      Parameters:
        `selector` - the new selector to add

    - #### verifySettings

          public void verifySettings()

      Makes sure that there is only one entry, sets an error message if not.
      Overrides:
        `verifySettings` in class `BaseSelector`

    - #### passesConditions

          public boolean passesConditions()

      Ensures that the selector passes the conditions placed on it with `if` and `unless`.
      Returns:
        true if conditions are passed

    - #### setIf

          public void setIf(java.lang.Object ifProperty)

      Sets the if attribute to an expression which must evaluate to true or the name of an existing property for the selector to select any files.
      Parameters:
        `ifProperty` - the expression to check
      Since:
        Ant 1.8.0

    - #### setIf

          public void setIf(java.lang.String ifProperty)

      Sets the if attribute to an expression which must evaluate to true or the name of an existing property for the selector to select any files.
      Parameters:
        `ifProperty` - the expression to check

    - #### setUnless

          public void setUnless(java.lang.Object unlessProperty)

      Sets the unless attribute to an expression which must evaluate to false or the name of a property which cannot exist for the selector to select any files.
      Parameters:
        `unlessProperty` - the expression to check
      Since:
        Ant 1.8.0

    - #### setUnless

          public void setUnless(java.lang.String unlessProperty)

      Sets the unless attribute to an expression which must evaluate to false or the name of a property which cannot exist for the selector to select any files.
      Parameters:
        `unlessProperty` - the expression to check

    - #### isSelected

          public boolean isSelected(java.io.File basedir,
                                    java.lang.String filename,
                                    java.io.File file)

      Returns true (the file is selected) only if the if property (if any) exists, the unless property (if any) doesn't exist, and the contained selector (if any) selects the file. If there is no contained selector, return true (because we assume that the point was to test the if and unless conditions).
      Specified by:
        `isSelected` in interface `FileSelector`
      Specified by:
        `isSelected` in class `BaseSelectorContainer`
      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