Class ObservableMap<K,V>

java.lang.Object
com.norconex.commons.lang.map.ObservableMap<K,V>
Type Parameters:
K - the type of keys maintained by the map we are observing
V - the type of mapped values
All Implemented Interfaces:
Map<K,V>
Direct Known Subclasses:
Properties

public class ObservableMap<K,V> extends Object implements Map<K,V>
A map implementation that reports changes to added MapChangeListener instance. Changes are triggered when a value change is detected in the following method calls: put(Object, Object), putAll(Map), remove(Object), and clear(). This class will not detect changes made to key or value objects modified outside this class. This class can be used as a decorator to other Map implementations.
Since:
1.4
  • Constructor Details

    • ObservableMap

      public ObservableMap()
    • ObservableMap

      public ObservableMap(Map<K,V> map)
      Decorates map argument as an ObservableMap.
      Parameters:
      map - the Map to decorate
  • Method Details

    • addMapChangeListener

      public void addMapChangeListener(MapChangeListener<K,V> listener)
      Adds a map change listener.
      Parameters:
      listener - change listener
    • removeMapChangeListener

      public void removeMapChangeListener(MapChangeListener<K,V> listener)
      Removes a map change listener.
      Parameters:
      listener - change listener
    • getMapChangeListeners

      public List<MapChangeListener<K,V>> getMapChangeListeners()
      Gets an unmodifiable list of listeners.
      Returns:
      listeners
      Since:
      3.0.0
    • clearMapChangeListeners

      public void clearMapChangeListeners()
      Clears the listeners associated with this instance.
      Since:
      3.0.0
    • size

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

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

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

      public boolean containsValue(Object value)
      Specified by:
      containsValue in interface Map<K,V>
    • 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>
    • remove

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

      public void putAll(Map<? extends K,? extends V> m)
      Specified by:
      putAll 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>
    • values

      public Collection<V> values()
      Specified by:
      values in interface Map<K,V>
    • entrySet

      public Set<Map.Entry<K,V>> entrySet()
      Specified by:
      entrySet in interface Map<K,V>
    • toString

      public String toString()
      Overrides:
      toString in class Object