--- /dev/null
+/**
+ *
+ */
+package jalview.ws.gui;
+
+import jalview.ws.AWsJob;
+
+/**
+ * Bean that holds state for a job
+ *
+ * @author jprocter
+ *
+ */
+public class WsJob extends AWsJob
+{
+
+ public enum JobState
+ {
+ INVALID, READY, SUBMITTED, QUEUED, RUNNING, FINISHED, BROKEN, FAILED,
+ UNKNOWN, SERVERERROR, CANCELLED;
+ };
+
+ JobState state = JobState.UNKNOWN;
+
+ boolean hasResults = false, validInput = false;
+ /* (non-Javadoc)
+ * @see jalview.ws.AWsJob#hasResults()
+ */
+ @Override
+ public boolean hasResults()
+ {
+ return hasResults;
+ }
+
+ /* (non-Javadoc)
+ * @see jalview.ws.AWsJob#hasValidInput()
+ */
+ @Override
+ public boolean hasValidInput()
+ {
+ return validInput;
+ }
+
+ /* (non-Javadoc)
+ * @see jalview.ws.AWsJob#isRunning()
+ */
+ @Override
+ public boolean isRunning()
+ {
+ return JobState.RUNNING.equals(state);
+ }
+
+ /* (non-Javadoc)
+ * @see jalview.ws.AWsJob#isQueued()
+ */
+ @Override
+ public boolean isQueued()
+ {
+ return JobState.QUEUED.equals(state);
+ }
+
+ /* (non-Javadoc)
+ * @see jalview.ws.AWsJob#isFinished()
+ */
+ @Override
+ public boolean isFinished()
+ {
+ // TODO isSubjobComplete and finished flags mean same thing ?
+ return JobState.FINISHED.equals(state);
+ }
+
+ /* (non-Javadoc)
+ * @see jalview.ws.AWsJob#isFailed()
+ */
+ @Override
+ public boolean isFailed()
+ {
+ return JobState.FAILED.equals(state);
+ }
+
+ /* (non-Javadoc)
+ * @see jalview.ws.AWsJob#isBroken()
+ */
+ @Override
+ public boolean isBroken()
+ {
+ return JobState.BROKEN.equals(state);
+ }
+
+ /* (non-Javadoc)
+ * @see jalview.ws.AWsJob#isServerError()
+ */
+ @Override
+ public boolean isServerError()
+ {
+ return JobState.SERVERERROR.equals(state);
+ }
+
+ /* (non-Javadoc)
+ * @see jalview.ws.AWsJob#hasStatus()
+ */
+ @Override
+ public boolean hasStatus()
+ {
+ return status != null && status.length() > 0;
+ }
+
+ /* (non-Javadoc)
+ * @see jalview.ws.AWsJob#getStatus()
+ */
+ @Override
+ public String getStatus()
+ {
+ return status;
+ }
+
+ /* (non-Javadoc)
+ * @see jalview.ws.AWsJob#hasResponse()
+ */
+ @Override
+ public boolean hasResponse()
+ {
+ // TODO Auto-generated method stub
+ return hasStatus();
+ }
+
+ /* (non-Javadoc)
+ * @see jalview.ws.AWsJob#clearResponse()
+ */
+ @Override
+ public void clearResponse()
+ {
+ status = "";
+ }
+
+ /* (non-Javadoc)
+ * @see jalview.ws.AWsJob#getState()
+ */
+ @Override
+ public String getState()
+ {
+ return state.toString();
+ }
+
+ /**
+ * @return the current JobState
+ */
+ public JobState getJobState()
+ {
+ return state;
+ }
+
+ /**
+ * set the job state
+ *
+ * @param state
+ */
+ public void setState(JobState state)
+ {
+ this.state = state;
+ }
+
+ String status = "";
+
+ /**
+ * Set the log for this job
+ *
+ * @parag log
+ */
+ public void setStatus(String log)
+ {
+ status = log;
+
+ }
+
+}