|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.google.common.collect.ForwardingObject com.google.common.collect.ForwardingCollection<E> com.google.common.collect.ForwardingSet<E> com.google.common.collect.ForwardingSortedSet<E> com.google.common.collect.ForwardingNavigableSet<E>
@Beta public abstract class ForwardingNavigableSet<E>
A navigable set which forwards all its method calls to another navigable set. Subclasses should override one or more methods to modify the behavior of the backing set as desired per the decorator pattern.
Warning: The methods of ForwardingNavigableSet
forward indiscriminately
to the methods of the delegate. For example, overriding ForwardingCollection.add(E)
alone will not
change the behavior of ForwardingCollection.addAll(java.util.Collection extends E>)
, which can lead to unexpected behavior. In this case, you
should override addAll
as well, either providing your own implementation, or delegating
to the provided standardAddAll
method.
Each of the standard
methods uses the set's comparator (or the natural ordering of
the elements, if there is no comparator) to test element equality. As a result, if the
comparator is not consistent with equals, some of the standard implementations may violate the
Set
contract.
The standard
methods and the collection views they return are not guaranteed to be
thread-safe, even when all of the methods that they depend on are thread-safe.
Nested Class Summary | |
---|---|
protected class |
ForwardingNavigableSet.StandardDescendingSet
A sensible implementation of NavigableSet.descendingSet() in terms of the other methods
of NavigableSet , notably including NavigableSet.descendingIterator() . |
Constructor Summary | |
---|---|
protected |
ForwardingNavigableSet()
Constructor for use by subclasses. |
Method Summary | |
---|---|
E |
ceiling(E e)
|
protected abstract NavigableSet<E> |
delegate()
Returns the backing delegate instance that methods are forwarded to. |
Iterator<E> |
descendingIterator()
|
NavigableSet<E> |
descendingSet()
|
E |
floor(E e)
|
NavigableSet<E> |
headSet(E toElement,
boolean inclusive)
|
E |
higher(E e)
|
E |
lower(E e)
|
E |
pollFirst()
|
E |
pollLast()
|
protected E |
standardCeiling(E e)
A sensible definition of ceiling(E) in terms of the iterator method of
tailSet(Object, boolean) . |
protected E |
standardFirst()
|
protected E |
standardFloor(E e)
A sensible definition of floor(E) in terms of the descendingIterator method of
headSet(Object, boolean) . |
protected SortedSet<E> |
standardHeadSet(E toElement)
A sensible definition of ForwardingSortedSet.headSet(Object) in terms of the
headSet(Object, boolean) method. |
protected E |
standardHigher(E e)
A sensible definition of higher(E) in terms of the iterator method of
tailSet(Object, boolean) . |
protected E |
standardLast()
|
protected E |
standardLower(E e)
A sensible definition of lower(E) in terms of the descendingIterator method of
headSet(Object, boolean) . |
protected E |
standardPollFirst()
A sensible definition of pollFirst() in terms of the iterator method. |
protected E |
standardPollLast()
A sensible definition of pollLast() in terms of the descendingIterator method. |
protected NavigableSet<E> |
standardSubSet(E fromElement,
boolean fromInclusive,
E toElement,
boolean toInclusive)
A sensible definition of subSet(Object, boolean, Object, boolean) in terms of the
headSet and tailSet methods. |
protected SortedSet<E> |
standardSubSet(E fromElement,
E toElement)
A sensible definition of ForwardingSortedSet.subSet(Object, Object) in terms of the
subSet(Object, boolean, Object, boolean) method. |
protected SortedSet<E> |
standardTailSet(E fromElement)
A sensible definition of ForwardingSortedSet.tailSet(Object) in terms of the
tailSet(Object, boolean) method. |
NavigableSet<E> |
subSet(E fromElement,
boolean fromInclusive,
E toElement,
boolean toInclusive)
|
NavigableSet<E> |
tailSet(E fromElement,
boolean inclusive)
|
Methods inherited from class com.google.common.collect.ForwardingSortedSet |
---|
comparator, first, headSet, last, standardContains, standardRemove, subSet, tailSet |
Methods inherited from class com.google.common.collect.ForwardingSet |
---|
equals, hashCode, standardEquals, standardHashCode, standardRemoveAll |
Methods inherited from class com.google.common.collect.ForwardingCollection |
---|
add, addAll, clear, contains, containsAll, isEmpty, iterator, remove, removeAll, retainAll, size, standardAddAll, standardClear, standardContainsAll, standardIsEmpty, standardRetainAll, standardToArray, standardToArray, standardToString, toArray, toArray |
Methods inherited from class com.google.common.collect.ForwardingObject |
---|
toString |
Methods inherited from class java.lang.Object |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
Methods inherited from interface java.util.NavigableSet |
---|
headSet, iterator, subSet, tailSet |
Methods inherited from interface java.util.SortedSet |
---|
comparator, first, last |
Methods inherited from interface java.util.Set |
---|
add, addAll, clear, contains, containsAll, equals, hashCode, isEmpty, remove, removeAll, retainAll, size, toArray, toArray |
Constructor Detail |
---|
protected ForwardingNavigableSet()
Method Detail |
---|
protected abstract NavigableSet<E> delegate()
ForwardingObject
ForwardingSet.delegate()
. Concrete subclasses override this method to supply
the instance being decorated.
delegate
in class ForwardingSortedSet<E>
public E lower(E e)
lower
in interface NavigableSet<E>
protected E standardLower(E e)
lower(E)
in terms of the descendingIterator
method of
headSet(Object, boolean)
. If you override headSet(Object, boolean)
, you may
wish to override lower(E)
to forward to this implementation.
public E floor(E e)
floor
in interface NavigableSet<E>
protected E standardFloor(E e)
floor(E)
in terms of the descendingIterator
method of
headSet(Object, boolean)
. If you override headSet(Object, boolean)
, you may
wish to override floor(E)
to forward to this implementation.
public E ceiling(E e)
ceiling
in interface NavigableSet<E>
protected E standardCeiling(E e)
ceiling(E)
in terms of the iterator
method of
tailSet(Object, boolean)
. If you override tailSet(Object, boolean)
, you may
wish to override ceiling(E)
to forward to this implementation.
public E higher(E e)
higher
in interface NavigableSet<E>
protected E standardHigher(E e)
higher(E)
in terms of the iterator
method of
tailSet(Object, boolean)
. If you override tailSet(Object, boolean)
, you may
wish to override higher(E)
to forward to this implementation.
public E pollFirst()
pollFirst
in interface NavigableSet<E>
protected E standardPollFirst()
pollFirst()
in terms of the iterator
method. If you
override ForwardingCollection.iterator()
you may wish to override pollFirst()
to forward to this
implementation.
public E pollLast()
pollLast
in interface NavigableSet<E>
protected E standardPollLast()
pollLast()
in terms of the descendingIterator
method.
If you override descendingIterator()
you may wish to override pollLast()
to
forward to this implementation.
protected E standardFirst()
protected E standardLast()
public NavigableSet<E> descendingSet()
descendingSet
in interface NavigableSet<E>
public Iterator<E> descendingIterator()
descendingIterator
in interface NavigableSet<E>
public NavigableSet<E> subSet(E fromElement, boolean fromInclusive, E toElement, boolean toInclusive)
subSet
in interface NavigableSet<E>
protected NavigableSet<E> standardSubSet(E fromElement, boolean fromInclusive, E toElement, boolean toInclusive)
subSet(Object, boolean, Object, boolean)
in terms of the
headSet
and tailSet
methods. In many cases, you may wish to override
subSet(Object, boolean, Object, boolean)
to forward to this implementation.
protected SortedSet<E> standardSubSet(E fromElement, E toElement)
ForwardingSortedSet.subSet(Object, Object)
in terms of the
subSet(Object, boolean, Object, boolean)
method. If you override
subSet(Object, boolean, Object, boolean)
, you may wish to override
ForwardingSortedSet.subSet(Object, Object)
to forward to this implementation.
standardSubSet
in class ForwardingSortedSet<E>
public NavigableSet<E> headSet(E toElement, boolean inclusive)
headSet
in interface NavigableSet<E>
protected SortedSet<E> standardHeadSet(E toElement)
ForwardingSortedSet.headSet(Object)
in terms of the
headSet(Object, boolean)
method. If you override
headSet(Object, boolean)
, you may wish to override
ForwardingSortedSet.headSet(Object)
to forward to this implementation.
public NavigableSet<E> tailSet(E fromElement, boolean inclusive)
tailSet
in interface NavigableSet<E>
protected SortedSet<E> standardTailSet(E fromElement)
ForwardingSortedSet.tailSet(Object)
in terms of the
tailSet(Object, boolean)
method. If you override
tailSet(Object, boolean)
, you may wish to override
ForwardingSortedSet.tailSet(Object)
to forward to this implementation.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |