CoherenceTM v3.3
Copyright© 2000-2007 by Oracle Corporation

com.tangosol.util
Class ObservableHashMap

java.lang.Object
  extended by java.util.AbstractMap
      extended by com.tangosol.util.SafeHashMap
          extended by com.tangosol.util.ObservableHashMap
All Implemented Interfaces:
ObservableMap, Serializable, Cloneable, Map

public class ObservableHashMap
extends SafeHashMap
implements ObservableMap

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

Nested Class Summary
protected  class ObservableHashMap.Entry
          A holder for a cached value.
 
Nested classes/interfaces inherited from class com.tangosol.util.SafeHashMap
SafeHashMap.EntrySet, SafeHashMap.KeySet, SafeHashMap.ValuesCollection
 
Field Summary
protected  MapListenerSupport m_listenerSupport
          The MapListenerSupport object.
 
Fields inherited from class com.tangosol.util.SafeHashMap
BIGGEST_MODULO, DEFAULT_GROWTHRATE, DEFAULT_INITIALSIZE, DEFAULT_LOADFACTOR, m_aeBucket, m_cCapacity, m_cEntries, m_colValues, m_flGrowthRate, m_flLoadFactor, m_oIterActive, m_setEntries, m_setKeys, PRIME_MODULO, RESIZING
 
Constructor Summary
ObservableHashMap()
          Construct the ObservableHashMap.
ObservableHashMap(int cInitialBuckets, float flLoadFactor, float flGrowthRate)
          Construct an ObservableHashMap using the specified settings.
 
Method Summary
 void addMapListener(MapListener listener)
          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.
 void addMapListener(MapListener listener, Filter filter, boolean fLite)
          Add a map listener that receives events based on a filter evaluation.
 void addMapListener(MapListener listener, Object oKey, boolean fLite)
          Add a map listener for a specific key.
 void clear()
          Remove everything from the cache.
protected  void dispatchEvent(MapEvent evt)
          Dispatch the passed event.
protected  MapListenerSupport getMapListenerSupport()
          Accessor for the MapListenerSupport for sub-classes.
protected  boolean hasListeners()
          Determine if the OverflowMap has any listeners at all.
protected  SafeHashMap.Entry instantiateEntry()
          Factory method.
 Object remove(Object oKey)
          Remove an entry from the cache.
 void removeMapListener(MapListener listener)
          Remove a standard map listener that previously signed up for all events.
 void removeMapListener(MapListener listener, Filter filter)
          Remove a map listener that previously signed up for events based on a filter evaluation.
 void removeMapListener(MapListener listener, Object oKey)
          Remove a map listener that previously signed up for events about a specific key.
 
Methods inherited from class com.tangosol.util.SafeHashMap
clone, cloneEntryList, containsKey, entrySet, get, getBucketIndex, getEntry, getEntryInternal, getStableBucketArray, grow, instantiateEntrySet, instantiateKeySet, instantiateValuesCollection, isActiveIterator, isEmpty, iteratorActivated, iteratorDeactivated, keySet, put, removeEntryInternal, size, values
 
Methods inherited from class java.util.AbstractMap
containsValue, equals, hashCode, putAll, toString
 
Methods inherited from interface java.util.Map
containsKey, containsValue, entrySet, equals, get, hashCode, isEmpty, keySet, put, putAll, size, values
 

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

remove

public Object remove(Object oKey)
Remove an entry from the cache.

Specified by:
remove in interface Map
Overrides:
remove in class SafeHashMap
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.

Specified by:
clear in interface Map
Overrides:
clear in class SafeHashMap

addMapListener

public void addMapListener(MapListener listener)
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
Parameters:
listener - the MapEvent listener to add

removeMapListener

public void removeMapListener(MapListener listener)
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
Parameters:
listener - the listener to remove

addMapListener

public void addMapListener(MapListener listener,
                           Object oKey,
                           boolean fLite)
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
Parameters:
listener - the MapEvent listener to add
oKey - 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 listener,
                              Object oKey)
Remove a map listener that previously signed up for events about a specific key.

Specified by:
removeMapListener in interface ObservableMap
Parameters:
listener - the listener to remove
oKey - the key that identifies the entry for which to raise events

addMapListener

public void addMapListener(MapListener listener,
                           Filter filter,
                           boolean fLite)
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
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 listener,
                              Filter filter)
Remove a map listener that previously signed up for events based on a filter evaluation.

Specified by:
removeMapListener in interface ObservableMap
Parameters:
listener - the listener to remove
filter - the filter that was passed into the corresponding addMapListener() call

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 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
Returns:
an instance of Entry that holds the passed cache value

CoherenceTM v3.3
Copyright© 2000-2007 by Oracle Corporation