Merge branch 'Jalview-JS/develop' into merge_js_develop
[jalview.git] / src / jalview / ws / gui / WsJob.java
1 /**
2  * 
3  */
4 package jalview.ws.gui;
5
6 import jalview.ws.AWsJob;
7 import jalview.ws.api.JobId;
8
9 /**
10  * Bean that holds state for a job
11  * 
12  * @author jprocter
13  *
14  */
15 public class WsJob extends AWsJob
16 {
17
18   public enum JobState
19   {
20     INVALID, READY, SUBMITTED, QUEUED, RUNNING, FINISHED, BROKEN, FAILED,
21     UNKNOWN, SERVERERROR, CANCELLED;
22   };
23
24   JobState state = JobState.UNKNOWN;
25
26   boolean hasResults = false, validInput = false;
27   /* (non-Javadoc)
28    * @see jalview.ws.AWsJob#hasResults()
29    */
30   @Override
31   public boolean hasResults()
32   {
33     return hasResults;
34   }
35
36   /* (non-Javadoc)
37    * @see jalview.ws.AWsJob#hasValidInput()
38    */
39   @Override
40   public boolean hasValidInput()
41   {
42     return validInput;
43   }
44
45   /* (non-Javadoc)
46    * @see jalview.ws.AWsJob#isRunning()
47    */
48   @Override
49   public boolean isRunning()
50   {
51     return JobState.RUNNING.equals(state);
52   }
53
54   /* (non-Javadoc)
55    * @see jalview.ws.AWsJob#isQueued()
56    */
57   @Override
58   public boolean isQueued()
59   {
60     return JobState.QUEUED.equals(state);
61   }
62
63   /* (non-Javadoc)
64    * @see jalview.ws.AWsJob#isFinished()
65    */
66   @Override
67   public boolean isFinished()
68   {
69     // TODO isSubjobComplete and finished flags mean same thing ?
70     return JobState.FINISHED.equals(state);
71   }
72
73   /* (non-Javadoc)
74    * @see jalview.ws.AWsJob#isFailed()
75    */
76   @Override
77   public boolean isFailed()
78   {
79     return JobState.FAILED.equals(state);
80   }
81
82   /* (non-Javadoc)
83    * @see jalview.ws.AWsJob#isBroken()
84    */
85   @Override
86   public boolean isBroken()
87   {
88     return JobState.BROKEN.equals(state);
89   }
90
91   /* (non-Javadoc)
92    * @see jalview.ws.AWsJob#isServerError()
93    */
94   @Override
95   public boolean isServerError()
96   {
97     return JobState.SERVERERROR.equals(state);
98   }
99
100   /* (non-Javadoc)
101    * @see jalview.ws.AWsJob#hasStatus()
102    */
103   @Override
104   public boolean hasStatus()
105   {
106     return status != null && status.length() > 0;
107   }
108
109   /* (non-Javadoc)
110    * @see jalview.ws.AWsJob#getStatus()
111    */
112   @Override
113   public String getStatus()
114   {
115     return status;
116   }
117
118   /* (non-Javadoc)
119    * @see jalview.ws.AWsJob#hasResponse()
120    */
121   @Override
122   public boolean hasResponse()
123   {
124     // TODO Auto-generated method stub
125     return hasStatus();
126   }
127
128   /* (non-Javadoc)
129    * @see jalview.ws.AWsJob#clearResponse()
130    */
131   @Override
132   public void clearResponse()
133   {
134     status = "";
135   }
136
137   /* (non-Javadoc)
138    * @see jalview.ws.AWsJob#getState()
139    */
140   @Override
141   public String getState()
142   {
143     return state.toString();
144   }
145
146   /**
147    * @return the current JobState
148    */
149   public JobState getJobState()
150   {
151     return state;
152   }
153
154   /**
155    * set the job state
156    * 
157    * @param state
158    */
159   public void setState(JobState state)
160   {
161     this.state = state;
162   }
163
164   String status = "";
165
166   /**
167    * Set the log for this job
168    * 
169    * @parag log
170    */
171   public void setStatus(String log)
172   {
173     status = log;
174
175   }
176
177   /*
178    * bean holding submission info for a next-gen ws job 
179    */
180   JobId jobHandle = null;
181
182   /**
183    * stash the handle for the job and mark it as submitted
184    * 
185    * @param align
186    */
187   public void setJobHandle(JobId align)
188   {
189     jobHandle = align;
190     setJobId(jobHandle.getJobId());
191     submitted = true;
192
193   }
194
195   public JobId getJobHandle()
196   {
197     return jobHandle;
198   }
199
200 }