Class ObservableHashMap<K,V>

java.lang.Object
java.util.AbstractMap<K,V>
com.tangosol.util.SafeHashMap<K,V>
com.tangosol.util.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:
  • Field Details

    • m_listenerSupport

      protected transient MapListenerSupport m_listenerSupport
      The MapListenerSupport object.
  • Constructor Details

    • 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 Details

    • 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)