/*
* AbstractPluginModel.java
*
* Created on 25 April 2005, 07:23
*/
package org.owasp.webscarab.plugin;
import org.owasp.webscarab.util.ReentrantReaderPreferenceReadWriteLock;
import java.beans.PropertyChangeSupport;
import java.beans.PropertyChangeListener;
/**
*
* @author rogan
*/
public class AbstractPluginModel {
public final static String PROPERTY_STATUS = "Status";
public final static String PROPERTY_RUNNING = "Running";
public final static String PROPERTY_STOPPING = "Stopping";
public final static String PROPERTY_MODIFIED = "Modified";
public final static String PROPERTY_BUSY = "Busy";
protected PropertyChangeSupport _changeSupport = new PropertyChangeSupport(this);
protected ReentrantReaderPreferenceReadWriteLock _rwl = new ReentrantReaderPreferenceReadWriteLock();
private String _status = "Stopped";
private boolean _running = false;
private boolean _stopping = false;
private boolean _modified = false;
private boolean _busy = false;
/** Creates a new instance of AbstractPluginModel */
public AbstractPluginModel() {
}
public void setStatus(String status) {
if (!_status.equals(status)) {
String old = _status;
_status = status;
_changeSupport.firePropertyChange(PROPERTY_STATUS, old, _status);
}
}
public String getStatus() {
return _status;
}
public void setRunning(boolean running) {
if (_running != running) {
_running = running;
_changeSupport.firePropertyChange(PROPERTY_RUNNING, !_running, _running);
}
}
public boolean isRunning() {
return _running;
}
public void setStopping(boolean stopping) {
if (_stopping != stopping) {
_stopping = stopping;
_changeSupport.firePropertyChange(PROPERTY_STOPPING, !_stopping, _stopping);
}
}
public boolean isStopping() {
return _stopping;
}
public void setModified(boolean modified) {
if (_modified != modified) {
_modified = modified;
_changeSupport.firePropertyChange(PROPERTY_MODIFIED, !_modified, _modified);
}
}
public boolean isModified() {
return _modified;
}
public void setBusy(boolean busy) {
if (_busy != busy) {
_busy = busy;
_changeSupport.firePropertyChange(PROPERTY_BUSY, !_busy, _busy);
}
}
public boolean isBusy() {
return _busy;
}
public void addPropertyChangeListener(PropertyChangeListener listener) {
_changeSupport.addPropertyChangeListener(listener);
}
public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener) {
_changeSupport.addPropertyChangeListener(propertyName, listener);
}
public void removePropertyChangeListener(PropertyChangeListener listener) {
_changeSupport.removePropertyChangeListener(listener);
}
public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener) {
_changeSupport.removePropertyChangeListener(propertyName, listener);
}
}