org.apache.commons.collections

Class BufferUtils

public class BufferUtils extends Object

Provides utility methods and decorators for {@link Buffer} instances.

Since: Commons Collections 2.1

Version: $Revision: 1.20 $ $Date: 2004/04/01 20:12:00 $

Author: Paul Jack Stephen Colebourne

Field Summary
static BufferEMPTY_BUFFER
An empty unmodifiable buffer.
Constructor Summary
BufferUtils()
BufferUtils should not normally be instantiated.
Method Summary
static BufferblockingBuffer(Buffer buffer)
Returns a synchronized buffer backed by the given buffer that will block on {@link Buffer#get()} and {@link Buffer#remove()} operations.
static BufferpredicatedBuffer(Buffer buffer, Predicate predicate)
Returns a predicated (validating) buffer backed by the given buffer.
static BuffersynchronizedBuffer(Buffer buffer)
Returns a synchronized buffer backed by the given buffer.
static BuffertransformedBuffer(Buffer buffer, Transformer transformer)
Returns a transformed buffer backed by the given buffer.
static BuffertypedBuffer(Buffer buffer, Class type)
Returns a typed buffer backed by the given buffer.
static BufferunmodifiableBuffer(Buffer buffer)
Returns an unmodifiable buffer backed by the given buffer.

Field Detail

EMPTY_BUFFER

public static final Buffer EMPTY_BUFFER
An empty unmodifiable buffer.

Constructor Detail

BufferUtils

public BufferUtils()
BufferUtils should not normally be instantiated.

Method Detail

blockingBuffer

public static Buffer blockingBuffer(Buffer buffer)
Returns a synchronized buffer backed by the given buffer that will block on {@link Buffer#get()} and {@link Buffer#remove()} operations. If the buffer is empty, then the {@link Buffer#get()} and {@link Buffer#remove()} operations will block until new elements are added to the buffer, rather than immediately throwing a BufferUnderflowException.

Parameters: buffer the buffer to synchronize, must not be null

Returns: a blocking buffer backed by that buffer

Throws: IllegalArgumentException if the Buffer is null

predicatedBuffer

public static Buffer predicatedBuffer(Buffer buffer, Predicate predicate)
Returns a predicated (validating) buffer backed by the given buffer.

Only objects that pass the test in the given predicate can be added to the buffer. Trying to add an invalid object results in an IllegalArgumentException. It is important not to use the original buffer after invoking this method, as it is a backdoor for adding invalid objects.

Parameters: buffer the buffer to predicate, must not be null predicate the predicate used to evaluate new elements, must not be null

Returns: a predicated buffer

Throws: IllegalArgumentException if the Buffer or Predicate is null

synchronizedBuffer

public static Buffer synchronizedBuffer(Buffer buffer)
Returns a synchronized buffer backed by the given buffer. Much like the synchronized collections returned by {@link java.util.Collections}, you must manually synchronize on the returned buffer's iterator to avoid non-deterministic behavior:
 Buffer b = BufferUtils.synchronizedBuffer(myBuffer);
 synchronized (b) {
     Iterator i = b.iterator();
     while (i.hasNext()) {
         process (i.next());
     }
 }
 

Parameters: buffer the buffer to synchronize, must not be null

Returns: a synchronized buffer backed by that buffer

Throws: IllegalArgumentException if the Buffer is null

transformedBuffer

public static Buffer transformedBuffer(Buffer buffer, Transformer transformer)
Returns a transformed buffer backed by the given buffer.

Each object is passed through the transformer as it is added to the Buffer. It is important not to use the original buffer after invoking this method, as it is a backdoor for adding untransformed objects.

Parameters: buffer the buffer to predicate, must not be null transformer the transformer for the buffer, must not be null

Returns: a transformed buffer backed by the given buffer

Throws: IllegalArgumentException if the Buffer or Transformer is null

typedBuffer

public static Buffer typedBuffer(Buffer buffer, Class type)
Returns a typed buffer backed by the given buffer.

Only elements of the specified type can be added to the buffer.

Parameters: buffer the buffer to predicate, must not be null type the type to allow into the buffer, must not be null

Returns: a typed buffer

Throws: IllegalArgumentException if the buffer or type is null

unmodifiableBuffer

public static Buffer unmodifiableBuffer(Buffer buffer)
Returns an unmodifiable buffer backed by the given buffer.

Parameters: buffer the buffer to make unmodifiable, must not be null

Returns: an unmodifiable buffer backed by that buffer

Throws: IllegalArgumentException if the Buffer is null

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