groovy.util
Class ObservableMap
java.lang.Object
groovy.util.ObservableMap
- All Implemented Interfaces:
- Map
public class ObservableMap
- extends Object
- implements 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 need not 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.MultiPropertyEvent - triggered by calling map.putAll(), contains Added|Updated events
- Author:
- Andres Almiray
Nested classes/interfaces inherited from interface java.util.Map |
Map.Entry<K,V> |
ObservableMap
public ObservableMap()
ObservableMap
public ObservableMap(Closure test)
ObservableMap
public ObservableMap(Map delegate)
ObservableMap
public ObservableMap(Map delegate,
Closure test)
clear
public void clear()
- Specified by:
clear
in interface Map
containsKey
public boolean containsKey(Object key)
- Specified by:
containsKey
in interface Map
containsValue
public boolean containsValue(Object value)
- Specified by:
containsValue
in interface Map
entrySet
public Set entrySet()
- Specified by:
entrySet
in interface Map
equals
public boolean equals(Object o)
- Specified by:
equals
in interface Map
- Overrides:
equals
in class Object
get
public Object get(Object key)
- Specified by:
get
in interface Map
hashCode
public int hashCode()
- Specified by:
hashCode
in interface Map
- Overrides:
hashCode
in class Object
isEmpty
public boolean isEmpty()
- Specified by:
isEmpty
in interface Map
keySet
public Set keySet()
- Specified by:
keySet
in interface Map
put
public Object put(Object key,
Object value)
- Specified by:
put
in interface Map
putAll
public void putAll(Map map)
- Specified by:
putAll
in interface Map
remove
public Object remove(Object key)
- Specified by:
remove
in interface Map
size
public int size()
- Specified by:
size
in interface Map
values
public Collection values()
- Specified by:
values
in interface Map
addPropertyChangeListener
public void addPropertyChangeListener(PropertyChangeListener listener)
addPropertyChangeListener
public void addPropertyChangeListener(String propertyName,
PropertyChangeListener listener)
getPropertyChangeListeners
public PropertyChangeListener[] getPropertyChangeListeners()
getPropertyChangeListeners
public PropertyChangeListener[] getPropertyChangeListeners(String propertyName)
removePropertyChangeListener
public void removePropertyChangeListener(PropertyChangeListener listener)
removePropertyChangeListener
public void removePropertyChangeListener(String propertyName,
PropertyChangeListener listener)
hasListeners
public boolean hasListeners(String propertyName)