Class PredicatedSortedBag<E>

Type Parameters:
E - the type of elements in this bag
All Implemented Interfaces:
Serializable, Iterable<E>, Collection<E>, Bag<E>, SortedBag<E>

public class PredicatedSortedBag<E> extends PredicatedBag<E> implements SortedBag<E>
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.predicatedSortedBag(new TreeBag(), NotNullPredicate.INSTANCE);
 

This class is Serializable from Commons Collections 3.1.

Since:
3.0
See Also:
  • Constructor Details

    • PredicatedSortedBag

      protected PredicatedSortedBag(SortedBag<E> bag, Predicate<? super E> 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:
      NullPointerException - if bag or predicate is null
      IllegalArgumentException - if the bag contains invalid elements
  • Method Details

    • predicatedSortedBag

      public static <E> PredicatedSortedBag<E> predicatedSortedBag(SortedBag<E> bag, Predicate<? super E> predicate)
      Factory method to create a predicated (validating) bag.

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

      Type Parameters:
      E - the type of the elements in the bag
      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:
      NullPointerException - if bag or predicate is null
      IllegalArgumentException - if the bag contains invalid elements
      Since:
      4.0
    • comparator

      public Comparator<? super E> 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<E>
      Returns:
      the comparator in use, or null if natural ordering
    • decorated

      protected SortedBag<E> decorated()
      Gets the decorated sorted bag.
      Overrides:
      decorated in class PredicatedBag<E>
      Returns:
      the decorated bag
    • first

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

      public E last()
      Description copied from interface: SortedBag
      Returns the last (highest) member.
      Specified by:
      last in interface SortedBag<E>
      Returns:
      the last element in the sorted bag