Groovy Documentation

## groovy.util
[Java] Class ObservableMap

    java.lang.Object
      groovy.util.ObservableMap

All Implemented Interfaces:
  java.util.Map

    public class ObservableMap
    extends java.lang.Object

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.

Authors:
  Andres Almiray

Nested Class Summary
`enum` | `ObservableMap.ChangeType`
`static class` | `ObservableMap.MultiPropertyEvent`
`static class` | `ObservableMap.PropertyAddedEvent`
`static class` | `ObservableMap.PropertyClearedEvent`
`static class` | `ObservableMap.PropertyEvent`
`static class` | `ObservableMap.PropertyRemovedEvent`
`static class` | `ObservableMap.PropertyUpdatedEvent`

Field Summary
`static java.lang.String` | `CLEARED_PROPERTY`
`static java.lang.String` | `CONTENT_PROPERTY`
`static java.lang.String` | `SIZE_PROPERTY`

Constructor Summary
`ObservableMap()`
`ObservableMap(Closure test)`
`ObservableMap(java.util.Map delegate)`
`ObservableMap(java.util.Map delegate, Closure test)`

Method Summary
`void` | `addPropertyChangeListener(java.beans.PropertyChangeListener listener)`
`void` | `addPropertyChangeListener(java.lang.String propertyName, java.beans.PropertyChangeListener listener)`
`void` | `clear()`
`boolean` | `containsKey(java.lang.Object key)`
`boolean` | `containsValue(java.lang.Object value)`
`java.util.Set` | `entrySet()`
`boolean` | `equals(java.lang.Object o)`
`protected void` | `fireMultiPropertyEvent(java.util.List events)`
`protected void` | `fireMultiPropertyEvent(ObservableMap.PropertyEvent[] events)`
`protected void` | `firePropertyAddedEvent(java.lang.Object key, java.lang.Object value)`
`protected void` | `firePropertyClearedEvent(java.util.Map values)`
`protected void` | `firePropertyEvent(ObservableMap.PropertyEvent event)`
`protected void` | `firePropertyRemovedEvent(java.lang.Object key, java.lang.Object value)`
`protected void` | `firePropertyUpdatedEvent(java.lang.Object key, java.lang.Object oldValue, java.lang.Object newValue)`
`protected void` | `fireSizeChangedEvent(int oldValue, int newValue)`
`java.lang.Object` | `get(java.lang.Object key)`
`java.util.Map` | `getContent()`
`protected java.util.Map` | `getMapDelegate()`
`java.beans.PropertyChangeListener[]` | `getPropertyChangeListeners()`
`java.beans.PropertyChangeListener[]` | `getPropertyChangeListeners(java.lang.String propertyName)`
`int` | `getSize()`
`protected Closure` | `getTest()`
`boolean` | `hasListeners(java.lang.String propertyName)`
`int` | `hashCode()`
`boolean` | `isEmpty()`
`java.util.Set` | `keySet()`
`java.lang.Object` | `put(java.lang.Object key, java.lang.Object value)`
`void` | `putAll(java.util.Map map)`
`java.lang.Object` | `remove(java.lang.Object key)`
`void` | `removePropertyChangeListener(java.beans.PropertyChangeListener listener)`
`void` | `removePropertyChangeListener(java.lang.String propertyName, java.beans.PropertyChangeListener listener)`
`int` | `size()`
`java.util.Collection` | `values()`

Methods inherited from class java.lang.Object
java.lang.Object#wait(long), java.lang.Object#wait(long, int), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll()

Field Detail

### CLEARED_PROPERTY

    public static final java.lang.String CLEARED_PROPERTY

### CONTENT_PROPERTY

    public static final java.lang.String CONTENT_PROPERTY

### SIZE_PROPERTY

    public static final java.lang.String SIZE_PROPERTY

Constructor Detail

### ObservableMap

    public ObservableMap()

### ObservableMap

    public ObservableMap(Closure test)

### ObservableMap

    public ObservableMap(java.util.Map delegate)

### ObservableMap

    public ObservableMap(java.util.Map delegate, Closure test)

Method Detail

### addPropertyChangeListener

    public void addPropertyChangeListener(java.beans.PropertyChangeListener listener)

### addPropertyChangeListener

    public void addPropertyChangeListener(java.lang.String propertyName, java.beans.PropertyChangeListener listener)

### clear

    public void clear()

### containsKey

    public boolean containsKey(java.lang.Object key)

### containsValue

    public boolean containsValue(java.lang.Object value)

### entrySet

    public java.util.Set entrySet()

### equals

    public boolean equals(java.lang.Object o)

### fireMultiPropertyEvent

    protected void fireMultiPropertyEvent(java.util.List events)

### fireMultiPropertyEvent

    protected void fireMultiPropertyEvent(ObservableMap.PropertyEvent[] events)

### firePropertyAddedEvent

    protected void firePropertyAddedEvent(java.lang.Object key, java.lang.Object value)

### firePropertyClearedEvent

    protected void firePropertyClearedEvent(java.util.Map values)

### firePropertyEvent

    protected void firePropertyEvent(ObservableMap.PropertyEvent event)

### firePropertyRemovedEvent

    protected void firePropertyRemovedEvent(java.lang.Object key, java.lang.Object value)

### firePropertyUpdatedEvent

    protected void firePropertyUpdatedEvent(java.lang.Object key, java.lang.Object oldValue, java.lang.Object newValue)

### fireSizeChangedEvent

    protected void fireSizeChangedEvent(int oldValue, int newValue)

### get

    public java.lang.Object get(java.lang.Object key)

### getContent

    public java.util.Map getContent()

### getMapDelegate

    protected java.util.Map getMapDelegate()

### getPropertyChangeListeners

    public java.beans.PropertyChangeListener[] getPropertyChangeListeners()

### getPropertyChangeListeners

    public java.beans.PropertyChangeListener[] getPropertyChangeListeners(java.lang.String propertyName)

### getSize

    public int getSize()

### getTest

    protected Closure getTest()

### hasListeners

    public boolean hasListeners(java.lang.String propertyName)

### hashCode

    public int hashCode()

### isEmpty

    public boolean isEmpty()

### keySet

    public java.util.Set keySet()

### put

    public java.lang.Object put(java.lang.Object key, java.lang.Object value)

### putAll

    public void putAll(java.util.Map map)

### remove

    public java.lang.Object remove(java.lang.Object key)

### removePropertyChangeListener

    public void removePropertyChangeListener(java.beans.PropertyChangeListener listener)

### removePropertyChangeListener

    public void removePropertyChangeListener(java.lang.String propertyName, java.beans.PropertyChangeListener listener)

### size

    public int size()

### values

    public java.util.Collection values()

Groovy Documentation