home *** CD-ROM | disk | FTP | other *** search
- package java.beans;
-
- import java.io.IOException;
- import java.io.ObjectInputStream;
- import java.io.ObjectOutputStream;
- import java.io.Serializable;
- import java.util.Vector;
-
- public class VetoableChangeSupport implements Serializable {
- private transient Vector listeners;
- private Object source;
- private int vetoableChangeSupportSerializedDataVersion = 1;
-
- public VetoableChangeSupport(Object var1) {
- this.source = var1;
- }
-
- public synchronized void addVetoableChangeListener(VetoableChangeListener var1) {
- if (this.listeners == null) {
- this.listeners = new Vector();
- }
-
- this.listeners.addElement(var1);
- }
-
- public synchronized void removeVetoableChangeListener(VetoableChangeListener var1) {
- if (this.listeners != null) {
- this.listeners.removeElement(var1);
- }
- }
-
- public void fireVetoableChange(String var1, Object var2, Object var3) throws PropertyVetoException {
- if (var2 == null || !var2.equals(var3)) {
- synchronized(this){}
-
- Vector var4;
- try {
- if (this.listeners == null) {
- return;
- }
-
- var4 = (Vector)this.listeners.clone();
- } catch (Throwable var14) {
- throw var14;
- }
-
- PropertyChangeEvent var5 = new PropertyChangeEvent(this.source, var1, var2, var3);
-
- try {
- for(int var6 = 0; var6 < var4.size(); ++var6) {
- VetoableChangeListener var16 = (VetoableChangeListener)var4.elementAt(var6);
- var16.vetoableChange(var5);
- }
-
- } catch (PropertyVetoException var13) {
- var5 = new PropertyChangeEvent(this.source, var1, var3, var2);
-
- for(int var7 = 0; var7 < var4.size(); ++var7) {
- try {
- VetoableChangeListener var8 = (VetoableChangeListener)var4.elementAt(var7);
- var8.vetoableChange(var5);
- } catch (PropertyVetoException var12) {
- }
- }
-
- throw var13;
- }
- }
- }
-
- private void writeObject(ObjectOutputStream var1) throws IOException {
- var1.defaultWriteObject();
- Vector var2 = null;
- synchronized(this){}
-
- try {
- if (this.listeners != null) {
- var2 = (Vector)this.listeners.clone();
- }
- } catch (Throwable var6) {
- throw var6;
- }
-
- if (var2 != null) {
- for(int var3 = 0; var3 < this.listeners.size(); ++var3) {
- VetoableChangeListener var4 = (VetoableChangeListener)var2.elementAt(var3);
- if (var4 instanceof Serializable) {
- var1.writeObject(var4);
- }
- }
- }
-
- var1.writeObject((Object)null);
- }
-
- private void readObject(ObjectInputStream var1) throws ClassNotFoundException, IOException {
- var1.defaultReadObject();
-
- Object var2;
- while((var2 = var1.readObject()) != null) {
- this.addVetoableChangeListener((VetoableChangeListener)var2);
- }
-
- }
- }
-