com.pcbsys.nirvana.client.Observable Class Reference

This class represents an observable object, or "data" in the model-view paradigm. More...

Inheritance diagram for com.pcbsys.nirvana.client.Observable:
com.pcbsys.nirvana.nAdminAPI.nACL com.pcbsys.nirvana.nAdminAPI.nClusterStatus com.pcbsys.nirvana.nAdminAPI.nClusterStatusEntry com.pcbsys.nirvana.nAdminAPI.nConfigEntry com.pcbsys.nirvana.nAdminAPI.nConfigGroup com.pcbsys.nirvana.nAdminAPI.nConnectionDetails com.pcbsys.nirvana.nAdminAPI.nInterfaceManager com.pcbsys.nirvana.nAdminAPI.nInterfaceStatus com.pcbsys.nirvana.nAdminAPI.nJoinDetails com.pcbsys.nirvana.nAdminAPI.nNode

Public Member Functions

void addObserver (IObserver o)
 Adds an observer to the set of observers for this object, provided that it is not the same as some observer already in the set. More...
 
int countObservers ()
 Returns the number of observers of this Observable object. More...
 
void deleteObserver (IObserver o)
 Deletes an observer from the set of observers of this object. More...
 
void deleteObservers ()
 Clears the observer list so that this object no longer has any observers. More...
 
bool hasChanged ()
 Tests if this object has changed. More...
 
void notifyObservers ()
 If this object has changed, as indicated by the hasChanged method, then notify all of its observers and then call the clearChanged method to indicate that this object has no longer changed. More...
 
void notifyObservers (Object arg)
 If this object has changed, as indicated by the More...
 
 Observable ()
 Construct an Observable with zero Observers. More...
 

Protected Member Functions

void clearChanged ()
 Indicates that this object has no longer changed, or that it has already notified all of its observers of its most recent change, so that the hasChanged method will now return false. More...
 
void setChanged ()
 Marks this Observable object as having been changed; the hasChanged method will now return true. More...
 

Detailed Description

This class represents an observable object, or "data" in the model-view paradigm.

It can be subclassed to represent an object that the application wants to have observed.

An observable object can have one or more observers. An observer may be any object that implements interface IObserver. After an observable instance changes, an application calling the Observable's notifyObservers method causes all of its observers to be notified of the change by a call to their update method.

The order in which notifications will be delivered is unspecified. The default implementation provided in the Observable class will notify Observers in the order in which they registered interest, but subclasses may change this order, use no guaranteed order, deliver notifications on separate threads, or may guarantee that their subclass follows this order, as they choose.

Note that this notification mechanism has nothing to do with threads and is completely separate from the wait and notify mechanism of class Object.

When an observable object is newly created, its set of observers is empty. Two observers are considered the same if and only if the equals method returns true for them.

Constructor & Destructor Documentation

com.pcbsys.nirvana.client.Observable.Observable ( )

Construct an Observable with zero Observers.

Member Function Documentation

void com.pcbsys.nirvana.client.Observable.addObserver ( IObserver  o)

Adds an observer to the set of observers for this object, provided that it is not the same as some observer already in the set.

The order in which notifications will be delivered to multiple observers is not specified. See the class comment.

Parameters
oan observer to be added
Exceptions
Exceptionif the parameter o is null
void com.pcbsys.nirvana.client.Observable.clearChanged ( )
protected

Indicates that this object has no longer changed, or that it has already notified all of its observers of its most recent change, so that the hasChanged method will now return false.

This method is called automatically by the notifyObservers methods.

Observable.notifyObservers Observable.notifyObservers(Object)

int com.pcbsys.nirvana.client.Observable.countObservers ( )

Returns the number of observers of this Observable object.

Returns
the number of observers of this object
void com.pcbsys.nirvana.client.Observable.deleteObserver ( IObserver  o)

Deletes an observer from the set of observers of this object.

Passing null to this method will have no effect.

Parameters
othe observer to be deleted.
void com.pcbsys.nirvana.client.Observable.deleteObservers ( )

Clears the observer list so that this object no longer has any observers.

bool com.pcbsys.nirvana.client.Observable.hasChanged ( )

Tests if this object has changed.

Returns
true if and only if the setChanged method has been called more recently than the clearChanged method on this object; false otherwise.
void com.pcbsys.nirvana.client.Observable.notifyObservers ( )

If this object has changed, as indicated by the hasChanged method, then notify all of its observers and then call the clearChanged method to indicate that this object has no longer changed.

Each observer has its update method called with two arguments: this observable object and null. In other words, this method is equivalent to:

notifyObservers(null)

Observable.clearChanged Observable.hasChanged IObserver.update(Observable, Object)

void com.pcbsys.nirvana.client.Observable.notifyObservers ( Object  arg)

If this object has changed, as indicated by the

hasChanged method, then notify all of its observers and then call the clearChanged method to indicate that this object has no longer changed.

Each observer has its update method called with two arguments: this observable object and the arg argument.

Parameters
argany object.

Observable.clearChanged Observable.hasChanged IObserver.update(Observable, Object)

void com.pcbsys.nirvana.client.Observable.setChanged ( )
protected

Marks this Observable object as having been changed; the hasChanged method will now return true.