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:// 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 SummaryNested 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 SummaryFields Modifier and Type Field Description static StringCONTENT_PROPERTYstatic StringSIZE_PROPERTY
 - 
Constructor SummaryConstructors Constructor Description ObservableSet()ObservableSet(Closure test)ObservableSet(Set<E> delegate)ObservableSet(Set<E> delegate, Closure test)
 - 
Method Summary- 
Methods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 - 
Methods inherited from interface java.util.CollectionparallelStream, removeIf, stream, toArray
 - 
Methods inherited from interface java.util.Setequals, hashCode, spliterator
 
- 
 
- 
- 
- 
Field Detail- 
SIZE_PROPERTYpublic static final String SIZE_PROPERTY - See Also:
- Constant Field Values
 
 - 
CONTENT_PROPERTYpublic static final String CONTENT_PROPERTY - See Also:
- Constant Field Values
 
 
- 
 - 
Method Detail- 
getTestprotected Closure getTest() 
 - 
fireElementAddedEventprotected void fireElementAddedEvent(Object element) 
 - 
fireMultiElementAddedEventprotected void fireMultiElementAddedEvent(List values) 
 - 
fireElementClearedEventprotected void fireElementClearedEvent(List values) 
 - 
fireElementRemovedEventprotected void fireElementRemovedEvent(Object element) 
 - 
fireMultiElementRemovedEventprotected void fireMultiElementRemovedEvent(List values) 
 - 
fireElementEventprotected void fireElementEvent(ObservableSet.ElementEvent event) 
 - 
fireSizeChangedEventprotected void fireSizeChangedEvent(int oldValue, int newValue)
 - 
addPropertyChangeListenerpublic void addPropertyChangeListener(PropertyChangeListener listener) 
 - 
addPropertyChangeListenerpublic void addPropertyChangeListener(String propertyName, PropertyChangeListener listener) 
 - 
getPropertyChangeListenerspublic PropertyChangeListener[] getPropertyChangeListeners() 
 - 
getPropertyChangeListenerspublic PropertyChangeListener[] getPropertyChangeListeners(String propertyName) 
 - 
removePropertyChangeListenerpublic void removePropertyChangeListener(PropertyChangeListener listener) 
 - 
removePropertyChangeListenerpublic void removePropertyChangeListener(String propertyName, PropertyChangeListener listener) 
 - 
hasListenerspublic boolean hasListeners(String propertyName) 
 - 
sizepublic int size() 
 - 
isEmptypublic boolean isEmpty() 
 - 
containspublic boolean contains(Object o) 
 - 
toArraypublic Object[] toArray() 
 - 
toArraypublic <T> T[] toArray(T[] ts) 
 - 
addpublic boolean add(E e) 
 - 
removepublic boolean remove(Object o) 
 - 
containsAllpublic boolean containsAll(Collection<?> objects) - Specified by:
- containsAllin interface- Collection<E>
- Specified by:
- containsAllin interface- Set<E>
 
 - 
addAllpublic boolean addAll(Collection<? extends E> c) 
 - 
retainAllpublic boolean retainAll(Collection<?> c) 
 - 
removeAllpublic boolean removeAll(Collection<?> c) 
 
- 
 
-