org.apache.commons.collections.collection

Class PredicatedCollection

Implemented Interfaces:
Collection, Serializable
Known Direct Subclasses:
PredicatedBag, PredicatedBuffer, PredicatedList, PredicatedSet

public class PredicatedCollection
extends AbstractSerializableCollectionDecorator

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.

Version:
$Revision: 1.7 $ $Date: 2004/06/03 22:02:13 $

Authors:
Stephen Colebourne
Paul Jack

Since:
Commons Collections 3.0

Field Summary

protected Predicate
predicate
The predicate to use

Fields inherited from class org.apache.commons.collections.collection.AbstractCollectionDecorator

collection

Constructor Summary

PredicatedCollection(Collection coll, Predicate predicate)
Constructor that wraps (not copies).

Method Summary

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 void
validate(Object object)
Validates the object being added to ensure it matches the predicate.

Methods inherited from class org.apache.commons.collections.collection.AbstractCollectionDecorator

add, addAll, clear, contains, containsAll, equals, getCollection, hashCode, isEmpty, iterator, remove, removeAll, retainAll, size, toArray, toArray, toString

Field Details

predicate

protected final Predicate predicate
The predicate to use

Constructor Details

PredicatedCollection

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

Method Details

add

public boolean add(Object object)
Override to validate the object being added to ensure it matches the predicate.
Overrides:
add in interface AbstractCollectionDecorator

Parameters:
object - the object being added

Returns:
the result of adding to the underlying collection


addAll

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.
Overrides:
addAll in interface AbstractCollectionDecorator

Parameters:
coll - the collection being added

Returns:
the result of adding to the underlying collection


decorate

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


validate

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


Copyright © 2001-2005 Apache Software Foundation. All Rights Reserved.