Package groovy.util
Class ObservableSet<E>
java.lang.Object
groovy.util.ObservableSet<E>
- All Implemented Interfaces:
Iterable<E>
,Collection<E>
,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
Modifier and TypeClassDescriptionstatic enum
static class
static class
static class
static class
static class
static class
protected class
-
Field Summary
-
Constructor Summary
ConstructorDescriptionObservableSet
(Closure test) ObservableSet
(Set<E> delegate) ObservableSet
(Set<E> delegate, Closure test) -
Method Summary
Modifier and TypeMethodDescriptionboolean
boolean
addAll
(Collection<? extends E> c) void
void
addPropertyChangeListener
(String propertyName, PropertyChangeListener listener) void
clear()
boolean
boolean
containsAll
(Collection<?> objects) protected void
fireElementAddedEvent
(Object element) protected void
fireElementClearedEvent
(List values) protected void
protected void
fireElementRemovedEvent
(Object element) protected void
fireMultiElementAddedEvent
(List values) protected void
fireMultiElementRemovedEvent
(List values) protected void
fireSizeChangedEvent
(int oldValue, int newValue) getPropertyChangeListeners
(String propertyName) protected Closure
getTest()
boolean
hasListeners
(String propertyName) boolean
isEmpty()
iterator()
boolean
boolean
removeAll
(Collection<?> c) void
void
removePropertyChangeListener
(String propertyName, PropertyChangeListener listener) boolean
retainAll
(Collection<?> c) int
size()
Object[]
toArray()
<T> T[]
toArray
(T[] ts) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface java.util.Collection
parallelStream, removeIf, stream, toArray
Methods inherited from interface java.util.Set
equals, hashCode, spliterator
-
Field Details
-
SIZE_PROPERTY
- See Also:
-
CONTENT_PROPERTY
- See Also:
-
-
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:
containsAll
in interfaceCollection<E>
- Specified by:
containsAll
in interfaceSet<E>
-
addAll
-
retainAll
-
removeAll
-
clear
public void clear()
-