public class BufferUtils
extends java.lang.Object
Buffer
instances.Modifier and Type | Field and Description |
---|---|
static Buffer |
EMPTY_BUFFER
An empty unmodifiable buffer.
|
Constructor and Description |
---|
BufferUtils()
BufferUtils should not normally be instantiated. |
Modifier and Type | Method and Description |
---|---|
static Buffer |
blockingBuffer(Buffer buffer)
Returns a synchronized buffer backed by the given buffer that will
block on
Buffer.get() and Buffer.remove() operations. |
static Buffer |
blockingBuffer(Buffer buffer,
long timeoutMillis)
Returns a synchronized buffer backed by the given buffer that will
block on
Buffer.get() and Buffer.remove() operations
until timeout expires. |
static Buffer |
boundedBuffer(Buffer buffer,
int maximumSize)
Returns a synchronized buffer backed by the given buffer that will
block on
Collection.add(Object) and
Collection.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 on
Collection.add(Object) and
Collection.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,
java.lang.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.
|
public static final Buffer EMPTY_BUFFER
public BufferUtils()
BufferUtils
should not normally be instantiated.public static Buffer synchronizedBuffer(Buffer buffer)
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()); } }
buffer
- the buffer to synchronize, must not be nulljava.lang.IllegalArgumentException
- if the Buffer is nullpublic static Buffer blockingBuffer(Buffer buffer)
Buffer.get()
and Buffer.remove()
operations.
If the buffer is empty, then the Buffer.get()
and
Buffer.remove()
operations will block until new elements
are added to the buffer, rather than immediately throwing a
BufferUnderflowException
.buffer
- the buffer to synchronize, must not be nulljava.lang.IllegalArgumentException
- if the Buffer is nullpublic static Buffer blockingBuffer(Buffer buffer, long timeoutMillis)
Buffer.get()
and Buffer.remove()
operations
until timeout
expires. If the buffer is empty, then the
Buffer.get()
and Buffer.remove()
operations will block
until new elements are added to the buffer, rather than immediately
throwing a BufferUnderflowException
.buffer
- the buffer to synchronize, must not be nulltimeoutMillis
- the timeout value in milliseconds, zero or less for no timeoutjava.lang.IllegalArgumentException
- if the Buffer is nullpublic static Buffer boundedBuffer(Buffer buffer, int maximumSize)
Collection.add(Object)
and
Collection.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.buffer
- the buffer to make bounded, must not be nullmaximumSize
- the maximum sizejava.lang.IllegalArgumentException
- if the given buffer is nullpublic static Buffer boundedBuffer(Buffer buffer, int maximumSize, long timeoutMillis)
Collection.add(Object)
and
Collection.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.buffer
- the buffer to make bounded, must not be nullmaximumSize
- the maximum sizetimeoutMillis
- the timeout value in milliseconds, zero or less for no timeoutjava.lang.IllegalArgumentException
- if the given buffer is nullpublic static Buffer unmodifiableBuffer(Buffer buffer)
buffer
- the buffer to make unmodifiable, must not be nulljava.lang.IllegalArgumentException
- if the Buffer is nullpublic static Buffer predicatedBuffer(Buffer buffer, Predicate predicate)
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.
buffer
- the buffer to predicate, must not be nullpredicate
- the predicate used to evaluate new elements, must not be nulljava.lang.IllegalArgumentException
- if the Buffer or Predicate is nullpublic static Buffer typedBuffer(Buffer buffer, java.lang.Class type)
Only elements of the specified type can be added to the buffer.
buffer
- the buffer to predicate, must not be nulltype
- the type to allow into the buffer, must not be nulljava.lang.IllegalArgumentException
- if the buffer or type is nullpublic static Buffer transformedBuffer(Buffer buffer, Transformer transformer)
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.
buffer
- the buffer to predicate, must not be nulltransformer
- the transformer for the buffer, must not be nulljava.lang.IllegalArgumentException
- if the Buffer or Transformer is null"Copyright © 2010 - 2020 Adobe Systems Incorporated. All Rights Reserved"