/** * */ package jalview.ws.gui; import jalview.ws.AWsJob; import jalview.ws.api.JobId; /** * 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; } /* * bean holding submission info for a next-gen ws job */ JobId jobHandle = null; /** * stash the handle for the job and mark it as submitted * * @param align */ public void setJobHandle(JobId align) { jobHandle = align; setJobId(jobHandle.getJobId()); submitted = true; } public JobId getJobHandle() { return jobHandle; } }