Class OnePredicate<T>

java.lang.Object
org.apache.commons.collections4.functors.AbstractQuantifierPredicate<T>
org.apache.commons.collections4.functors.OnePredicate<T>
All Implemented Interfaces:
Serializable, 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:
  • 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)
      Factory to create 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)
      Factory to create 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
    • evaluate

      public boolean evaluate(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