home *** CD-ROM | disk | FTP | other *** search
/ S283 Planetary Science &n…he Search for Life DVD 2 / DVD-ROM.iso / install / jre1_3 / lib / rt.jar / java / util / Observable.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  1.1 KB  |  59 lines

  1. package java.util;
  2.  
  3. public class Observable {
  4.    private boolean changed = false;
  5.    private Vector obs = new Vector();
  6.  
  7.    public synchronized void addObserver(Observer var1) {
  8.       if (!this.obs.contains(var1)) {
  9.          this.obs.addElement(var1);
  10.       }
  11.  
  12.    }
  13.  
  14.    public synchronized void deleteObserver(Observer var1) {
  15.       this.obs.removeElement(var1);
  16.    }
  17.  
  18.    public void notifyObservers() {
  19.       this.notifyObservers((Object)null);
  20.    }
  21.  
  22.    public void notifyObservers(Object var1) {
  23.       Object[] var2;
  24.       synchronized(this) {
  25.          if (!this.changed) {
  26.             return;
  27.          }
  28.  
  29.          var2 = this.obs.toArray();
  30.          this.clearChanged();
  31.       }
  32.  
  33.       for(int var4 = var2.length - 1; var4 >= 0; --var4) {
  34.          ((Observer)var2[var4]).update(this, var1);
  35.       }
  36.  
  37.    }
  38.  
  39.    public synchronized void deleteObservers() {
  40.       this.obs.removeAllElements();
  41.    }
  42.  
  43.    protected synchronized void setChanged() {
  44.       this.changed = true;
  45.    }
  46.  
  47.    protected synchronized void clearChanged() {
  48.       this.changed = false;
  49.    }
  50.  
  51.    public synchronized boolean hasChanged() {
  52.       return this.changed;
  53.    }
  54.  
  55.    public synchronized int countObservers() {
  56.       return this.obs.size();
  57.    }
  58. }
  59.