package zad12; import java.beans.*; import java.io.Serializable; class Constrained implements Serializable { protected PropertyChangeSupport chg = new PropertyChangeSupport(this); protected VetoableChangeSupport veto = new VetoableChangeSupport(this); private void addPropertyChangeListener(PropertyChangeListener pcl) { chg.addPropertyChangeListener(pcl); } private void removePropertyChangeListener(PropertyChangeListener pcl) { chg.addPropertyChangeListener(pcl); } private synchronized void addVetoableChangeListener(VetoableChangeListener listener) { veto.addVetoableChangeListener(listener); } private synchronized void removeVetoableChangeListener(VetoableChangeListener listener) { veto.removeVetoableChangeListener(listener); } class BoundedProperty<T> { private String name; private T value; public BoundedProperty(String name) { this.name = name; } public T getValue() { return value; } public void setValue(T newValue) throws PropertyVetoException { T old = value; veto.fireVetoableChange( "value", old, value ); value = newValue; chg.firePropertyChange(name, old, value); } } public static void main(String[] args) throws PropertyVetoException{ String s="ala"; BoundedProperty<T> bp=new BoundedProperty<T>(s); } }
Comment