org.apache.commons.collections.buffer
Class TransformedBuffer<I,O>

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

public class TransformedBuffer<I,O>
extends TransformedCollection<I,O>
implements Buffer

Decorates another Buffer to transform objects that are added.

The add methods are affected by this class. Thus objects must be removed or searched for using their transformed form. For example, if the transformation converts Strings to Integers, you must use the Integer form to remove objects.

This class is Serializable from Commons Collections 3.1.

Note: This class cannot support generics without breaking the Collection contract.

Since:
Commons Collections 3.0
Version:
$Revision: 1.2 $ $Date: 2005/05/23 14:42:13 $
Author:
Matt Hall, John Watkinson, Stephen Colebourne
See Also:
Serialized Form

Field Summary
 
Fields inherited from class org.apache.commons.collections.collection.TransformedCollection
transformer
 
Fields inherited from class org.apache.commons.collections.collection.AbstractCollectionDecorator
collection
 
Constructor Summary
protected TransformedBuffer(Buffer<I> buffer, Transformer<? super I,? extends O> transformer)
          Constructor that wraps (not copies).
 
Method Summary
static
<I,O> Buffer<O>
decorate(Buffer<I> buffer, Transformer<? super I,? extends O> transformer)
          Factory method to create a transforming buffer.
 Object get()
          Gets the next object from the buffer without removing it.
protected  Buffer<O> getBuffer()
          Gets the decorated buffer.
 Object remove()
          Gets and removes the next object from the buffer.
 
Methods inherited from class org.apache.commons.collections.collection.TransformedCollection
add, addAll, addAllTyped, addTyped, decorate, transform, transform
 
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

TransformedBuffer

protected TransformedBuffer(Buffer<I> buffer,
                            Transformer<? super I,? extends O> transformer)
Constructor that wraps (not copies).

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

Parameters:
buffer - the buffer to decorate, must not be null
transformer - the transformer to use for conversion, must not be null
Throws:
IllegalArgumentException - if buffer or transformer is null
Method Detail

decorate

public static <I,O> Buffer<O> decorate(Buffer<I> buffer,
                                       Transformer<? super I,? extends O> transformer)
Factory method to create a transforming buffer.

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

Parameters:
buffer - the buffer to decorate, must not be null
transformer - the transformer to use for conversion, must not be null
Returns:
a new transformed Buffer
Throws:
IllegalArgumentException - if buffer or transformer is null

getBuffer

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

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 © 2005-2005 Apache Software Foundation, Matt Hall, John Watkinson. All Rights Reserved.