com.iparelan.util.beans
Class PropertyChangeSupport
java.lang.Object
com.iparelan.util.beans.PropertyChangeSupport
- All Implemented Interfaces:
- PropertyChangeable, PropertyFireable
@Decorator
@ThreadSafe
@Copyright(value="Copyright © 2008, Iparelan Solutions, LLC. All rights reserved.")
public class PropertyChangeSupport
- extends Object
- implements PropertyChangeable, PropertyFireable
An alternative to PropertyChangeSupport
with these enhancements:
- It guarantees that registered
listeners
do not strongly refer to observed beans (see the reference
to the book "Hardcore Java" in the "See Also" section below).
- It is type-safe, ensuring that the types of old and new property values
are compatible.
- Version:
- July 2008
- Author:
- Greg Mattes
- See Also:
PropertyChangeSupport
,
"Hardcore Java," Simmons, Chapter 11, "A Weak Listener"- To Do:
- In what sense is this class type-safe? there are no generic
declarations... To be type-safe, shouldn't we enforce the constraint
that the types of
oldValue
and newValue
are the same?
disallow calling method with old (primitive) signatures?
Method Summary |
void |
addPropertyChangeListener(PropertyChangeListener listener)
|
void |
addPropertyChangeListener(String propertyName,
PropertyChangeListener listener)
|
void |
fireIndexedPropertyChange(String propertyName,
int index,
boolean oldValue,
boolean newValue)
|
void |
fireIndexedPropertyChange(String propertyName,
int index,
int oldValue,
int newValue)
|
void |
fireIndexedPropertyChange(String propertyName,
int index,
Object oldValue,
Object newValue)
|
void |
firePropertyChange(PropertyChangeEvent evt)
|
void |
firePropertyChange(String propertyName,
boolean oldValue,
boolean newValue)
|
void |
firePropertyChange(String propertyName,
int oldValue,
int newValue)
|
void |
firePropertyChange(String propertyName,
Object oldValue,
Object newValue)
|
PropertyChangeListener[] |
getPropertyChangeListeners()
|
PropertyChangeListener[] |
getPropertyChangeListeners(String propertyName)
|
boolean |
hasListeners(String propertyName)
|
void |
removePropertyChangeListener(PropertyChangeListener listener)
|
void |
removePropertyChangeListener(String propertyName,
PropertyChangeListener listener)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
delegate
private final oreilly.hcj.references.PropertyChangeSupport delegate
sourceBean
private final Object sourceBean
PropertyChangeSupport
public PropertyChangeSupport(Object sourceBean)
getPropertyChangeListeners
public PropertyChangeListener[] getPropertyChangeListeners()
- Specified by:
getPropertyChangeListeners
in interface PropertyChangeable
- See Also:
PropertyChangeSupport.getPropertyChangeListeners()
getPropertyChangeListeners
public PropertyChangeListener[] getPropertyChangeListeners(String propertyName)
- Specified by:
getPropertyChangeListeners
in interface PropertyChangeable
- See Also:
PropertyChangeSupport.getPropertyChangeListeners(String)
addPropertyChangeListener
public void addPropertyChangeListener(PropertyChangeListener listener)
- Specified by:
addPropertyChangeListener
in interface PropertyChangeable
- See Also:
PropertyChangeSupport.addPropertyChangeListener(PropertyChangeListener)
addPropertyChangeListener
public void addPropertyChangeListener(String propertyName,
PropertyChangeListener listener)
- Specified by:
addPropertyChangeListener
in interface PropertyChangeable
- See Also:
PropertyChangeSupport.addPropertyChangeListener(String, PropertyChangeListener)
hasListeners
public boolean hasListeners(String propertyName)
- Specified by:
hasListeners
in interface PropertyChangeable
- See Also:
PropertyChangeSupport.hasListeners(String)
removePropertyChangeListener
public void removePropertyChangeListener(PropertyChangeListener listener)
- Specified by:
removePropertyChangeListener
in interface PropertyChangeable
- See Also:
PropertyChangeSupport.removePropertyChangeListener(PropertyChangeListener)
removePropertyChangeListener
public void removePropertyChangeListener(String propertyName,
PropertyChangeListener listener)
- Specified by:
removePropertyChangeListener
in interface PropertyChangeable
- See Also:
PropertyChangeSupport.removePropertyChangeListener(String, PropertyChangeListener)
firePropertyChange
public void firePropertyChange(String propertyName,
Object oldValue,
Object newValue)
- Specified by:
firePropertyChange
in interface PropertyFireable
- See Also:
PropertyChangeSupport.firePropertyChange(String, Object, Object)
firePropertyChange
public void firePropertyChange(String propertyName,
boolean oldValue,
boolean newValue)
- Specified by:
firePropertyChange
in interface PropertyFireable
- See Also:
PropertyChangeSupport.firePropertyChange(String, boolean, boolean)
firePropertyChange
public void firePropertyChange(String propertyName,
int oldValue,
int newValue)
- Specified by:
firePropertyChange
in interface PropertyFireable
- See Also:
PropertyChangeSupport.firePropertyChange(String, int, int)
fireIndexedPropertyChange
public void fireIndexedPropertyChange(String propertyName,
int index,
Object oldValue,
Object newValue)
- Specified by:
fireIndexedPropertyChange
in interface PropertyFireable
- See Also:
PropertyChangeSupport.fireIndexedPropertyChange(String, int, Object, Object)
fireIndexedPropertyChange
public void fireIndexedPropertyChange(String propertyName,
int index,
boolean oldValue,
boolean newValue)
- Specified by:
fireIndexedPropertyChange
in interface PropertyFireable
- See Also:
PropertyChangeSupport.fireIndexedPropertyChange(String, int, boolean, boolean)
fireIndexedPropertyChange
public void fireIndexedPropertyChange(String propertyName,
int index,
int oldValue,
int newValue)
- Specified by:
fireIndexedPropertyChange
in interface PropertyFireable
- See Also:
PropertyChangeSupport.fireIndexedPropertyChange(String, int, int, int)
firePropertyChange
public void firePropertyChange(PropertyChangeEvent evt)
- Specified by:
firePropertyChange
in interface PropertyFireable
- See Also:
PropertyChangeSupport.firePropertyChange(PropertyChangeEvent)
Copyright © 2008 Iparelan Solutions, LLC. All rights reserved.