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 |
Methods inherited from class java.lang.Object |
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait |
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)