Package groovy.util
Class ObservableSet<E>
java.lang.Object
groovy.util.ObservableSet<E>
- All Implemented Interfaces:
Iterable<E>,Collection<E>,Set<E>
public class ObservableSet<E> extends Object implements Set<E>
Set 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:
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 set = new ObservableSet( {!(it instanceof Closure)} )
<p/>
// skip all properties whose name matches a regex
def set = new ObservableSet( { 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
- ObservableSet.ElementAddedEvent - a new element is added to the set
- ObservableSet.ElementRemovedEvent - an element is removed from the set
- ObservableSet.ElementUpdatedEvent - an element changes value (same as regular PropertyChangeEvent)
- ObservableSet.ElementClearedEvent - all elements have been removed from the list
- ObservableSet.MultiElementAddedEvent - triggered by calling set.addAll()
- ObservableSet.MultiElementRemovedEvent - triggered by calling set.removeAll()/set.retainAll()
Bound properties
- content - read-only.
- size - read-only.
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classObservableSet.ChangeTypestatic classObservableSet.ElementAddedEventstatic classObservableSet.ElementClearedEventstatic classObservableSet.ElementEventstatic classObservableSet.ElementRemovedEventstatic classObservableSet.MultiElementAddedEventstatic classObservableSet.MultiElementRemovedEventprotected classObservableSet.ObservableIterator<E> -
Field Summary
Fields Modifier and Type Field Description static StringCONTENT_PROPERTYstatic StringSIZE_PROPERTY -
Constructor Summary
Constructors Constructor Description ObservableSet()ObservableSet(Closure test)ObservableSet(Set<E> delegate)ObservableSet(Set<E> delegate, Closure test) -
Method Summary
-
Field Details
-
SIZE_PROPERTY
- See Also:
- Constant Field Values
-
CONTENT_PROPERTY
- See Also:
- Constant Field Values
-
-
Constructor Details
-
ObservableSet
public ObservableSet() -
ObservableSet
-
ObservableSet
-
ObservableSet
-
-
Method Details
-
getContent
-
getDelegateSet
-
getTest
-
fireElementAddedEvent
-
fireMultiElementAddedEvent
-
fireElementClearedEvent
-
fireElementRemovedEvent
-
fireMultiElementRemovedEvent
-
fireElementEvent
-
fireSizeChangedEvent
protected void fireSizeChangedEvent(int oldValue, int newValue) -
addPropertyChangeListener
-
addPropertyChangeListener
-
getPropertyChangeListeners
-
getPropertyChangeListeners
-
removePropertyChangeListener
-
removePropertyChangeListener
-
hasListeners
-
size
public int size() -
isEmpty
public boolean isEmpty() -
contains
-
iterator
-
toArray
-
toArray
public <T> T[] toArray(T[] ts) -
add
-
remove
-
containsAll
- Specified by:
containsAllin interfaceCollection<E>- Specified by:
containsAllin interfaceSet<E>
-
addAll
-
retainAll
-
removeAll
-
clear
public void clear()
-