Package org.apache.commons.collections4.functors

# Class UniquePredicate<T>

java.lang.Object
org.apache.commons.collections4.functors.UniquePredicate<T>

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

public final class UniquePredicate<T> extends Object implements Predicate<T>, Serializable
Predicate implementation that returns true the first time an object is passed into the predicate.

Since:
  3.0
See Also:
  - Serialized Form

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `UniquePredicate()`
  Constructor that performs no validation.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `evaluate(T object)`
  Evaluates the predicate returning true if the input object hasn't been received yet.
  `static <T> Predicate<T>`
  `uniquePredicate()`
  Factory to create the predicate.

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

  `test`

- ## Constructor Details

  - ### UniquePredicate

    public UniquePredicate()
    Constructor that performs no validation. Use `uniquePredicate` if you want that.

- ## Method Details

  - ### uniquePredicate

    public static <T> Predicate<T> uniquePredicate()
    Factory to create the predicate.
    Type Parameters:
      `T` - the type that the predicate queries
    Returns:
      the predicate
    Throws:
      `IllegalArgumentException` - if the predicate is null

  - ### evaluate

    public boolean evaluate(T object)
    Evaluates the predicate returning true if the input object hasn't been received yet.
    Specified by:
      `evaluate` in interface `Predicate<T>`
    Parameters:
      `object` - the input object
    Returns:
      true if this is the first time the object is seen