Class ForwardingNavigableMap<K,V>

  • All Implemented Interfaces:
    Map<K,V>, NavigableMap<K,V>, SortedMap<K,V>


    public abstract class ForwardingNavigableMap<K,V>
    extends ForwardingSortedMap<K,V>
    implements NavigableMap<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.

    Since:
    12.0
    • Constructor Detail

      • ForwardingNavigableMap

        protected ForwardingNavigableMap()
        Constructor for use by subclasses.
    • Method Detail

      • delegate

        protected abstract NavigableMap<K,V> delegate()
        Description copied from class: ForwardingObject
        Returns the backing delegate instance that methods are forwarded to. Abstract subclasses generally override this method with an abstract method that has a more specific return type, such as ForwardingSet.delegate(). Concrete subclasses override this method to supply the instance being decorated.
      • standardLowerEntry

        protected Map.Entry<K,V> standardLowerEntry(K key)
        A sensible definition of 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.
      • lowerKey

        public K lowerKey(K key)
      • standardLowerKey

        protected K standardLowerKey(K key)
        A sensible definition of lowerKey(K) in terms of lowerEntry. If you override lowerEntry(K), you may wish to override lowerKey to forward to this implementation.
      • standardFloorEntry

        protected Map.Entry<K,V> standardFloorEntry(K key)
        A sensible definition of 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.
      • floorKey

        public K floorKey(K key)
      • standardFloorKey

        protected K standardFloorKey(K key)
        A sensible definition of floorKey(K) in terms of floorEntry. If you override floorEntry, you may wish to override floorKey to forward to this implementation.
      • standardCeilingEntry

        protected Map.Entry<K,V> standardCeilingEntry(K key)
        A sensible definition of 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.
      • ceilingKey

        public K ceilingKey(K key)
      • standardCeilingKey

        protected K standardCeilingKey(K key)
        A sensible definition of ceilingKey(K) in terms of ceilingEntry. If you override ceilingEntry, you may wish to override ceilingKey to forward to this implementation.
      • standardHigherEntry

        protected Map.Entry<K,V> standardHigherEntry(K key)
        A sensible definition of 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.
      • higherKey

        public K higherKey(K key)
      • standardHigherKey

        protected K standardHigherKey(K key)
        A sensible definition of higherKey(K) in terms of higherEntry. If you override higherEntry, you may wish to override higherKey to forward to this implementation.
      • standardFirstEntry

        protected Map.Entry<K,V> standardFirstEntry()
        A sensible definition of firstEntry() in terms of the iterator() of ForwardingMap.entrySet(). If you override entrySet, you may wish to override firstEntry to forward to this implementation.
      • standardFirstKey

        protected K standardFirstKey()
        A sensible definition of ForwardingSortedMap.firstKey() in terms of firstEntry. If you override firstEntry, you may wish to override firstKey to forward to this implementation.
      • standardLastKey

        protected K standardLastKey()
        A sensible definition of ForwardingSortedMap.lastKey() in terms of lastEntry. If you override lastEntry, you may wish to override lastKey to forward to this implementation.
      • pollFirstEntry

        public Map.Entry<K,V> pollFirstEntry()
      • standardPollFirstEntry

        protected Map.Entry<K,V> standardPollFirstEntry()
        A sensible definition of pollFirstEntry() in terms of the iterator of entrySet. If you override entrySet, you may wish to override pollFirstEntry to forward to this implementation.
      • standardPollLastEntry

        protected Map.Entry<K,V> standardPollLastEntry()
        A sensible definition of 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.
      • subMap

        public NavigableMap<K,V> subMap(K fromKey,
                                        boolean fromInclusive,
                                        K toKey,
                                        boolean toInclusive)
      • tailMap

        public NavigableMap<K,V> tailMap(K fromKey,
                                         boolean inclusive)