Package org.apache.commons.collections4.functors

# Class OnePredicate<T>

java.lang.Object
org.apache.commons.collections4.functors.AbstractPredicate<T>
org.apache.commons.collections4.functors.AbstractQuantifierPredicate<T>
org.apache.commons.collections4.functors.OnePredicate<T>

Type Parameters:
  `T` - the type of the input to the predicate.

All Implemented Interfaces:
  `Serializable`, `Predicate<T>`, `PredicateDecorator<T>`, `Predicate<T>`

public final class OnePredicate<T> extends AbstractQuantifierPredicate<T>
Predicate implementation that returns true if only one of the predicates return true. If the array of predicates is empty, then this predicate returns false.

NOTE: In versions prior to 3.2 an array size of zero or one threw an exception.

Since:
  3.0
See Also:
  - Serialized Form

- ## Field Summary

  ### Fields inherited from class org.apache.commons.collections4.functors.AbstractQuantifierPredicate

  `iPredicates`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `OnePredicate(Predicate<? super T>... predicates)`
  Constructor that performs no validation.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static <T> Predicate<T>`
  `onePredicate(Collection<? extends Predicate<? super T>> predicates)`
  Creates the predicate.
  `static <T> Predicate<T>`
  `onePredicate(Predicate<? super T>... predicates)`
  Creates the predicate.
  `boolean`
  `test(T object)`
  Evaluates the predicate returning true if only one decorated predicate returns true.

  ### Methods inherited from class org.apache.commons.collections4.functors.AbstractQuantifierPredicate

  `getPredicates`

  ### Methods inherited from class org.apache.commons.collections4.functors.AbstractPredicate

  `evaluate`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

  ### Methods inherited from interface java.util.function.Predicate

  `and, negate, or`

  ### Methods inherited from interface org.apache.commons.collections4.Predicate

  `evaluate`

- ## Constructor Details

  - ### OnePredicate

    public OnePredicate(Predicate<? super T>... predicates)
    Constructor that performs no validation. Use `onePredicate` if you want that.
    Parameters:
      `predicates` - the predicates to check, not cloned, not null

- ## Method Details

  - ### onePredicate

    public static <T> Predicate<T> onePredicate(Collection<? extends Predicate<? super T>> predicates)
    Creates the predicate.
    Type Parameters:
      `T` - the type that the predicate queries
    Parameters:
      `predicates` - the predicates to check, cloned, not null
    Returns:
      the `one` predicate
    Throws:
      `NullPointerException` - if the predicates array is null
      `NullPointerException` - if any predicate in the array is null

  - ### onePredicate

    public static <T> Predicate<T> onePredicate(Predicate<? super T>... predicates)
    Creates the predicate.

    If the array is size zero, the predicate always returns false. If the array is size one, then that predicate is returned.

    Type Parameters:
      `T` - the type that the predicate queries
    Parameters:
      `predicates` - the predicates to check, cloned, not null
    Returns:
      the `any` predicate
    Throws:
      `NullPointerException` - if the predicates array is null
      `NullPointerException` - if any predicate in the array is null

  - ### test

    public boolean test(T object)
    Evaluates the predicate returning true if only one decorated predicate returns true.
    Parameters:
      `object` - the input object
    Returns:
      true if only one decorated predicate returns true