org.apache.commons.collections.buffer

Class BoundedBuffer

public class BoundedBuffer extends SynchronizedBuffer implements BoundedCollection

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.

Since: Commons Collections 3.2

Version: $Revision: 405927 $ $Date: 2006-05-12 23:57:03 +0100 (Fri, 12 May 2006) $

Author: James Carman Stephen Colebourne

Constructor Summary
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.
Method Summary
booleanadd(Object o)
booleanaddAll(Collection c)
static BoundedBufferdecorate(Buffer buffer, int maximumSize)
Factory method to create a bounded buffer.
static BoundedBufferdecorate(Buffer buffer, int maximumSize, long timeout)
Factory method to create a bounded buffer that blocks for a maximum amount of time.
booleanisFull()
Iteratoriterator()
intmaxSize()
Objectremove()

Constructor Detail

BoundedBuffer

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

Method Detail

add

public boolean add(Object o)

addAll

public boolean addAll(Collection c)

decorate

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

decorate

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

isFull

public boolean isFull()

iterator

public Iterator iterator()

maxSize

public int maxSize()

remove

public Object remove()
Copyright © 2001-2008 Apache Software Foundation. All Rights Reserved.