|
||||||||||
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.ForwardingMap<K,V> com.google.common.collect.ForwardingSortedMap<K,V> com.google.common.collect.ForwardingNavigableMap<K,V>
@Beta public abstract class ForwardingNavigableMap<K,V>
A navigable map which forwards all its method calls to another navigable map. Subclasses should override one or more methods to modify the behavior of the backing map as desired per the decorator pattern.
Warning: The methods of ForwardingNavigableMap
forward indiscriminately
to the methods of the delegate. For example, overriding ForwardingMap.put(K, V)
alone will not
change the behavior of ForwardingMap.putAll(java.util.Map extends K, ? extends V>)
, which can lead to unexpected behavior. In this case, you
should override putAll
as well, either providing your own implementation, or delegating
to the provided standardPutAll
method.
Each of the standard
methods uses the map'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 Map
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 |
ForwardingNavigableMap.StandardDescendingMap
A sensible implementation of NavigableMap.descendingMap() in terms of the methods of
this NavigableMap . |
protected class |
ForwardingNavigableMap.StandardNavigableKeySet
A sensible implementation of NavigableMap.navigableKeySet() in terms of the methods of
this NavigableMap . |
Nested classes/interfaces inherited from class com.google.common.collect.ForwardingMap |
---|
ForwardingMap.StandardEntrySet, ForwardingMap.StandardKeySet, ForwardingMap.StandardValues |
Nested classes/interfaces inherited from interface java.util.Map |
---|
Map.Entry<K,V> |
Constructor Summary | |
---|---|
protected |
ForwardingNavigableMap()
Constructor for use by subclasses. |
Method Summary | |
---|---|
Map.Entry<K,V> |
ceilingEntry(K key)
|
K |
ceilingKey(K key)
|
protected abstract NavigableMap<K,V> |
delegate()
Returns the backing delegate instance that methods are forwarded to. |
NavigableSet<K> |
descendingKeySet()
|
NavigableMap<K,V> |
descendingMap()
|
Map.Entry<K,V> |
firstEntry()
|
Map.Entry<K,V> |
floorEntry(K key)
|
K |
floorKey(K key)
|
NavigableMap<K,V> |
headMap(K toKey,
boolean inclusive)
|
Map.Entry<K,V> |
higherEntry(K key)
|
K |
higherKey(K key)
|
Map.Entry<K,V> |
lastEntry()
|
Map.Entry<K,V> |
lowerEntry(K key)
|
K |
lowerKey(K key)
|
NavigableSet<K> |
navigableKeySet()
|
Map.Entry<K,V> |
pollFirstEntry()
|
Map.Entry<K,V> |
pollLastEntry()
|
protected Map.Entry<K,V> |
standardCeilingEntry(K key)
A sensible definition of ceilingEntry(K) in terms of the firstEntry() of
tailMap(Object, boolean) . |
protected K |
standardCeilingKey(K key)
A sensible definition of ceilingKey(K) in terms of ceilingEntry . |
protected NavigableSet<K> |
standardDescendingKeySet()
A sensible definition of descendingKeySet() as the navigableKeySet of
descendingMap() . |
protected Map.Entry<K,V> |
standardFirstEntry()
A sensible definition of firstEntry() in terms of the iterator() of
ForwardingMap.entrySet() . |
protected K |
standardFirstKey()
A sensible definition of ForwardingSortedMap.firstKey() in terms of firstEntry . |
protected Map.Entry<K,V> |
standardFloorEntry(K key)
A sensible definition of floorEntry(K) in terms of the lastEntry() of
headMap(Object, boolean) . |
protected K |
standardFloorKey(K key)
A sensible definition of floorKey(K) in terms of floorEntry . |
protected SortedMap<K,V> |
standardHeadMap(K toKey)
A sensible definition of ForwardingSortedMap.headMap(Object) in terms of
headMap(Object, boolean) . |
protected Map.Entry<K,V> |
standardHigherEntry(K key)
A sensible definition of higherEntry(K) in terms of the firstEntry() of
tailMap(Object, boolean) . |
protected K |
standardHigherKey(K key)
A sensible definition of higherKey(K) in terms of higherEntry . |
protected Map.Entry<K,V> |
standardLastEntry()
A sensible definition of lastEntry() in terms of the iterator() of the
ForwardingMap.entrySet() of descendingMap() . |
protected K |
standardLastKey()
A sensible definition of ForwardingSortedMap.lastKey() in terms of lastEntry . |
protected Map.Entry<K,V> |
standardLowerEntry(K key)
A sensible definition of lowerEntry(K) in terms of the lastEntry() of
headMap(Object, boolean) . |
protected K |
standardLowerKey(K key)
A sensible definition of lowerKey(K) in terms of lowerEntry . |
protected Map.Entry<K,V> |
standardPollFirstEntry()
A sensible definition of pollFirstEntry() in terms of the iterator of
entrySet . |
protected Map.Entry<K,V> |
standardPollLastEntry()
A sensible definition of pollFirstEntry() in terms of the iterator of the
entrySet of descendingMap . |
protected SortedMap<K,V> |
standardSubMap(K fromKey,
K toKey)
A sensible definition of ForwardingSortedMap.subMap(Object, Object) in terms of
subMap(Object, boolean, Object, boolean) . |
protected SortedMap<K,V> |
standardTailMap(K fromKey)
A sensible definition of ForwardingSortedMap.tailMap(Object) in terms of
tailMap(Object, boolean) . |
NavigableMap<K,V> |
subMap(K fromKey,
boolean fromInclusive,
K toKey,
boolean toInclusive)
|
NavigableMap<K,V> |
tailMap(K fromKey,
boolean inclusive)
|
Methods inherited from class com.google.common.collect.ForwardingSortedMap |
---|
comparator, firstKey, headMap, lastKey, standardContainsKey, standardRemove, subMap, tailMap |
Methods inherited from class com.google.common.collect.ForwardingMap |
---|
clear, containsKey, containsValue, entrySet, equals, get, hashCode, isEmpty, keySet, put, putAll, remove, size, standardClear, standardContainsValue, standardEquals, standardHashCode, standardIsEmpty, standardPutAll, standardToString, values |
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.NavigableMap |
---|
headMap, subMap, tailMap |
Methods inherited from interface java.util.SortedMap |
---|
comparator, entrySet, firstKey, keySet, lastKey, values |
Methods inherited from interface java.util.Map |
---|
clear, containsKey, containsValue, equals, get, hashCode, isEmpty, put, putAll, remove, size |
Constructor Detail |
---|
protected ForwardingNavigableMap()
Method Detail |
---|
protected abstract NavigableMap<K,V> delegate()
ForwardingObject
ForwardingSet.delegate()
. Concrete subclasses override this method to supply
the instance being decorated.
delegate
in class ForwardingSortedMap<K,V>
public Map.Entry<K,V> lowerEntry(K key)
lowerEntry
in interface NavigableMap<K,V>
protected Map.Entry<K,V> standardLowerEntry(K key)
lowerEntry(K)
in terms of the lastEntry()
of
headMap(Object, boolean)
. If you override headMap
, you may wish to override
lowerEntry
to forward to this implementation.
public K lowerKey(K key)
lowerKey
in interface NavigableMap<K,V>
protected K standardLowerKey(K key)
lowerKey(K)
in terms of lowerEntry
. If you override
lowerEntry(K)
, you may wish to override lowerKey
to forward to this
implementation.
public Map.Entry<K,V> floorEntry(K key)
floorEntry
in interface NavigableMap<K,V>
protected Map.Entry<K,V> standardFloorEntry(K key)
floorEntry(K)
in terms of the lastEntry()
of
headMap(Object, boolean)
. If you override headMap
, you may wish to override
floorEntry
to forward to this implementation.
public K floorKey(K key)
floorKey
in interface NavigableMap<K,V>
protected K standardFloorKey(K key)
floorKey(K)
in terms of floorEntry
. If you override
floorEntry
, you may wish to override floorKey
to forward to this
implementation.
public Map.Entry<K,V> ceilingEntry(K key)
ceilingEntry
in interface NavigableMap<K,V>
protected Map.Entry<K,V> standardCeilingEntry(K key)
ceilingEntry(K)
in terms of the firstEntry()
of
tailMap(Object, boolean)
. If you override tailMap
, you may wish to override
ceilingEntry
to forward to this implementation.
public K ceilingKey(K key)
ceilingKey
in interface NavigableMap<K,V>
protected K standardCeilingKey(K key)
ceilingKey(K)
in terms of ceilingEntry
. If you override
ceilingEntry
, you may wish to override ceilingKey
to forward to this
implementation.
public Map.Entry<K,V> higherEntry(K key)
higherEntry
in interface NavigableMap<K,V>
protected Map.Entry<K,V> standardHigherEntry(K key)
higherEntry(K)
in terms of the firstEntry()
of
tailMap(Object, boolean)
. If you override tailMap
, you may wish to override
higherEntry
to forward to this implementation.
public K higherKey(K key)
higherKey
in interface NavigableMap<K,V>
protected K standardHigherKey(K key)
higherKey(K)
in terms of higherEntry
. If you override
higherEntry
, you may wish to override higherKey
to forward to this
implementation.
public Map.Entry<K,V> firstEntry()
firstEntry
in interface NavigableMap<K,V>
protected Map.Entry<K,V> standardFirstEntry()
firstEntry()
in terms of the iterator()
of
ForwardingMap.entrySet()
. If you override entrySet
, you may wish to override
firstEntry
to forward to this implementation.
protected K standardFirstKey()
ForwardingSortedMap.firstKey()
in terms of firstEntry
. If you override
firstEntry
, you may wish to override firstKey
to forward to this
implementation.
public Map.Entry<K,V> lastEntry()
lastEntry
in interface NavigableMap<K,V>
protected Map.Entry<K,V> standardLastEntry()
lastEntry()
in terms of the iterator()
of the
ForwardingMap.entrySet()
of descendingMap()
. If you override descendingMap
, you may
wish to override lastEntry
to forward to this implementation.
protected K standardLastKey()
ForwardingSortedMap.lastKey()
in terms of lastEntry
. If you override
lastEntry
, you may wish to override lastKey
to forward to this implementation.
public Map.Entry<K,V> pollFirstEntry()
pollFirstEntry
in interface NavigableMap<K,V>
protected Map.Entry<K,V> standardPollFirstEntry()
pollFirstEntry()
in terms of the iterator
of
entrySet
. If you override entrySet
, you may wish to override
pollFirstEntry
to forward to this implementation.
public Map.Entry<K,V> pollLastEntry()
pollLastEntry
in interface NavigableMap<K,V>
protected Map.Entry<K,V> standardPollLastEntry()
pollFirstEntry()
in terms of the iterator
of the
entrySet
of descendingMap
. If you override descendingMap
, you may wish
to override pollFirstEntry
to forward to this implementation.
public NavigableMap<K,V> descendingMap()
descendingMap
in interface NavigableMap<K,V>
public NavigableSet<K> navigableKeySet()
navigableKeySet
in interface NavigableMap<K,V>
public NavigableSet<K> descendingKeySet()
descendingKeySet
in interface NavigableMap<K,V>
protected NavigableSet<K> standardDescendingKeySet()
descendingKeySet()
as the navigableKeySet
of
descendingMap()
. (The ForwardingNavigableMap.StandardDescendingMap
implementation implements
navigableKeySet
on its own, so as not to cause an infinite loop.) If you override
descendingMap
, you may wish to override descendingKeySet
to forward to this
implementation.
protected SortedMap<K,V> standardSubMap(K fromKey, K toKey)
ForwardingSortedMap.subMap(Object, Object)
in terms of
subMap(Object, boolean, Object, boolean)
. If you override
subMap(K, boolean, K, boolean)
, you may wish to override subMap
to forward to
this implementation.
standardSubMap
in class ForwardingSortedMap<K,V>
public NavigableMap<K,V> subMap(K fromKey, boolean fromInclusive, K toKey, boolean toInclusive)
subMap
in interface NavigableMap<K,V>
public NavigableMap<K,V> headMap(K toKey, boolean inclusive)
headMap
in interface NavigableMap<K,V>
public NavigableMap<K,V> tailMap(K fromKey, boolean inclusive)
tailMap
in interface NavigableMap<K,V>
protected SortedMap<K,V> standardHeadMap(K toKey)
ForwardingSortedMap.headMap(Object)
in terms of
headMap(Object, boolean)
. If you override headMap(K, boolean)
, you may wish
to override headMap
to forward to this implementation.
protected SortedMap<K,V> standardTailMap(K fromKey)
ForwardingSortedMap.tailMap(Object)
in terms of
tailMap(Object, boolean)
. If you override tailMap(K, boolean)
, you may wish
to override tailMap
to forward to this implementation.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |