Package org.apache.commons.collections
Class BufferUtils
- java.lang.Object
-
- org.apache.commons.collections.BufferUtils
-
-
Field Summary
Fields Modifier and Type Field Description static Buffer
EMPTY_BUFFER
An empty unmodifiable buffer.
-
Constructor Summary
Constructors Constructor Description BufferUtils()
BufferUtils
should not normally be instantiated.
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static Buffer
blockingBuffer(Buffer buffer)
Returns a synchronized buffer backed by the given buffer that will block onBuffer.get()
andBuffer.remove()
operations.static Buffer
blockingBuffer(Buffer buffer, long timeoutMillis)
Returns a synchronized buffer backed by the given buffer that will block onBuffer.get()
andBuffer.remove()
operations untiltimeout
expires.static Buffer
boundedBuffer(Buffer buffer, int maximumSize)
Returns a synchronized buffer backed by the given buffer that will block onCollection.add(Object)
andCollection.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
boundedBuffer(Buffer buffer, int maximumSize, long timeoutMillis)
Returns a synchronized buffer backed by the given buffer that will block onCollection.add(Object)
andCollection.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
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.
-
-
-
Field Detail
-
EMPTY_BUFFER
public static final Buffer EMPTY_BUFFER
An empty unmodifiable buffer.
-
-
Method Detail
-
synchronizedBuffer
public static Buffer synchronizedBuffer(Buffer buffer)
Returns a synchronized buffer backed by the given buffer. Much like the synchronized collections returned byCollections
, 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
-
blockingBuffer
public static Buffer blockingBuffer(Buffer buffer)
Returns a synchronized buffer backed by the given buffer that will block onBuffer.get()
andBuffer.remove()
operations. If the buffer is empty, then theBuffer.get()
andBuffer.remove()
operations will block until new elements are added to the buffer, rather than immediately throwing aBufferUnderflowException
.- 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
-
blockingBuffer
public static Buffer blockingBuffer(Buffer buffer, long timeoutMillis)
Returns a synchronized buffer backed by the given buffer that will block onBuffer.get()
andBuffer.remove()
operations untiltimeout
expires. If the buffer is empty, then theBuffer.get()
andBuffer.remove()
operations will block until new elements are added to the buffer, rather than immediately throwing aBufferUnderflowException
.- Parameters:
buffer
- the buffer to synchronize, must not be nulltimeoutMillis
- 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- Since:
- Commons Collections 3.2
-
boundedBuffer
public static Buffer boundedBuffer(Buffer buffer, int maximumSize)
Returns a synchronized buffer backed by the given buffer that will block onCollection.add(Object)
andCollection.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 nullmaximumSize
- the maximum size- Returns:
- a bounded buffer backed by the given buffer
- Throws:
IllegalArgumentException
- if the given buffer is null- Since:
- Commons Collections 3.2
-
boundedBuffer
public static Buffer boundedBuffer(Buffer buffer, int maximumSize, long timeoutMillis)
Returns a synchronized buffer backed by the given buffer that will block onCollection.add(Object)
andCollection.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 nullmaximumSize
- the maximum sizetimeoutMillis
- 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- Since:
- Commons Collections 3.2
-
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
-
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 nullpredicate
- the predicate used to evaluate new elements, must not be null- Returns:
- a predicated buffer
- Throws:
IllegalArgumentException
- if the Buffer or Predicate 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 nulltype
- the type to allow into the buffer, must not be null- Returns:
- a typed buffer
- Throws:
IllegalArgumentException
- if the buffer or type 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 nulltransformer
- 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
-
-