Class BoundedBuffer

All Implemented Interfaces:
Serializable, Iterable, Collection, BoundedCollection, Buffer

@Deprecated(since="2021-04-30") public class BoundedBuffer extends SynchronizedBuffer implements BoundedCollection
Deprecated.
Apache Commons Collections version 3.x is being deprecated from AEMaaCS. The upgraded version 4.4 of Commons Collections is already included as replacement. Customers are advised to upgrade to this version of the library. Please note: the package name was changed to org.apache.commons.collections4. Further note that there are AEM APIs currently exposing the old collections classes; these will be updated in upcoming releases.
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
See Also:
  • Method Details

    • decorate

      public static BoundedBuffer decorate(Buffer buffer, int maximumSize)
      Deprecated.
      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)
      Deprecated.
      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
    • remove

      public Object remove()
      Deprecated.
      Description copied from interface: Buffer
      Gets and removes the next object from the buffer.
      Specified by:
      remove in interface Buffer
      Overrides:
      remove in class SynchronizedBuffer
      Returns:
      the next object in the buffer, which is also removed
    • add

      public boolean add(Object o)
      Deprecated.
      Specified by:
      add in interface Collection
      Overrides:
      add in class SynchronizedCollection
    • addAll

      public boolean addAll(Collection c)
      Deprecated.
      Specified by:
      addAll in interface Collection
      Overrides:
      addAll in class SynchronizedCollection
    • iterator

      public Iterator iterator()
      Deprecated.
      Description copied from class: SynchronizedCollection
      Iterators must be manually synchronized.
       synchronized (coll) {
         Iterator it = coll.iterator();
         // do stuff with iterator
       }
      Specified by:
      iterator in interface Collection
      Specified by:
      iterator in interface Iterable
      Overrides:
      iterator in class SynchronizedCollection
      Returns:
      an iterator that must be manually synchronized on the collection
    • isFull

      public boolean isFull()
      Deprecated.
      Description copied from interface: BoundedCollection
      Returns true if this collection is full and no new elements can be added.
      Specified by:
      isFull in interface BoundedCollection
      Returns:
      true if the collection is full
    • maxSize

      public int maxSize()
      Deprecated.
      Description copied from interface: BoundedCollection
      Gets the maximum size of the collection (the bound).
      Specified by:
      maxSize in interface BoundedCollection
      Returns:
      the maximum number of elements the collection can hold