groovy.util
Class ObservableMap
java.lang.Object
groovy.util.ObservableMap
- All Implemented Interfaces:
- java.util.Map
public class ObservableMap
- extends java.lang.Object
- implements java.util.Map
Map decorator that will trigger PropertyChangeEvents when a value changes.
An optional Closure may be specified and will work as a filter, if it returns
true the property will trigger an event (if the value indeed changed),
otherwise it won't. The Closure may receive 1 or 2 parameters, the single one
being the value, the other one both the key and value, for example:
// skip all properties whose value is a closure
def map = new ObservableMap( {!(it instanceof Closure)} )
// skip all properties whose name matches a regex
def map = new ObservableMap( { name, value -> !(name =~ /[A-Z+]/) } )
The current implementation will trigger specialized events in the following scenarios,
you needn't register a different listener as those events extend from PropertyChangeEvent
- ObservableMap.PropertyAddedEvent - a new property is added to the map
- ObservableMap.PropertyRemovedEvent - a property is removed from the map
- ObservableMap.PropertyUpdatedEvent - a property changes value (same as regular PropertyChangeEvent)
- ObservableMap.PropertyClearedEvent - all properties have been removed from the map
- ObservableMap.MultiPropertyAddedEvent - triggered by calling map.putAll(), contains Added|Updated events
- Author:
- Andres Almiray
Nested classes/interfaces inherited from interface java.util.Map |
java.util.Map.Entry<K,V> |
Field Summary |
private java.util.Map |
delegate
|
private java.beans.PropertyChangeSupport |
pcs
|
private Closure |
test
|
Methods inherited from class java.lang.Object |
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait |
delegate
private java.util.Map delegate
pcs
private java.beans.PropertyChangeSupport pcs
test
private Closure test
ObservableMap
public ObservableMap()
ObservableMap
public ObservableMap(Closure test)
ObservableMap
public ObservableMap(java.util.Map delegate)
ObservableMap
public ObservableMap(java.util.Map delegate,
Closure test)
clear
public void clear()
- Specified by:
clear
in interface java.util.Map
containsKey
public boolean containsKey(java.lang.Object key)
- Specified by:
containsKey
in interface java.util.Map
containsValue
public boolean containsValue(java.lang.Object value)
- Specified by:
containsValue
in interface java.util.Map
entrySet
public java.util.Set entrySet()
- Specified by:
entrySet
in interface java.util.Map
equals
public boolean equals(java.lang.Object o)
- Specified by:
equals
in interface java.util.Map
- Overrides:
equals
in class java.lang.Object
get
public java.lang.Object get(java.lang.Object key)
- Specified by:
get
in interface java.util.Map
hashCode
public int hashCode()
- Specified by:
hashCode
in interface java.util.Map
- Overrides:
hashCode
in class java.lang.Object
isEmpty
public boolean isEmpty()
- Specified by:
isEmpty
in interface java.util.Map
keySet
public java.util.Set keySet()
- Specified by:
keySet
in interface java.util.Map
put
public java.lang.Object put(java.lang.Object key,
java.lang.Object value)
- Specified by:
put
in interface java.util.Map
putAll
public void putAll(java.util.Map map)
- Specified by:
putAll
in interface java.util.Map
remove
public java.lang.Object remove(java.lang.Object key)
- Specified by:
remove
in interface java.util.Map
size
public int size()
- Specified by:
size
in interface java.util.Map
values
public java.util.Collection values()
- Specified by:
values
in interface java.util.Map
addPropertyChangeListener
public void addPropertyChangeListener(java.beans.PropertyChangeListener listener)
addPropertyChangeListener
public void addPropertyChangeListener(java.lang.String propertyName,
java.beans.PropertyChangeListener listener)
getPropertyChangeListeners
public java.beans.PropertyChangeListener[] getPropertyChangeListeners()
getPropertyChangeListeners
public java.beans.PropertyChangeListener[] getPropertyChangeListeners(java.lang.String propertyName)
removePropertyChangeListener
public void removePropertyChangeListener(java.beans.PropertyChangeListener listener)
removePropertyChangeListener
public void removePropertyChangeListener(java.lang.String propertyName,
java.beans.PropertyChangeListener listener)
hasListeners
public boolean hasListeners(java.lang.String propertyName)
Copyright © ${year} The Codehaus. All Rights Reserved.