Class Overview
Provides utility methods and decorators for Buffer
instances.
Summary
Public Constructors |
|
BufferUtils()
BufferUtils should not normally be instantiated.
|
[Expand]
Inherited Methods |
From class
java.lang.Object
Object
|
clone()
|
boolean
|
equals(Object arg0)
|
void
|
finalize()
|
final
Class<?>
|
getClass()
|
int
|
hashCode()
|
final
void
|
notify()
|
final
void
|
notifyAll()
|
String
|
toString()
|
final
void
|
wait()
|
final
void
|
wait(long arg0, int arg1)
|
final
void
|
wait(long arg0)
|
|
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
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
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
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
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 |
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
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
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 |
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