java.util
Class Observable

java.lang.Object
  extended by java.util.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

Constructor Summary
Observable()
          Constructs an Observable with zero Observers.
 
Method Summary
 void addObserver(Observer observer)
          Adds an Observer.
protected  void clearChanged()
          Reset this Observable's state to unchanged.
 int countObservers()
          Returns the number of observers for this object.
 void deleteObserver(Observer victim)
          Deletes an Observer of this Observable.
 void deleteObservers()
          Deletes all Observers of this Observable.
 boolean hasChanged()
          True if setChanged has been called more recently than clearChanged.
 void notifyObservers()
          If the Observable has actually changed then tell all Observers about it, then reset state to unchanged.
 void notifyObservers(Object obj)
          If the Observable has actually changed then tell all Observers about it, then reset state to unchanged.
protected  void setChanged()
          Marks this Observable as having changed.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

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(Object), Observer.update(Observable, Object)

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.update(Observable, Object)

setChanged

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