package org.oddjob.monitor.model;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.Observable;
import org.oddjob.state.StateEvent;
/**
* This class encapsualtes the model of a job state.
*
* @author Rob Gordon
*/
public class StateModel extends Observable {
private String state;
private String time;
private String exception;
public void change(StateEvent event) {
state = event.getState().toString();
time = event.getTime().toString();
StringWriter stackBuffer = new StringWriter();
Throwable t = event.getException();
if (t != null) {
PrintWriter writer = new PrintWriter(stackBuffer);
t.printStackTrace(writer);
exception = stackBuffer.toString();
}
else {
exception = "";
}
setChanged();
notifyObservers();
}
/**
* @return Returns the exception.
*/
public String getException() {
return exception;
}
/**
* @return Returns the state.
*/
public String getState() {
return state;
}
/**
* @return Returns the time.
*/
public String getTime() {
return time;
}
public void clear() {
state = "";
time = "";
exception = "";
setChanged();
notifyObservers();
}
}