java.util

Class Observable

public class Observable extends Object

This class represents an object which is observable. Other objects may register their intent to be notified when this object changes; and when this object does change, it will trigger the update method of each observer. Note that the notifyObservers() method of this class is unrelated to the notify() of Object.

See Also: Observer

UNKNOWN: updated to 1.4

Constructor Summary
Observable()
Constructs an Observable with zero Observers.
Method Summary
voidaddObserver(Observer observer)
Adds an Observer.
protected voidclearChanged()
Reset this Observable's state to unchanged.
intcountObservers()
Returns the number of observers for this object.
voiddeleteObserver(Observer victim)
Deletes an Observer of this Observable.
voiddeleteObservers()
Deletes all Observers of this Observable.
booleanhasChanged()
True if setChanged has been called more recently than clearChanged.
voidnotifyObservers()
If the Observable has actually changed then tell all Observers about it, then reset state to unchanged.
voidnotifyObservers(Object obj)
If the Observable has actually changed then tell all Observers about it, then reset state to unchanged.
protected voidsetChanged()
Marks this Observable as having changed.

Constructor Detail

Observable

public Observable()
Constructs an Observable with zero Observers.

Method Detail

addObserver

public void addObserver(Observer observer)
Adds an Observer. If the observer was already added this method does nothing.

Parameters: observer Observer to add

Throws: NullPointerException if observer is null

clearChanged

protected void clearChanged()
Reset this Observable's state to unchanged. This is called automatically by notifyObservers once all observers have been notified.

See Also: notifyObservers

countObservers

public int countObservers()
Returns the number of observers for this object.

Returns: number of Observers for this

deleteObserver

public void deleteObserver(Observer victim)
Deletes an Observer of this Observable.

Parameters: victim Observer to delete

deleteObservers

public void deleteObservers()
Deletes all Observers of this Observable.

hasChanged

public boolean hasChanged()
True if setChanged has been called more recently than clearChanged.

Returns: whether or not this Observable has changed

notifyObservers

public void notifyObservers()
If the Observable has actually changed then tell all Observers about it, then reset state to unchanged.

See Also: notifyObservers Observer

notifyObservers

public void notifyObservers(Object obj)
If the Observable has actually changed then tell all Observers about it, then reset state to unchanged. Note that though the order of notification is unspecified in subclasses, in Observable it is in the order of registration.

Parameters: obj argument to Observer's update method

See Also: Observer

setChanged

protected void setChanged()
Marks this Observable as having changed.