⇒ Index (Frames) |  ⇒ Index (No Frames) |  ⇒ Package |  ⇒ Package Tree |  ⇒ Full Tree 
org.apache.commons.collections.collection

Class PredicatedCollection

java.lang.Object
|
+--org.apache.commons.collections.collection.AbstractCollectionDecorator
   |
   +--org.apache.commons.collections.collection.PredicatedCollection

Known Direct Subclasses:
PredicatedBag, PredicatedBuffer, PredicatedList, PredicatedSet


public class PredicatedCollection
extends AbstractCollectionDecorator

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

If an object cannot be added to the collection, an IllegalArgumentException is thrown.

Since:
Commons Collections 3.0
Authors:
Stephen Colebourne
Paul Jack

Field Summary

Predicate

predicate

The predicate to use

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.

void

validate(Object object)

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

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
Throws:
- if collection or predicate is null
- if the collection contains invalid elements

Method Details

add

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:
- if the add is invalid

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.

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

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
Throws:
- if collection or predicate is null
- if the collection contains invalid elements

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
Throws:
- if the add is invalid