Class TrackingMap<K,​V>

  • All Implemented Interfaces:
    Map<K,​V>

    public class TrackingMap<K,​V>
    extends Object
    implements Map<K,​V>
    TrackingMap
    Author:
    Sean Kellner
    Copyright (c) Cedar Software LLC

    Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
    • Constructor Detail

      • TrackingMap

        public TrackingMap​(Map<K,​V> map)
        Wrap the passed in Map with a TrackingMap.
        Parameters:
        map - Map to wrap
    • Method Detail

      • get

        public V get​(Object key)
        Specified by:
        get in interface Map<K,​V>
      • put

        public V put​(K key,
                     V value)
        Specified by:
        put in interface Map<K,​V>
      • containsKey

        public boolean containsKey​(Object key)
        Specified by:
        containsKey in interface Map<K,​V>
      • putAll

        public void putAll​(Map<? extends K,​? extends V> m)
        Specified by:
        putAll in interface Map<K,​V>
      • remove

        public V remove​(Object key)
        Specified by:
        remove in interface Map<K,​V>
      • size

        public int size()
        Specified by:
        size in interface Map<K,​V>
      • isEmpty

        public boolean isEmpty()
        Specified by:
        isEmpty in interface Map<K,​V>
      • clear

        public void clear()
        Specified by:
        clear in interface Map<K,​V>
      • keySet

        public Set<K> keySet()
        Specified by:
        keySet in interface Map<K,​V>
      • expungeUnused

        public void expungeUnused()
        Remove the entries from the Map that have not been accessed by .get() or .containsKey().
      • informAdditionalUsage

        public void informAdditionalUsage​(Collection<K> additional)
        Add the Collection of keys to the internal list of keys accessed. If there are keys in the passed in Map that are not included in the contained Map, the readKeys will exceed the keySet() of the wrapped Map.
        Parameters:
        additional - Collection of keys to add to the list of keys read.
      • informAdditionalUsage

        public void informAdditionalUsage​(TrackingMap<K,​V> additional)
        Add the used keys from the passed in TrackingMap to this TrackingMap's keysUsed. This can cause the readKeys to include entries that are not in wrapped Maps keys.
        Parameters:
        additional - TrackingMap whose used keys are to be added to this maps used keys.
      • keysUsed

        public Set<K> keysUsed()
        Fetch the Set of keys that have been accessed via .get() or .containsKey() of the contained Map.
        Returns:
        Set of the accessed (read) keys.
      • getWrappedMap

        public Map getWrappedMap()
        Fetch the Map that this TrackingMap wraps.
        Returns:
        Map the wrapped Map