Class OnePredicate

java.lang.Object
org.apache.commons.collections.functors.OnePredicate
All Implemented Interfaces:
Serializable, PredicateDecorator, Predicate

public final class OnePredicate extends Object implements Predicate, PredicateDecorator, 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
Version:
$Revision: 646777 $ $Date: 2008-04-10 14:33:15 +0200 (Thu, 10 Apr 2008) $
Author:
Stephen Colebourne, Matt Benson
See Also:
  • Constructor Details

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

    • 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:
      IllegalArgumentException - if the predicates array is null
      IllegalArgumentException - if any predicate in the array is null
    • getInstance

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

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