org.apache.commons.collections.buffer
Class PredicatedBuffer<E>

java.lang.Object
  extended by org.apache.commons.collections.collection.AbstractCollectionDecorator<E>
      extended by org.apache.commons.collections.collection.AbstractSerializableCollectionDecorator<E>
          extended by org.apache.commons.collections.collection.PredicatedCollection<E>
              extended by org.apache.commons.collections.buffer.PredicatedBuffer<E>
All Implemented Interfaces:
Serializable, Iterable<E>, Collection<E>, Buffer<E>

public class PredicatedBuffer<E>
extends PredicatedCollection<E>
implements Buffer<E>

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

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

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

Buffer buffer = PredicatedBuffer.decorate(new UnboundedFifoBuffer(), NotNullPredicate.INSTANCE);

This class is Serializable from Commons Collections 3.1.

Since:
Commons Collections 3.0
Version:
$Revision: 1.1.1.1 $ $Date: 2005/05/23 04:33:53 $
Author:
Stephen Colebourne, Matt Hall, John Watkinson, Paul Jack
See Also:
Serialized Form

Field Summary
 
Fields inherited from class org.apache.commons.collections.collection.PredicatedCollection
predicate
 
Fields inherited from class org.apache.commons.collections.collection.AbstractCollectionDecorator
collection
 
Constructor Summary
protected PredicatedBuffer(Buffer<E> buffer, Predicate<? super E> predicate)
          Constructor that wraps (not copies).
 
Method Summary
static
<E> Buffer<E>
decorate(Buffer<E> buffer, Predicate<? super E> predicate)
          Factory method to create a predicated (validating) buffer.
 E get()
          Gets the next object from the buffer without removing it.
protected  Buffer<E> getBuffer()
          Gets the buffer being decorated.
 E remove()
          Gets and removes the next object from the buffer.
 
Methods inherited from class org.apache.commons.collections.collection.PredicatedCollection
add, addAll, decorate, validate
 
Methods inherited from class org.apache.commons.collections.collection.AbstractCollectionDecorator
clear, contains, containsAll, equals, getCollection, hashCode, isEmpty, iterator, remove, removeAll, retainAll, size, toArray, toArray, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.util.Collection
add, addAll, clear, contains, containsAll, equals, hashCode, isEmpty, iterator, remove, removeAll, retainAll, size, toArray, toArray
 

Constructor Detail

PredicatedBuffer

protected PredicatedBuffer(Buffer<E> buffer,
                           Predicate<? super E> predicate)
Constructor that wraps (not copies).

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

Parameters:
buffer - the buffer to decorate, must not be null
predicate - the predicate to use for validation, must not be null
Throws:
IllegalArgumentException - if buffer or predicate is null
IllegalArgumentException - if the buffer contains invalid elements
Method Detail

decorate

public static <E> Buffer<E> decorate(Buffer<E> buffer,
                                     Predicate<? super E> predicate)
Factory method to create a predicated (validating) buffer.

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

Parameters:
buffer - the buffer to decorate, must not be null
predicate - the predicate to use for validation, must not be null
Returns:
a new predicated Buffer
Throws:
IllegalArgumentException - if buffer or predicate is null
IllegalArgumentException - if the buffer contains invalid elements

getBuffer

protected Buffer<E> getBuffer()
Gets the buffer being decorated.

Returns:
the decorated buffer

get

public E get()
Description copied from interface: Buffer
Gets the next object from the buffer without removing it.

Specified by:
get in interface Buffer<E>
Returns:
the next object in the buffer, which is not removed

remove

public E remove()
Description copied from interface: Buffer
Gets and removes the next object from the buffer.

Specified by:
remove in interface Buffer<E>
Returns:
the next object in the buffer, which is also removed


Copyright © 2005-2005 Apache Software Foundation, Matt Hall, John Watkinson. All Rights Reserved.