Class OnePredicate

  • All Implemented Interfaces:
    java.io.Serializable, PredicateDecorator, Predicate

    public final class OnePredicate
    extends java.lang.Object
    implements Predicate, PredicateDecorator, java.io.Serializable
    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:
    Commons Collections 3.0
    See Also:
    Serialized Form
    • Constructor Summary

      Constructors 
      Constructor Description
      OnePredicate​(Predicate[] predicates)
      Constructor that performs no validation.
    • Constructor Detail

      • OnePredicate

        public OnePredicate​(Predicate[] predicates)
        Constructor that performs no validation. Use getInstance if you want that.
        Parameters:
        predicates - the predicates to check, not cloned, not null
    • Method Detail

      • getInstance

        public static Predicate getInstance​(Predicate[] 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.

        Parameters:
        predicates - the predicates to check, cloned, not null
        Returns:
        the any predicate
        Throws:
        java.lang.IllegalArgumentException - if the predicates array is null
        java.lang.IllegalArgumentException - if any predicate in the array is null
      • getInstance

        public static Predicate getInstance​(java.util.Collection predicates)
        Factory to create the predicate.
        Parameters:
        predicates - the predicates to check, cloned, not null
        Returns:
        the one predicate
        Throws:
        java.lang.IllegalArgumentException - if the predicates array is null
        java.lang.IllegalArgumentException - if any predicate in the array is null
      • evaluate

        public boolean evaluate​(java.lang.Object object)
        Evaluates the predicate returning true if only one decorated predicate returns true.
        Specified by:
        evaluate in interface Predicate
        Parameters:
        object - the input object
        Returns:
        true if only one decorated predicate returns true
      • getPredicates

        public Predicate[] getPredicates()
        Gets the predicates, do not modify the array.
        Specified by:
        getPredicates in interface PredicateDecorator
        Returns:
        the predicates
        Since:
        Commons Collections 3.1