Class 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:
    Serialized Form
    • Constructor Detail

      • 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 Detail

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