Class PredicatedBuffer

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

    public class PredicatedBuffer
    extends PredicatedCollection
    implements Buffer
    Decorates another Buffer to validate that additions match a specified predicate.

    This buffer exists to provide validation for the decorated buffer. It is normally created to decorate an empty buffer. If an object cannot be added to the buffer, an IllegalArgumentException is thrown.

    One usage would be to ensure that no null entries are added to the buffer.

    Buffer buffer = PredicatedBuffer.decorate(new UnboundedFifoBuffer(), NotNullPredicate.INSTANCE);

    This class is Serializable from Commons Collections 3.1.

    Since:
    Commons Collections 3.0
    Version:
    $Revision: 646777 $ $Date: 2008-04-10 14:33:15 +0200 (Thu, 10 Apr 2008) $
    Author:
    Stephen Colebourne, Paul Jack
    See Also:
    Serialized Form
    • Constructor Detail

      • PredicatedBuffer

        protected PredicatedBuffer​(Buffer buffer,
                                   Predicate predicate)
        Constructor that wraps (not copies).

        If there are any elements already in the collection being decorated, they are validated.

        Parameters:
        buffer - the buffer to decorate, must not be null
        predicate - the predicate to use for validation, must not be null
        Throws:
        IllegalArgumentException - if buffer or predicate is null
        IllegalArgumentException - if the buffer contains invalid elements
    • Method Detail

      • decorate

        public static Buffer decorate​(Buffer buffer,
                                      Predicate predicate)
        Factory method to create a predicated (validating) buffer.

        If there are any elements already in the buffer being decorated, they are validated.

        Parameters:
        buffer - the buffer to decorate, must not be null
        predicate - the predicate to use for validation, must not be null
        Returns:
        a new predicated Buffer
        Throws:
        IllegalArgumentException - if buffer or predicate is null
        IllegalArgumentException - if the buffer contains invalid elements
      • getBuffer

        protected Buffer getBuffer()
        Gets the buffer being decorated.
        Returns:
        the decorated buffer
      • get

        public Object get()
        Description copied from interface: Buffer
        Gets the next object from the buffer without removing it.
        Specified by:
        get in interface Buffer
        Returns:
        the next object in the buffer, which is not removed
      • remove

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