## org.apache.commons.collections.buffer
Class PredicatedBuffer

    java.lang.Object
      org.apache.commons.collections.collection.AbstractCollectionDecorator
          org.apache.commons.collections.collection.AbstractSerializableCollectionDecorator
              org.apache.commons.collections.collection.PredicatedCollection
                  org.apache.commons.collections.buffer.PredicatedBuffer

All Implemented Interfaces:
  Buffer, Collection, Serializable

public class PredicatedBuffer
extends PredicatedCollection
implements Buffer

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.7 $ $Date: 2004/06/03 22:02:13 $
Author:
  Stephen Colebourne, 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 buffer, Predicate predicate)` Constructor that wraps (not copies).

Method Summary
`static Buffer` `decorate(Buffer buffer, Predicate predicate)` Factory method to create a predicated (validating) buffer.
`Object` `get()` Gets the next object from the buffer without removing it.
`protected Buffer` `getBuffer()` Gets the buffer being decorated.
`Object` `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 buffer,
                               Predicate 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 Buffer decorate(Buffer buffer,
                                  Predicate 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 getBuffer()

  Gets the buffer being decorated.

  Returns:
    the decorated buffer

### get

    public Object get()

  Description copied from interface: `Buffer`
  Gets the next object from the buffer without removing it.

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

### remove

    public Object remove()

  Description copied from interface: `Buffer`
  Gets and removes the next object from the buffer.

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

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