public class PropertyChangeSupport extends Object implements Serializable
This class is thread safe. No locking is necessary when subscribing or unsubscribing listeners, or when publishing events. Callers should be careful when publishing events because listeners may not be thread safe.
Constructor and Description |
---|
PropertyChangeSupport(Object sourceBean)
Creates a new instance that uses the source bean as source for any event.
|
Modifier and Type | Method and Description |
---|---|
void |
addPropertyChangeListener(PropertyChangeListener listener)
Subscribes
listener to change notifications for all properties. |
void |
addPropertyChangeListener(String propertyName,
PropertyChangeListener listener)
Subscribes
listener to change notifications for the property
named propertyName . |
void |
fireIndexedPropertyChange(String propertyName,
int index,
boolean oldValue,
boolean newValue)
Fires a property change of a boolean property with the given name.
|
void |
fireIndexedPropertyChange(String propertyName,
int index,
int oldValue,
int newValue)
Fires a property change of an integer property with the given name.
|
void |
fireIndexedPropertyChange(String propertyName,
int index,
Object oldValue,
Object newValue)
Fires an
IndexedPropertyChangeEvent with the given name, old
value, new value and index. |
void |
firePropertyChange(PropertyChangeEvent event)
Publishes a property change event to all listeners of that property.
|
void |
firePropertyChange(String propertyName,
boolean oldValue,
boolean newValue)
Fires a property change of a boolean property with the given name.
|
void |
firePropertyChange(String propertyName,
int oldValue,
int newValue)
Fires a property change of an integer property with the given name.
|
void |
firePropertyChange(String propertyName,
Object oldValue,
Object newValue)
Fires a
PropertyChangeEvent with the given name, old value and
new value. |
PropertyChangeListener[] |
getPropertyChangeListeners()
Returns all subscribers.
|
PropertyChangeListener[] |
getPropertyChangeListeners(String propertyName)
Returns the subscribers to be notified when
propertyName changes. |
boolean |
hasListeners(String propertyName)
Returns true if there are listeners registered to the property with the
given name.
|
void |
removePropertyChangeListener(PropertyChangeListener listener)
Unsubscribes
listener from change notifications for all
properties. |
void |
removePropertyChangeListener(String propertyName,
PropertyChangeListener listener)
Unsubscribes
listener from change notifications for the property
named propertyName . |
public PropertyChangeSupport(Object sourceBean)
sourceBean
- the bean used as source for all events.public void firePropertyChange(String propertyName, Object oldValue, Object newValue)
PropertyChangeEvent
with the given name, old value and
new value. As source the bean used to initialize this instance is used.
If the old value and the new value are not null and equal the event will
not be fired.propertyName
- the name of the propertyoldValue
- the old value of the propertynewValue
- the new value of the propertypublic void fireIndexedPropertyChange(String propertyName, int index, Object oldValue, Object newValue)
IndexedPropertyChangeEvent
with the given name, old
value, new value and index. As source the bean used to initialize this
instance is used. If the old value and the new value are not null and
equal the event will not be fired.propertyName
- the name of the propertyindex
- the indexoldValue
- the old value of the propertynewValue
- the new value of the propertypublic void removePropertyChangeListener(String propertyName, PropertyChangeListener listener)
listener
from change notifications for the property
named propertyName
. If multiple subscriptions exist for listener
, it will receive one fewer notifications when the property
changes. If the property name or listener is null or not subscribed, this
method silently does nothing.public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener)
listener
to change notifications for the property
named propertyName
. If the listener is already subscribed, it
will receive an additional notification when the property changes. If the
property name or listener is null, this method silently does nothing.public PropertyChangeListener[] getPropertyChangeListeners(String propertyName)
propertyName
changes.
This includes both listeners subscribed to all property changes and
listeners subscribed to the named property only.public void firePropertyChange(String propertyName, boolean oldValue, boolean newValue)
propertyName
- the property nameoldValue
- the old valuenewValue
- the new valuepublic void fireIndexedPropertyChange(String propertyName, int index, boolean oldValue, boolean newValue)
propertyName
- the property nameindex
- the index of the changed propertyoldValue
- the old valuenewValue
- the new valuepublic void firePropertyChange(String propertyName, int oldValue, int newValue)
propertyName
- the property nameoldValue
- the old valuenewValue
- the new valuepublic void fireIndexedPropertyChange(String propertyName, int index, int oldValue, int newValue)
propertyName
- the property nameindex
- the index of the changed propertyoldValue
- the old valuenewValue
- the new valuepublic boolean hasListeners(String propertyName)
propertyName
- the name of the propertypublic void removePropertyChangeListener(PropertyChangeListener listener)
listener
from change notifications for all
properties. If the listener has multiple subscriptions, it will receive
one fewer notification when properties change. If the property name or
listener is null or not subscribed, this method silently does nothing.public void addPropertyChangeListener(PropertyChangeListener listener)
listener
to change notifications for all properties.
If the listener is already subscribed, it will receive an additional
notification. If the listener is null, this method silently does nothing.public PropertyChangeListener[] getPropertyChangeListeners()
public void firePropertyChange(PropertyChangeEvent event)