|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.jscience.util.ChangeSupport
public class ChangeSupport
A utility class to provide management for informing ChangeListeners of ChangeEvents. This is loosely modelled after the standard PropertyChangeEvent objects. For an object to correctly fire these events, they must follow a broad outline like this:
public void mutator(foo arg) throw ChangeVetoException {
ChangeEvent cevt = new ChangeEvent(this, SOME_EVENT_TYPE, arg);
synchronized(changeSupport) {
changeSupport.firePreChangeEvent(cevt);
// update our state using arg
// ...
changeSupport.firePostChangeEvent(cevt);
}
}
The methods that delegate adding and removing listeners to a ChangeSupport
must take responsibility for synchronizing on the delegate.
| Constructor Summary | |
|---|---|
ChangeSupport()
Generate a new ChangeSupport instance. |
|
ChangeSupport(int initialSize)
Generate a new ChangeSupport instance which has room for initialSize listeners before it needs to grow any resources. |
|
ChangeSupport(int initialSize,
int delta)
Generate a new ChangeSupport instance which has room for initialSize listeners before it needs to grow any resources, and which will grow by delta each time. |
|
ChangeSupport(java.util.Set unchanging)
Creates a new ChangeSupport object. |
|
ChangeSupport(java.util.Set unchanging,
int initialSize,
int delta)
Generate a new ChangeSupport instance which has room for initialSize listeners before it needs to grow any resources, and which will grow by delta each time. |
|
| Method Summary | |
|---|---|
void |
addChangeListener(ChangeListener cl)
Add a listener that will be informed of all changes. |
void |
addChangeListener(ChangeListener cl,
ChangeType ct)
Add a listener that will be informed of changes of a given type (and it's subtypes) |
java.lang.String |
displayString()
DOCUMENT ME! |
void |
firePostChangeEvent(ChangeEvent ce)
Inform the listeners that a change has taken place using their firePostChangeEvent methods. |
void |
firePreChangeEvent(ChangeEvent ce)
Inform the listeners that a change is about to take place using their firePreChangeEvent methods. |
protected void |
growIfNecessary()
Grows the internal resources if by adding one more listener they would be full. |
boolean |
hasListeners()
Return true if we have any listeners registered at all. |
boolean |
hasListeners(ChangeType ct)
Return true if we have listeners registered for a particular change type. |
boolean |
isUnchanging(ChangeType ct)
DOCUMENT ME! |
protected void |
reapGarbageListeners()
Remove all references to listeners which have been cleared by the garbage collector. |
void |
removeChangeListener(ChangeListener cl)
Remove a listener that was interested in all types of changes. |
void |
removeChangeListener(ChangeListener cl,
ChangeType ct)
Remove a listener that was interested in a specific types of changes. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public ChangeSupport()
public ChangeSupport(int initialSize)
initialSize - the number of listeners that can be added before this
needs to grow for the first time
public ChangeSupport(int initialSize,
int delta)
initialSize - the number of listeners that can be added before this
needs to grow for the first timedelta - the number of listener slots that this will grow by each time
it needs topublic ChangeSupport(java.util.Set unchanging)
unchanging - DOCUMENT ME!
public ChangeSupport(java.util.Set unchanging,
int initialSize,
int delta)
unchanging - Set of ChangeTypes that can never be firedinitialSize - the number of listeners that can be added before this
needs to grow for the first timedelta - the number of listener slots that this will grow by each time
it needs to| Method Detail |
|---|
public boolean hasListeners()
public boolean hasListeners(ChangeType ct)
ct - the ChangeType to check
public void addChangeListener(ChangeListener cl)
cl - the ChangeListener to add
public void addChangeListener(ChangeListener cl,
ChangeType ct)
cl - the ChangeListenerct - the ChangeType it is to be informed ofprotected void growIfNecessary()
public void removeChangeListener(ChangeListener cl)
cl - a ChangeListener to remove
public void removeChangeListener(ChangeListener cl,
ChangeType ct)
cl - a ChangeListener to removect - the ChangeType that it was interested inprotected void reapGarbageListeners()
public void firePreChangeEvent(ChangeEvent ce)
throws ChangeVetoException
ce - the ChangeEvent to pass on
ChangeVetoException - if any of the listeners veto this changepublic void firePostChangeEvent(ChangeEvent ce)
ce - the ChangeEvent to pass onpublic boolean isUnchanging(ChangeType ct)
ct - DOCUMENT ME!
public java.lang.String displayString()
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||