public class

PredicatedCollection

extends AbstractSerializableCollectionDecorator
java.lang.Object
   ↳ org.apache.commons.collections.collection.AbstractCollectionDecorator
     ↳ org.apache.commons.collections.collection.AbstractSerializableCollectionDecorator
       ↳ org.apache.commons.collections.collection.PredicatedCollection
Known Direct Subclasses
Known Indirect Subclasses

Class Overview

Decorates another Collection to validate that additions match a specified predicate.

This collection exists to provide validation for the decorated collection. It is normally created to decorate an empty collection. If an object cannot be added to the collection, an IllegalArgumentException is thrown.

One usage would be to ensure that no null entries are added to the collection.

Collection coll = PredicatedCollection.decorate(new ArrayList(), NotNullPredicate.INSTANCE);

This class is Serializable from Commons Collections 3.1.

Summary

Fields
protected final Predicate predicate The predicate to use
[Expand]
Inherited Fields
From class org.apache.commons.collections.collection.AbstractCollectionDecorator
Protected Constructors
PredicatedCollection(Collection coll, Predicate predicate)
Constructor that wraps (not copies).
Public Methods
boolean add(Object object)
Override to validate the object being added to ensure it matches the predicate.
boolean addAll(Collection coll)
Override to validate the objects being added to ensure they match the predicate.
static Collection decorate(Collection coll, Predicate predicate)
Factory method to create a predicated (validating) collection.
Protected Methods
void validate(Object object)
Validates the object being added to ensure it matches the predicate.
[Expand]
Inherited Methods
From class org.apache.commons.collections.collection.AbstractCollectionDecorator
From class java.lang.Object
From interface java.lang.Iterable
From interface java.util.Collection

Fields

protected final Predicate predicate

The predicate to use

Protected Constructors

protected PredicatedCollection (Collection coll, Predicate predicate)

Constructor that wraps (not copies).

If there are any elements already in the collection being decorated, they are validated.

Parameters
coll the collection to decorate, must not be null
predicate the predicate to use for validation, must not be null
Throws
IllegalArgumentException if collection or predicate is null
IllegalArgumentException if the collection contains invalid elements

Public Methods

public boolean add (Object object)

Override to validate the object being added to ensure it matches the predicate.

Parameters
object the object being added
Returns
  • the result of adding to the underlying collection
Throws
IllegalArgumentException if the add is invalid

public boolean addAll (Collection coll)

Override to validate the objects being added to ensure they match the predicate. If any one fails, no update is made to the underlying collection.

Parameters
coll the collection being added
Returns
  • the result of adding to the underlying collection
Throws
IllegalArgumentException if the add is invalid

public static Collection decorate (Collection coll, Predicate predicate)

Factory method to create a predicated (validating) collection.

If there are any elements already in the collection being decorated, they are validated.

Parameters
coll the collection to decorate, must not be null
predicate the predicate to use for validation, must not be null
Returns
  • a new predicated collection
Throws
IllegalArgumentException if collection or predicate is null
IllegalArgumentException if the collection contains invalid elements

Protected Methods

protected void validate (Object object)

Validates the object being added to ensure it matches the predicate.

The predicate itself should not throw an exception, but return false to indicate that the object cannot be added.

Parameters
object the object being added
Throws
IllegalArgumentException if the add is invalid