public class

BufferUtils

extends Object
java.lang.Object
   ↳ org.apache.commons.collections.BufferUtils

Class Overview

Provides utility methods and decorators for Buffer instances.

Summary

Fields
public static final Buffer EMPTY_BUFFER An empty unmodifiable buffer.
Public Constructors
BufferUtils()
BufferUtils should not normally be instantiated.
Public Methods
static Buffer blockingBuffer(Buffer buffer, long timeoutMillis)
Returns a synchronized buffer backed by the given buffer that will block on get() and remove() operations until timeout expires.
static Buffer blockingBuffer(Buffer buffer)
Returns a synchronized buffer backed by the given buffer that will block on get() and remove() operations.
static Buffer boundedBuffer(Buffer buffer, int maximumSize, long timeoutMillis)
Returns a synchronized buffer backed by the given buffer that will block on add(Object) and addAll(java.util.Collection) until enough object(s) are removed from the buffer to allow the object(s) to be added and still maintain the maximum size or the timeout expires.
static Buffer boundedBuffer(Buffer buffer, int maximumSize)
Returns a synchronized buffer backed by the given buffer that will block on add(Object) and addAll(java.util.Collection) until enough object(s) are removed from the buffer to allow the object(s) to be added and still maintain the maximum size.
static Buffer predicatedBuffer(Buffer buffer, Predicate predicate)
Returns a predicated (validating) buffer backed by the given buffer.
static Buffer synchronizedBuffer(Buffer buffer)
Returns a synchronized buffer backed by the given buffer.
static Buffer transformedBuffer(Buffer buffer, Transformer transformer)
Returns a transformed buffer backed by the given buffer.
static Buffer typedBuffer(Buffer buffer, Class type)
Returns a typed buffer backed by the given buffer.
static Buffer unmodifiableBuffer(Buffer buffer)
Returns an unmodifiable buffer backed by the given buffer.
[Expand]
Inherited Methods
From class java.lang.Object

Fields

public static final Buffer EMPTY_BUFFER

An empty unmodifiable buffer.

Public Constructors

public BufferUtils ()

BufferUtils should not normally be instantiated.

Public Methods

public static Buffer blockingBuffer (Buffer buffer, long timeoutMillis)

Returns a synchronized buffer backed by the given buffer that will block on get() and remove() operations until timeout expires. If the buffer is empty, then the get() and 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
timeoutMillis the timeout value in milliseconds, zero or less for no timeout
Returns
  • a blocking buffer backed by that buffer
Throws
IllegalArgumentException if the Buffer is null

public static Buffer blockingBuffer (Buffer buffer)

Returns a synchronized buffer backed by the given buffer that will block on get() and remove() operations. If the buffer is empty, then the get() and 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

public static Buffer boundedBuffer (Buffer buffer, int maximumSize, long timeoutMillis)

Returns a synchronized buffer backed by the given buffer that will block on add(Object) and addAll(java.util.Collection) until enough object(s) are removed from the buffer to allow the object(s) to be added and still maintain the maximum size or the timeout expires.

Parameters
buffer the buffer to make bounded, must not be null
maximumSize the maximum size
timeoutMillis the timeout value in milliseconds, zero or less for no timeout
Returns
  • a bounded buffer backed by the given buffer
Throws
IllegalArgumentException if the given buffer is null

public static Buffer boundedBuffer (Buffer buffer, int maximumSize)

Returns a synchronized buffer backed by the given buffer that will block on add(Object) and addAll(java.util.Collection) until enough object(s) are removed from the buffer to allow the object(s) to be added and still maintain the maximum size.

Parameters
buffer the buffer to make bounded, must not be null
maximumSize the maximum size
Returns
  • a bounded buffer backed by the given buffer
Throws
IllegalArgumentException if the given buffer is null

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

public static Buffer synchronizedBuffer (Buffer buffer)

Returns a synchronized buffer backed by the given buffer. Much like the synchronized collections returned by 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

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

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

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