# Package org.apache.commons.collections.buffer

This package contains implementations of the `Buffer` interface.

See: Description

- Class Summary
  Class | Description
  --- | ---
  AbstractBufferDecorator | Decorates another `Buffer` to provide additional behaviour.
  BlockingBuffer | Decorates another `Buffer` to make `BlockingBuffer.get()` and `BlockingBuffer.remove()` block when the `Buffer` is empty.
  BoundedBuffer | Decorates another `Buffer` to ensure a fixed maximum size.
  BoundedFifoBuffer | The BoundedFifoBuffer is a very efficient implementation of `Buffer` that is of a fixed size.
  CircularFifoBuffer | CircularFifoBuffer is a first in first out buffer with a fixed size that replaces its oldest element if full.
  PredicatedBuffer | Decorates another `Buffer` to validate that additions match a specified predicate.
  PriorityBuffer | Binary heap implementation of `Buffer` that provides for removal based on `Comparator` ordering.
  SynchronizedBuffer | Decorates another `Buffer` to synchronize its behaviour for a multi-threaded environment.
  TransformedBuffer | Decorates another `Buffer` to transform objects that are added.
  TypedBuffer | Decorates another `Buffer` to validate that elements added are of a specific type.
  UnboundedFifoBuffer | UnboundedFifoBuffer is a very efficient implementation of `Buffer` that can grow to any size.
  UnmodifiableBuffer | Decorates another `Buffer` to ensure it can't be altered.

## Package org.apache.commons.collections.buffer Description

This package contains implementations of the `Buffer` interface.

The following implementations are provided in the package:

- PriorityBuffer - provides for removal based on a comparator ordering
- BoundedFifoBuffer - implements a buffer with a fixed size that throws exceptions when full
- CircularFifoBuffer - implements a buffer with a fixed size that discards oldest when full
- UnboundedFifoBuffer - implements a buffer that grows in size if necessary

The following decorators are provided in the package:

- Synchronized - synchronizes method access for multi-threaded environments
- Unmodifiable - ensures the collection cannot be altered
- Predicated - ensures that only elements that are valid according to a predicate can be added
- Typed - ensures that only elements that are of a specific type can be added
- Transformed - transforms elements added to the buffer
- Blocking - blocks on get and remove until an element is available

Copyright © 2001–2015 The Apache Software Foundation. All rights reserved.