package org.insightech.er.editor.model;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import java.io.Serializable;
public abstract class AbstractModel implements Serializable, Cloneable {
private static final long serialVersionUID = 4266969076408212298L;
private PropertyChangeSupport support;
public AbstractModel() {
this.support = new PropertyChangeSupport(this);
}
protected void firePropertyChange(String name, Object oldValue,
Object newValue) {
this.support.firePropertyChange(name, oldValue, newValue);
}
protected void firePropertyChange(String name, int oldValue, int newValue) {
this.support.firePropertyChange(name, oldValue, newValue);
}
protected void firePropertyChange(String name, boolean oldValue,
boolean newValue) {
this.support.firePropertyChange(name, oldValue, newValue);
}
public void addPropertyChangeListener(PropertyChangeListener listener) {
this.support.addPropertyChangeListener(listener);
}
public void removePropertyChangeListener(PropertyChangeListener listener) {
this.support.removePropertyChangeListener(listener);
}
/**
* {@inheritDoc}
*/
@Override
public AbstractModel clone() {
AbstractModel clone = null;
try {
clone = (AbstractModel) super.clone();
clone.support = new PropertyChangeSupport(clone);
} catch (CloneNotSupportedException e) {
}
return clone;
}
}