|
Colt 1.0.3 | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--edu.oswego.cs.dl.util.concurrent.PropertyChangeMulticaster
This class is interoperable with java.beans.PropertyChangeSupport, but relies on a streamlined copy-on-write scheme similar to that used in CopyOnWriteArrayList. This leads to much better performance in most event-intensive programs. It also adheres to clarified semantics of add and remove operations.
Sample usage.
class Thing { protected Color myColor = Color.red; // an example property protected PropertyChangeMulticaster listeners = new PropertyChangeMulticaster(this); // registration methods, including: void addListener(PropertyChangeListener l) { // Use the `ifAbsent' version to avoid duplicate notifications listeners.addPropertyChangeListenerIfAbsent(l); } public synchronized Color getColor() { // accessor return myColor; } // internal synchronized state change method; returns old value protected synchronized Color assignColor(Color newColor) { Color oldColor = myColor; myColor = newColor; return oldColor; } public void setColor(Color newColor) { // atomically change state Color oldColor = assignColor(newColor); // broadcast change notification without holding synch lock listeners.firePropertyChange("color", oldColor, newColor); } }
[ Introduction to this package. ]
Constructor Summary | |
PropertyChangeMulticaster(Object sourceBean)
Constructs a PropertyChangeMulticaster object. |
Method Summary | |
void |
addPropertyChangeListener(PropertyChangeListener listener)
Add a VetoableChangeListener to the listener list. |
void |
addPropertyChangeListener(String propertyName,
PropertyChangeListener listener)
Add a PropertyChangeListener for a specific property. |
void |
addPropertyChangeListenerIfAbsent(PropertyChangeListener listener)
Add a PropertyChangeListener to the listener list if it is not already present. |
void |
addPropertyChangeListenerIfAbsent(String propertyName,
PropertyChangeListener listener)
Add a PropertyChangeListener for a specific property, if it is not already registered. |
void |
firePropertyChange(PropertyChangeEvent evt)
Fire an existing PropertyChangeEvent to any registered listeners. |
void |
firePropertyChange(String propertyName,
boolean oldValue,
boolean newValue)
Report a boolean bound property update to any registered listeners. |
void |
firePropertyChange(String propertyName,
int oldValue,
int newValue)
Report an int bound property update to any registered listeners. |
void |
firePropertyChange(String propertyName,
Object oldValue,
Object newValue)
Report a bound property update to any registered listeners. |
boolean |
hasListeners(String propertyName)
Check if there are any listeners for a specific property. |
void |
removePropertyChangeListener(PropertyChangeListener listener)
Remove a PropertyChangeListener from the listener list. |
void |
removePropertyChangeListener(String propertyName,
PropertyChangeListener listener)
Remove a PropertyChangeListener for a specific property. |
Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
public PropertyChangeMulticaster(Object sourceBean)
PropertyChangeMulticaster
object.sourceBean
- The bean to be given as the source for any events.NullPointerException
- if sourceBean is nullMethod Detail |
public void addPropertyChangeListener(PropertyChangeListener listener)
listener
- The PropertyChangeListener to be addedNullPointerException
- If listener is nullpublic void addPropertyChangeListenerIfAbsent(PropertyChangeListener listener)
listener
- The PropertyChangeListener to be addedNullPointerException
- If listener is nullpublic void removePropertyChangeListener(PropertyChangeListener listener)
listener
- The PropertyChangeListener to be removedpublic void addPropertyChangeListener(String propertyName, PropertyChangeListener listener)
propertyName
- The name of the property to listen on.listener
- The PropertyChangeListener to be addedNullPointerException
- If listener is nullpublic void addPropertyChangeListenerIfAbsent(String propertyName, PropertyChangeListener listener)
propertyName
- The name of the property to listen on.listener
- The PropertyChangeListener to be addedNullPointerException
- If listener is nullpublic void removePropertyChangeListener(String propertyName, PropertyChangeListener listener)
propertyName
- The name of the property that was listened on.listener
- The PropertyChangeListener to be removedpublic void firePropertyChange(String propertyName, Object oldValue, Object newValue)
propertyName
- The programmatic name of the property
that was changed.oldValue
- The old value of the property.newValue
- The new value of the property.public void firePropertyChange(String propertyName, int oldValue, int newValue)
This is merely a convenience wrapper around the more general firePropertyChange method that takes Object values.
propertyName
- The programmatic name of the property
that was changed.oldValue
- The old value of the property.newValue
- The new value of the property.public void firePropertyChange(String propertyName, boolean oldValue, boolean newValue)
This is merely a convenience wrapper around the more general firePropertyChange method that takes Object values.
propertyName
- The programmatic name of the property
that was changed.oldValue
- The old value of the property.newValue
- The new value of the property.public void firePropertyChange(PropertyChangeEvent evt)
evt
- The PropertyChangeEvent object.public boolean hasListeners(String propertyName)
propertyName
- the property name.
|
Colt 1.0.3 | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |