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

Bound properties

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