Package 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
 
Bound properties
- content - read-only.
 - size - read-only.
 
 
- 
- 
Nested Class Summary
Nested Classes Modifier and Type Class Description static classObservableMap.ChangeTypestatic classObservableMap.MultiPropertyEventstatic classObservableMap.PropertyAddedEventstatic classObservableMap.PropertyClearedEventstatic classObservableMap.PropertyEventstatic classObservableMap.PropertyRemovedEventstatic classObservableMap.PropertyUpdatedEvent 
- 
Field Summary
Fields Modifier and Type Field Description static StringCLEARED_PROPERTYstatic StringCONTENT_PROPERTYstatic StringSIZE_PROPERTY 
- 
Constructor Summary
Constructors Constructor Description ObservableMap()ObservableMap(Closure test)ObservableMap(Map delegate)ObservableMap(Map delegate, Closure test) 
- 
Method Summary
- 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait 
- 
Methods inherited from interface java.util.Map
compute, computeIfAbsent, computeIfPresent, forEach, getOrDefault, merge, putIfAbsent, remove, replace, replace, replaceAll 
 - 
 
 - 
 
- 
- 
Field Detail
- 
SIZE_PROPERTY
public static final String SIZE_PROPERTY
- See Also:
 - Constant Field Values
 
 
- 
CONTENT_PROPERTY
public static final String CONTENT_PROPERTY
- See Also:
 - Constant Field Values
 
 
- 
CLEARED_PROPERTY
public static final String CLEARED_PROPERTY
- See Also:
 - Constant Field Values
 
 
 - 
 
- 
Method Detail
- 
getMapDelegate
protected Map getMapDelegate()
 
- 
getTest
protected Closure getTest()
 
- 
getContent
public Map getContent()
 
- 
firePropertyClearedEvent
protected void firePropertyClearedEvent(Map values)
 
- 
firePropertyUpdatedEvent
protected void firePropertyUpdatedEvent(Object key, Object oldValue, Object newValue)
 
- 
fireMultiPropertyEvent
protected void fireMultiPropertyEvent(List<ObservableMap.PropertyEvent> events)
 
- 
fireMultiPropertyEvent
protected void fireMultiPropertyEvent(ObservableMap.PropertyEvent[] events)
 
- 
firePropertyEvent
protected void firePropertyEvent(ObservableMap.PropertyEvent event)
 
- 
fireSizeChangedEvent
protected void fireSizeChangedEvent(int oldValue, int newValue) 
- 
containsKey
public boolean containsKey(Object key)
- Specified by:
 containsKeyin interfaceMap
 
- 
containsValue
public boolean containsValue(Object value)
- Specified by:
 containsValuein interfaceMap
 
- 
equals
public boolean equals(Object o)
 
- 
hashCode
public int hashCode()
 
- 
getSize
public int getSize()
 
- 
values
public Collection values()
 
- 
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)
 
 - 
 
 -