[Java] Class ObservableSet<E>
- groovy.util.ObservableSet
- All Implemented Interfaces and Traits:
- Set
public class ObservableSet<E> extends Object implements Set
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 Summary
Modifiers | Name | Description |
---|---|---|
enum | ObservableSet.ChangeType | |
static class | ObservableSet.ElementAddedEvent | |
static class | ObservableSet.ElementClearedEvent | |
static class | ObservableSet.ElementEvent | |
static class | ObservableSet.ElementRemovedEvent | |
static class | ObservableSet.MultiElementAddedEvent | |
static class | ObservableSet.MultiElementRemovedEvent | |
protected class | ObservableSet.ObservableIterator |
Field Summary
Modifiers | Name | Description |
---|---|---|
static String | CONTENT_PROPERTY | |
static String | SIZE_PROPERTY |
Constructor Summary
Constructor and description |
---|
ObservableSet
() |
ObservableSet
(Set<E> delegate) |
ObservableSet
(Closure test) |
ObservableSet
(Set<E> delegate, Closure test) |
Methods Summary
Type Params | Return Type | Name and description |
---|---|---|
public boolean |
add(E e) | |
public boolean |
addAll(Collection<? extends E> c) | |
public void |
addPropertyChangeListener(PropertyChangeListener listener) | |
public void |
addPropertyChangeListener(String propertyName, PropertyChangeListener listener) | |
public void |
clear() | |
public boolean |
contains(Object o) | |
public boolean |
containsAll(Collection<?> objects) | |
protected void |
fireElementAddedEvent(Object element) | |
protected void |
fireElementClearedEvent(List values) | |
protected void |
fireElementEvent(ElementEvent event) | |
protected void |
fireElementRemovedEvent(Object element) | |
protected void |
fireMultiElementAddedEvent(List values) | |
protected void |
fireMultiElementRemovedEvent(List values) | |
protected void |
fireSizeChangedEvent(int oldValue, int newValue) | |
public Set<E> |
getContent() | |
protected Set<E> |
getDelegateSet() | |
public PropertyChangeListener[] |
getPropertyChangeListeners() | |
public PropertyChangeListener[] |
getPropertyChangeListeners(String propertyName) | |
protected Closure |
getTest() | |
public boolean |
hasListeners(String propertyName) | |
public boolean |
isEmpty() | |
public Iterator<E> |
iterator() | |
public boolean |
remove(Object o) | |
public boolean |
removeAll(Collection<?> c) | |
public void |
removePropertyChangeListener(PropertyChangeListener listener) | |
public void |
removePropertyChangeListener(String propertyName, PropertyChangeListener listener) | |
public boolean |
retainAll(Collection<?> c) | |
public int |
size() | |
public Object[] |
toArray() | |
<T> | public T[] |
toArray(T[] ts) |
Inherited Methods Summary
Methods inherited from class | Name |
---|---|
class Object | wait, wait, wait, equals, toString, hashCode, getClass, notify, notifyAll |
Field Detail
public static final String CONTENT_PROPERTY
public static final String SIZE_PROPERTY
Constructor Detail
public ObservableSet()
public ObservableSet(Set<E> delegate)
public ObservableSet(Closure test)
public ObservableSet(Set<E> delegate, Closure test)
Method Detail
public boolean add(E e)
public boolean addAll(Collection<? extends E> c)
public void addPropertyChangeListener(PropertyChangeListener listener)
public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener)
public void clear()
public boolean contains(Object o)
public boolean containsAll(Collection<?> objects)
protected void fireElementAddedEvent(Object element)
protected void fireElementClearedEvent(List values)
protected void fireElementEvent(ElementEvent event)
protected void fireElementRemovedEvent(Object element)
protected void fireMultiElementAddedEvent(List values)
protected void fireMultiElementRemovedEvent(List values)
protected void fireSizeChangedEvent(int oldValue, int newValue)
public Set<E> getContent()
protected Set<E> getDelegateSet()
public PropertyChangeListener[] getPropertyChangeListeners()
public PropertyChangeListener[] getPropertyChangeListeners(String propertyName)
protected Closure getTest()
public boolean hasListeners(String propertyName)
public boolean isEmpty()
public Iterator<E> iterator()
public boolean remove(Object o)
public boolean removeAll(Collection<?> c)
public void removePropertyChangeListener(PropertyChangeListener listener)
public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener)
public boolean retainAll(Collection<?> c)
public int size()
public Object[] toArray()
<T> public T[] toArray(T[] ts)
© 2003-2020 The Apache Software Foundation
Licensed under the Apache license.
https://docs.groovy-lang.org/3.0.7/html/gapi/groovy/util/ObservableSet.html