Class ObservableHashMap<K,​V>

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

    public class ObservableHashMap<K,​V>
    extends SafeHashMap<K,​V>
    implements ObservableMap<K,​V>
    An ObservableMap implementation that extends the SafeHashMap.

    This Map implements the ObservableMap interface, meaning it provides event notifications to any interested listener for each insert, update and delete.

    Author:
    cp 2002.02.12
    See Also:
    Serialized Form
    • Field Detail

      • m_listenerSupport

        protected transient MapListenerSupport m_listenerSupport
        The MapListenerSupport object.
    • Constructor Detail

      • ObservableHashMap

        public ObservableHashMap()
        Construct the ObservableHashMap.
      • ObservableHashMap

        public ObservableHashMap​(int cInitialBuckets,
                                 float flLoadFactor,
                                 float flGrowthRate)
        Construct an ObservableHashMap using the specified settings.
        Parameters:
        cInitialBuckets - the initial number of hash buckets, 0 < n
        flLoadFactor - the acceptable load factor before resizing occurs, 0 < n, such that a load factor of 1.0 causes resizing when the number of entries exceeds the number of buckets
        flGrowthRate - the rate of bucket growth when a resize occurs, 0 < n, such that a growth rate of 1.0 will double the number of buckets: bucketCount = bucketCount * (1 + growthRate)
    • Method Detail

      • put

        public V put​(K key,
                     V value)
        Store a value in the cache.
        Specified by:
        put in interface Map<K,​V>
        Overrides:
        put in class SafeHashMap<K,​V>
        Parameters:
        key - the key with which to associate the cache value
        value - the value to cache
        Returns:
        the value that was cached associated with that key, or null if no value was cached associated with that key
      • remove

        public V remove​(Object oKey)
        Remove an entry from the cache.
        Specified by:
        remove in interface Map<K,​V>
        Overrides:
        remove in class SafeHashMap<K,​V>
        Parameters:
        oKey - the key of a cached value
        Returns:
        the value that was cached associated with that key, or null if no value was cached associated with that key
      • clear

        public void clear()
        Remove everything from the cache, notifying any registered listeners.
        Specified by:
        clear in interface Map<K,​V>
        Overrides:
        clear in class SafeHashMap<K,​V>
      • addMapListener

        public void addMapListener​(MapListener listener)
        Description copied from interface: ObservableMap
        Add a standard map listener that will receive all events (inserts, updates, deletes) that occur against the map, with the key, old-value and new-value included. This has the same result as the following call:
           addMapListener(listener, (Filter) null, false);
         
        Specified by:
        addMapListener in interface ObservableMap<K,​V>
        Parameters:
        listener - the MapEvent listener to add
      • removeMapListener

        public void removeMapListener​(MapListener listener)
        Description copied from interface: ObservableMap
        Remove a standard map listener that previously signed up for all events. This has the same result as the following call:
           removeMapListener(listener, (Filter) null);
         
        Specified by:
        removeMapListener in interface ObservableMap<K,​V>
        Parameters:
        listener - the listener to remove
      • addMapListener

        public void addMapListener​(MapListener<? super K,​? super V> listener,
                                   K key,
                                   boolean fLite)
        Description copied from interface: ObservableMap
        Add a map listener for a specific key.

        The listeners will receive MapEvent objects, but if fLite is passed as true, they might not contain the OldValue and NewValue properties.

        To unregister the MapListener, use the ObservableMap.removeMapListener(MapListener, Object) method.

        Specified by:
        addMapListener in interface ObservableMap<K,​V>
        Parameters:
        listener - the MapEvent listener to add
        key - the key that identifies the entry for which to raise events
        fLite - true to indicate that the MapEvent objects do not have to include the OldValue and NewValue property values in order to allow optimizations
      • removeMapListener

        public void removeMapListener​(MapListener<? super K,​? super V> listener,
                                      K key)
        Description copied from interface: ObservableMap
        Remove a map listener that previously signed up for events about a specific key.
        Specified by:
        removeMapListener in interface ObservableMap<K,​V>
        Parameters:
        listener - the listener to remove
        key - the key that identifies the entry for which to raise events
      • addMapListener

        public void addMapListener​(MapListener<? super K,​? super V> listener,
                                   Filter filter,
                                   boolean fLite)
        Description copied from interface: ObservableMap
        Add a map listener that receives events based on a filter evaluation.

        The listeners will receive MapEvent objects, but if fLite is passed as true, they might not contain the OldValue and NewValue properties.

        To unregister the MapListener, use the ObservableMap.removeMapListener(MapListener, Filter) method.

        Specified by:
        addMapListener in interface ObservableMap<K,​V>
        Parameters:
        listener - the MapEvent listener to add
        filter - a filter that will be passed MapEvent objects to select from; a MapEvent will be delivered to the listener only if the filter evaluates to true for that MapEvent (see MapEventFilter); null is equivalent to a filter that alway returns true
        fLite - true to indicate that the MapEvent objects do not have to include the OldValue and NewValue property values in order to allow optimizations
      • removeMapListener

        public void removeMapListener​(MapListener<? super K,​? super V> listener,
                                      Filter filter)
        Description copied from interface: ObservableMap
        Remove a map listener that previously signed up for events based on a filter evaluation.
        Specified by:
        removeMapListener in interface ObservableMap<K,​V>
        Parameters:
        listener - the listener to remove
        filter - the filter that was passed into the corresponding addMapListener() call
      • truncate

        public void truncate()
        Removes all mappings from this map. Note: the removal of entries caused by this truncate operation will not be observable.
        Since:
        12.2.1.4
      • getMapListenerSupport

        protected MapListenerSupport getMapListenerSupport()
        Accessor for the MapListenerSupport for sub-classes.
        Returns:
        the MapListenerSupport, or null if there are no listeners
      • hasListeners

        protected boolean hasListeners()
        Determine if the OverflowMap has any listeners at all.
        Returns:
        true iff this OverflowMap has at least one MapListener
      • dispatchEvent

        protected void dispatchEvent​(MapEvent evt)
        Dispatch the passed event.
        Parameters:
        evt - a CacheEvent object
      • instantiateEntry

        protected SafeHashMap.Entry<K,​V> instantiateEntry()
        Factory method. This method exists to allow the Cache class to be easily inherited from by allowing the Entry class to be easily sub-classed.
        Overrides:
        instantiateEntry in class SafeHashMap<K,​V>
        Returns:
        an instance of Entry that holds the passed cache value
      • clear

        protected void clear​(boolean fTruncate)