Class AbstractSortedMapDecorator<K,​V>

  • Type Parameters:
    K - the type of the keys in the map
    V - the type of the values in the map
    All Implemented Interfaces:
    java.util.Map<K,​V>, java.util.SortedMap<K,​V>, Get<K,​V>, IterableGet<K,​V>, IterableMap<K,​V>, IterableSortedMap<K,​V>, OrderedMap<K,​V>, Put<K,​V>
    Direct Known Subclasses:
    FixedSizeSortedMap, UnmodifiableSortedMap

    public abstract class AbstractSortedMapDecorator<K,​V>
    extends AbstractMapDecorator<K,​V>
    implements IterableSortedMap<K,​V>
    Provides a base decorator that enables additional functionality to be added to a Map via decoration.

    Methods are forwarded directly to the decorated map.

    This implementation does not perform any special processing with the map views. Instead it simply returns the set/collection from the wrapped map. This may be undesirable, for example if you are trying to write a validating implementation it would provide a loophole around the validation. But, you might want that loophole, so this class is kept simple.

    Since:
    3.0
    • Constructor Detail

      • AbstractSortedMapDecorator

        public AbstractSortedMapDecorator​(java.util.SortedMap<K,​V> map)
        Constructor that wraps (not copies).
        Parameters:
        map - the map to decorate, must not be null
        Throws:
        java.lang.NullPointerException - if the map is null
    • Method Detail

      • comparator

        public java.util.Comparator<? super K> comparator()
        Specified by:
        comparator in interface java.util.SortedMap<K,​V>
      • firstKey

        public K firstKey()
        Description copied from interface: OrderedMap
        Gets the first key currently in this map.
        Specified by:
        firstKey in interface OrderedMap<K,​V>
        Specified by:
        firstKey in interface java.util.SortedMap<K,​V>
        Returns:
        the first key currently in this map
      • lastKey

        public K lastKey()
        Description copied from interface: OrderedMap
        Gets the last key currently in this map.
        Specified by:
        lastKey in interface OrderedMap<K,​V>
        Specified by:
        lastKey in interface java.util.SortedMap<K,​V>
        Returns:
        the last key currently in this map
      • subMap

        public java.util.SortedMap<K,​V> subMap​(K fromKey,
                                                     K toKey)
        Specified by:
        subMap in interface java.util.SortedMap<K,​V>
      • headMap

        public java.util.SortedMap<K,​V> headMap​(K toKey)
        Specified by:
        headMap in interface java.util.SortedMap<K,​V>
      • tailMap

        public java.util.SortedMap<K,​V> tailMap​(K fromKey)
        Specified by:
        tailMap in interface java.util.SortedMap<K,​V>
      • previousKey

        public K previousKey​(K key)
        Description copied from interface: OrderedMap
        Gets the previous key before the one specified.
        Specified by:
        previousKey in interface OrderedMap<K,​V>
        Parameters:
        key - the key to search for previous from
        Returns:
        the previous key, null if no match or at start
      • nextKey

        public K nextKey​(K key)
        Description copied from interface: OrderedMap
        Gets the next key after the one specified.
        Specified by:
        nextKey in interface OrderedMap<K,​V>
        Parameters:
        key - the key to search for next from
        Returns:
        the next key, null if no match or at end
      • mapIterator

        public OrderedMapIterator<K,​V> mapIterator()
        Obtains a MapIterator over the map.

        A map iterator is an efficient way of iterating over maps. There is no need to access the entry set or use Map Entry objects.

         IterableMap<String,Integer> map = new HashedMap<String,Integer>();
         MapIterator<String,Integer> it = map.mapIterator();
         while (it.hasNext()) {
           String key = it.next();
           Integer value = it.getValue();
           it.setValue(value + 1);
         }
         
        Specified by:
        mapIterator in interface IterableGet<K,​V>
        Specified by:
        mapIterator in interface OrderedMap<K,​V>
        Overrides:
        mapIterator in class AbstractIterableMap<K,​V>
        Returns:
        a map iterator