home *** CD-ROM | disk | FTP | other *** search
/ PC Pro 1999 April / DPPCPRO0499.ISO / April / Notes / 50b2wic.exe / DATA1.CAB / NotesProgramFilesJavaSupport / rt.jar / java / beans / PropertyChangeSupport.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-04-23  |  2.1 KB  |  92 lines

  1. package java.beans;
  2.  
  3. import java.io.IOException;
  4. import java.io.ObjectInputStream;
  5. import java.io.ObjectOutputStream;
  6. import java.io.Serializable;
  7. import java.util.Vector;
  8.  
  9. public class PropertyChangeSupport implements Serializable {
  10.    private transient Vector listeners;
  11.    private Object source;
  12.    private int propertyChangeSupportSerializedDataVersion = 1;
  13.  
  14.    public PropertyChangeSupport(Object var1) {
  15.       this.source = var1;
  16.    }
  17.  
  18.    public synchronized void addPropertyChangeListener(PropertyChangeListener var1) {
  19.       if (this.listeners == null) {
  20.          this.listeners = new Vector();
  21.       }
  22.  
  23.       this.listeners.addElement(var1);
  24.    }
  25.  
  26.    public synchronized void removePropertyChangeListener(PropertyChangeListener var1) {
  27.       if (this.listeners != null) {
  28.          this.listeners.removeElement(var1);
  29.       }
  30.    }
  31.  
  32.    public void firePropertyChange(String var1, Object var2, Object var3) {
  33.       if (var2 == null || !var2.equals(var3)) {
  34.          synchronized(this){}
  35.  
  36.          Vector var4;
  37.          try {
  38.             if (this.listeners == null) {
  39.                return;
  40.             }
  41.  
  42.             var4 = (Vector)this.listeners.clone();
  43.          } catch (Throwable var9) {
  44.             throw var9;
  45.          }
  46.  
  47.          PropertyChangeEvent var5 = new PropertyChangeEvent(this.source, var1, var2, var3);
  48.  
  49.          for(int var6 = 0; var6 < var4.size(); ++var6) {
  50.             PropertyChangeListener var7 = (PropertyChangeListener)var4.elementAt(var6);
  51.             var7.propertyChange(var5);
  52.          }
  53.  
  54.       }
  55.    }
  56.  
  57.    private void writeObject(ObjectOutputStream var1) throws IOException {
  58.       var1.defaultWriteObject();
  59.       Vector var2 = null;
  60.       synchronized(this){}
  61.  
  62.       try {
  63.          if (this.listeners != null) {
  64.             var2 = (Vector)this.listeners.clone();
  65.          }
  66.       } catch (Throwable var6) {
  67.          throw var6;
  68.       }
  69.  
  70.       if (var2 != null) {
  71.          for(int var3 = 0; var3 < var2.size(); ++var3) {
  72.             PropertyChangeListener var4 = (PropertyChangeListener)var2.elementAt(var3);
  73.             if (var4 instanceof Serializable) {
  74.                var1.writeObject(var4);
  75.             }
  76.          }
  77.       }
  78.  
  79.       var1.writeObject((Object)null);
  80.    }
  81.  
  82.    private void readObject(ObjectInputStream var1) throws ClassNotFoundException, IOException {
  83.       var1.defaultReadObject();
  84.  
  85.       Object var2;
  86.       while((var2 = var1.readObject()) != null) {
  87.          this.addPropertyChangeListener((PropertyChangeListener)var2);
  88.       }
  89.  
  90.    }
  91. }
  92.