Class PredicatedNavigableSet<E>

  • All Implemented Interfaces:
    Serializable, Iterable<E>, Collection<E>, NavigableSet<E>, Set<E>, SortedSet<E>


    public class PredicatedNavigableSet<E>
    extends PredicatedSortedSet<E>
    implements NavigableSet<E>
    Decorates another NavigableSet to validate that all additions match a specified predicate.

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

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

     NavigableSet set =
       PredicatedSortedSet.predicatedNavigableSet(new TreeSet(),
                                                  NotNullPredicate.notNullPredicate());
     
    Since:
    4.1
    See Also:
    Serialized Form
    • Constructor Detail

      • PredicatedNavigableSet

        protected PredicatedNavigableSet(NavigableSet<E> set,
                                         Predicate<? super E> predicate)
        Constructor that wraps (not copies).

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

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

      • predicatedNavigableSet

        public static <E> PredicatedNavigableSet<E> predicatedNavigableSet(NavigableSet<E> set,
                                                                           Predicate<? super E> predicate)
        Factory method to create a predicated (validating) navigable set.

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

        Type Parameters:
        E - the element type
        Parameters:
        set - the set to decorate, must not be null
        predicate - the predicate to use for validation, must not be null
        Returns:
        a new predicated navigable set.
        Throws:
        NullPointerException - if set or predicate is null
        IllegalArgumentException - if the set contains invalid elements
        Since:
        4.0
      • lower

        public E lower(E e)
      • floor

        public E floor(E e)
      • ceiling

        public E ceiling(E e)
      • higher

        public E higher(E e)
      • pollFirst

        public E pollFirst()
      • pollLast

        public E pollLast()
      • descendingIterator

        public Iterator<E> descendingIterator()
      • subSet

        public NavigableSet<E> subSet(E fromElement,
                                      boolean fromInclusive,
                                      E toElement,
                                      boolean toInclusive)
      • headSet

        public NavigableSet<E> headSet(E toElement,
                                       boolean inclusive)
      • tailSet

        public NavigableSet<E> tailSet(E fromElement,
                                       boolean inclusive)