Class PredicatedSortedBag

  • All Implemented Interfaces:
    Serializable, Iterable, Collection, Bag, SortedBag

    public class PredicatedSortedBag
    extends PredicatedBag
    implements SortedBag
    Decorates another SortedBag to validate that additions match a specified predicate.

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

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

    SortedBag bag = PredicatedSortedBag.decorate(new TreeBag(), 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

      • PredicatedSortedBag

        protected PredicatedSortedBag​(SortedBag bag,
                                      Predicate predicate)
        Constructor that wraps (not copies).

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

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

      • decorate

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

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

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

        protected SortedBag getSortedBag()
        Gets the decorated sorted bag.
        Returns:
        the decorated bag
      • first

        public Object first()
        Description copied from interface: SortedBag
        Returns the first (lowest) member.
        Specified by:
        first in interface SortedBag
        Returns:
        the first element in the sorted bag
      • last

        public Object last()
        Description copied from interface: SortedBag
        Returns the last (highest) member.
        Specified by:
        last in interface SortedBag
        Returns:
        the last element in the sorted bag
      • comparator

        public Comparator comparator()
        Description copied from interface: SortedBag
        Returns the comparator associated with this sorted set, or null if it uses its elements' natural ordering.
        Specified by:
        comparator in interface SortedBag
        Returns:
        the comparator in use, or null if natural ordering