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
 Bound properties
Copyright © 2003-2021 The Apache Software Foundation. All rights reserved.