JAL-3878 Initial preparation.
[jalview.git] / src / jalview / ws2 / WebServiceWorkerI.java
1 package jalview.ws2;
2
3 import java.io.IOException;
4 import java.util.List;
5
6 import javax.print.attribute.standard.JobState;
7
8 import jalview.util.MathUtils;
9
10 public interface WebServiceWorkerI
11 {
12   public class WSJob
13   {
14     public final long uid = MathUtils.getUID();
15     
16     protected WSJobState state = WSJobState.UNKNOWN;
17
18     protected String jobID = "";
19
20     protected int jobNum = 0;
21
22     protected int allowedExceptions = 3;
23
24     public long getUID() {
25       return uid;
26     }
27     
28     public WSJobState getState()
29     {
30       return state;
31     }
32
33     public void setState(WSJobState state)
34     {
35       this.state = state;
36     }
37
38     public String getJobID()
39     {
40       return jobID;
41     }
42
43     public void setJobID(String jobID) {
44       this.jobID = jobID;
45     }
46     
47     public int getJobNum()
48     {
49       return jobNum;
50     }
51
52     public int getAllowedExceptions()
53     {
54       return allowedExceptions;
55     }
56     
57     public boolean deductAllowedExceptions() {
58       return allowedExceptions-- > 0;
59     }
60     
61     public void resetAllowedExceptions() {
62       allowedExceptions = 3;
63     }
64   }
65
66   public long getUID();
67
68   public List<WSJob> getJobs();
69
70   public WSJobID startJob(WSJob job) throws IOException;
71
72   public boolean pollJob(WSJob job) throws IOException;
73 }