net.infonode.properties.propertymap
Class PropertyMapWeakListenerManager

java.lang.Object
  extended by net.infonode.properties.propertymap.PropertyMapWeakListenerManager

public class PropertyMapWeakListenerManager
extends java.lang.Object

Handles weak PropertyMap listeners which are garbage collected and removed from the PropertyMap object on which it listens when there are no strong or soft references to the listeners.

Since:
IDW 1.2.0
Version:
$Revision: 1.8 $
Author:
$Author: jesper $

Nested Class Summary
private static class PropertyMapWeakListenerManager.ListenerRef
           
private static class PropertyMapWeakListenerManager.MapListenerRef
           
private static class PropertyMapWeakListenerManager.PropertyChangeListenerRef
           
private static class PropertyMapWeakListenerManager.TreeListenerRef
           
 
Field Summary
private static java.util.WeakHashMap listenerMap
           
private static java.util.WeakHashMap propertyChangeListenerMap
           
private static PropertyMapWeakListenerManager.ListenerRef ref
           
private static java.lang.ref.ReferenceQueue refQueue
           
private static java.lang.Runnable refRemover
           
private static java.util.WeakHashMap treeListenerMap
           
 
Constructor Summary
private PropertyMapWeakListenerManager()
           
 
Method Summary
private static void addToMap(java.util.WeakHashMap map, java.lang.Object key, java.lang.Object value)
           
static void addWeakListener(PropertyMap map, PropertyMapListener listener)
          Adds a weak listener to a PropertyMap.
static void addWeakPropertyChangeListener(PropertyMap map, Property property, PropertyChangeListener listener)
          Adds a weak property change listener to a PropertyMap.
static void addWeakTreeListener(PropertyMap map, PropertyMapTreeListener listener)
          Adds a weak tree listener to a PropertyMap.
private static void removeFromMap(java.util.WeakHashMap map, java.lang.Object key, PropertyMap propertyMap)
           
private static void removeFromMap(java.util.WeakHashMap map, java.lang.Object key, PropertyMap propertyMap, Property property)
           
static void removeWeakListener(PropertyMap map, PropertyMapListener listener)
          Removes a listener previously added with addWeakListener(PropertyMap, PropertyMapListener).
static void removeWeakPropertyChangeListener(PropertyMap map, Property property, PropertyChangeListener listener)
          Removes a listener previously added with addWeakPropertyChangeListener(PropertyMap, net.infonode.properties.base.Property, net.infonode.properties.util.PropertyChangeListener).
static void removeWeakTreeListener(PropertyMap map, PropertyMapTreeListener listener)
          Removes a listener previously added with addWeakTreeListener(PropertyMap, PropertyMapTreeListener).
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

listenerMap

private static java.util.WeakHashMap listenerMap

propertyChangeListenerMap

private static java.util.WeakHashMap propertyChangeListenerMap

treeListenerMap

private static java.util.WeakHashMap treeListenerMap

refQueue

private static java.lang.ref.ReferenceQueue refQueue

ref

private static PropertyMapWeakListenerManager.ListenerRef ref

refRemover

private static java.lang.Runnable refRemover
Constructor Detail

PropertyMapWeakListenerManager

private PropertyMapWeakListenerManager()
Method Detail

addToMap

private static void addToMap(java.util.WeakHashMap map,
                             java.lang.Object key,
                             java.lang.Object value)

removeFromMap

private static void removeFromMap(java.util.WeakHashMap map,
                                  java.lang.Object key,
                                  PropertyMap propertyMap)

removeFromMap

private static void removeFromMap(java.util.WeakHashMap map,
                                  java.lang.Object key,
                                  PropertyMap propertyMap,
                                  Property property)

addWeakListener

public static void addWeakListener(PropertyMap map,
                                   PropertyMapListener listener)
Adds a weak listener to a PropertyMap.

Parameters:
map - the PropertyMap
listener - the listener

addWeakPropertyChangeListener

public static void addWeakPropertyChangeListener(PropertyMap map,
                                                 Property property,
                                                 PropertyChangeListener listener)
Adds a weak property change listener to a PropertyMap.

Parameters:
map - the PropertyMap
property - the property to listen to changes on
listener - the listener

addWeakTreeListener

public static void addWeakTreeListener(PropertyMap map,
                                       PropertyMapTreeListener listener)
Adds a weak tree listener to a PropertyMap.

Parameters:
map - the PropertyMap
listener - the listener

removeWeakListener

public static void removeWeakListener(PropertyMap map,
                                      PropertyMapListener listener)
Removes a listener previously added with addWeakListener(PropertyMap, PropertyMapListener).

Parameters:
map - the map on which the listener was added
listener - the listener

removeWeakPropertyChangeListener

public static void removeWeakPropertyChangeListener(PropertyMap map,
                                                    Property property,
                                                    PropertyChangeListener listener)
Removes a listener previously added with addWeakPropertyChangeListener(PropertyMap, net.infonode.properties.base.Property, net.infonode.properties.util.PropertyChangeListener).

Parameters:
map - the map on which the listener was added
property - the property on which the listener listens to changes
listener - the listener

removeWeakTreeListener

public static void removeWeakTreeListener(PropertyMap map,
                                          PropertyMapTreeListener listener)
Removes a listener previously added with addWeakTreeListener(PropertyMap, PropertyMapTreeListener).

Parameters:
map - the map on which the listener was added
listener - the listener