public class

BoundedBuffer

extends SynchronizedBuffer
implements BoundedCollection
java.lang.Object
   ↳ org.apache.commons.collections.collection.SynchronizedCollection
     ↳ org.apache.commons.collections.buffer.SynchronizedBuffer
       ↳ org.apache.commons.collections.buffer.BoundedBuffer

Class Overview

Decorates another Buffer to ensure a fixed maximum size.

Note: This class should only be used if you need to add bounded behaviour to another buffer. If you just want a bounded buffer then you should use BoundedFifoBuffer or CircularFifoBuffer.

The decoration methods allow you to specify a timeout value. This alters the behaviour of the add methods when the buffer is full. Normally, when the buffer is full, the add method will throw an exception. With a timeout, the add methods will wait for up to the timeout period to try and add the elements.

Summary

[Expand]
Inherited Fields
From class org.apache.commons.collections.collection.SynchronizedCollection
Protected Constructors
BoundedBuffer(Buffer buffer, int maximumSize, long timeout)
Constructor that wraps (not copies) another buffer, making it bounded waiting only up to a maximum amount of time.
Public Methods
boolean add(Object o)
boolean addAll(Collection c)
static BoundedBuffer decorate(Buffer buffer, int maximumSize, long timeout)
Factory method to create a bounded buffer that blocks for a maximum amount of time.
static BoundedBuffer decorate(Buffer buffer, int maximumSize)
Factory method to create a bounded buffer.
boolean isFull()
Returns true if this collection is full and no new elements can be added.
Iterator iterator()
Iterators must be manually synchronized.
int maxSize()
Gets the maximum size of the collection (the bound).
Object remove()
Gets and removes the next object from the buffer.
[Expand]
Inherited Methods
From class org.apache.commons.collections.buffer.SynchronizedBuffer
From class org.apache.commons.collections.collection.SynchronizedCollection
From class java.lang.Object
From interface java.lang.Iterable
From interface java.util.Collection
From interface org.apache.commons.collections.BoundedCollection
From interface org.apache.commons.collections.Buffer

Protected Constructors

protected BoundedBuffer (Buffer buffer, int maximumSize, long timeout)

Constructor that wraps (not copies) another buffer, making it bounded waiting only up to a maximum amount of time.

Parameters
buffer the buffer to wrap, must not be null
maximumSize the maximum size, must be size one or greater
timeout the maximum amount of time to wait
Throws
IllegalArgumentException if the buffer is null
IllegalArgumentException if the maximum size is zero or less

Public Methods

public boolean add (Object o)

public boolean addAll (Collection c)

public static BoundedBuffer decorate (Buffer buffer, int maximumSize, long timeout)

Factory method to create a bounded buffer that blocks for a maximum amount of time.

Parameters
buffer the buffer to decorate, must not be null
maximumSize the maximum size, must be size one or greater
timeout the maximum amount of time to wait in milliseconds
Returns
  • a new bounded buffer
Throws
IllegalArgumentException if the buffer is null
IllegalArgumentException if the maximum size is zero or less

public static BoundedBuffer decorate (Buffer buffer, int maximumSize)

Factory method to create a bounded buffer.

When the buffer is full, it will immediately throw a BufferOverflowException on calling add().

Parameters
buffer the buffer to decorate, must not be null
maximumSize the maximum size, must be size one or greater
Returns
  • a new bounded buffer
Throws
IllegalArgumentException if the buffer is null
IllegalArgumentException if the maximum size is zero or less

public boolean isFull ()

Returns true if this collection is full and no new elements can be added.

Returns
  • true if the collection is full

public Iterator iterator ()

Iterators must be manually synchronized.

 synchronized (coll) {
   Iterator it = coll.iterator();
   // do stuff with iterator
 }

Returns
  • an iterator that must be manually synchronized on the collection

public int maxSize ()

Gets the maximum size of the collection (the bound).

Returns
  • the maximum number of elements the collection can hold

public Object remove ()

Gets and removes the next object from the buffer.

Returns
  • the next object in the buffer, which is also removed