1 package jalview.ws2.slivka;
3 import java.io.IOException;
4 import java.util.Arrays;
5 import java.util.EnumMap;
6 import java.util.HashSet;
10 import jalview.datamodel.SequenceI;
11 import jalview.ws.gui.WsJob;
12 import jalview.ws.params.ArgumentI;
13 import jalview.ws.params.ParamDatastoreI;
14 import jalview.ws.params.WsParamSetI;
15 import jalview.ws.slivkaws.SlivkaDatastore;
16 import jalview.ws2.JalviewWebServiceI;
17 import jalview.ws2.WSJobID;
18 import jalview.ws2.WSJobTrackerI;
19 import uk.ac.dundee.compbio.slivkaclient.JobState;
20 import uk.ac.dundee.compbio.slivkaclient.SlivkaClient;
21 import uk.ac.dundee.compbio.slivkaclient.SlivkaService;
23 public abstract class SlivkaWS<R> implements JalviewWebServiceI<R>
25 protected final SlivkaClient client;
26 protected final SlivkaService service;
27 protected SlivkaDatastore store = null;
28 protected final String name;
29 protected final String description;
30 protected final String operation;
31 protected int type = 0;
33 protected static final EnumMap<JobState, WsJob.JobState> stateMap = new EnumMap<>(JobState.class);
35 stateMap.put(JobState.PENDING, WsJob.JobState.QUEUED);
36 stateMap.put(JobState.REJECTED, WsJob.JobState.INVALID);
37 stateMap.put(JobState.ACCEPTED, WsJob.JobState.QUEUED);
38 stateMap.put(JobState.QUEUED, WsJob.JobState.QUEUED);
39 stateMap.put(JobState.RUNNING, WsJob.JobState.RUNNING);
40 stateMap.put(JobState.COMPLETED, WsJob.JobState.FINISHED);
41 stateMap.put(JobState.INTERRUPTED, WsJob.JobState.CANCELLED);
42 stateMap.put(JobState.DELETED, WsJob.JobState.CANCELLED);
43 stateMap.put(JobState.FAILED, WsJob.JobState.FAILED);
44 stateMap.put(JobState.ERROR, WsJob.JobState.SERVERERROR);
45 stateMap.put(JobState.UNKNOWN, WsJob.JobState.UNKNOWN);
47 protected final Set<WsJob.JobState> failedStates = new HashSet<>(Arrays.asList(
48 WsJob.JobState.INVALID, WsJob.JobState.BROKEN, WsJob.JobState.FAILED,
49 WsJob.JobState.SERVERERROR, WsJob.JobState.CANCELLED
52 public SlivkaWS(SlivkaClient client, SlivkaService service, String operation) {
54 this.service = service;
55 this.operation = operation;
56 this.name = service.getName();
57 this.description = "";
61 public String getHostName()
63 return client.getUrl().toString();
67 public String getName()
69 // TODO Auto-generated method stub
74 public String getDescription()
76 // TODO Auto-generated method stub
81 public String getOperationType()
83 // TODO Auto-generated method stub
88 public int getTypeFlags()
90 // TODO Auto-generated method stub
95 public boolean canSubmitGaps()
97 // TODO Auto-generated method stub
102 public int getMinSequences()
104 // TODO Auto-generated method stub
109 public int getMaxSequences()
111 // TODO Auto-generated method stub
116 public boolean hasParameters()
118 // TODO Auto-generated method stub
123 public ParamDatastoreI getParamStore()
125 // TODO Auto-generated method stub
130 public WSJobID submit(List<SequenceI> sequences, WsParamSetI preset,
131 List<ArgumentI> parameters) throws IOException
133 // TODO Auto-generated method stub
138 public void updateProgress(WSJobID id, WSJobTrackerI tracker)
141 // TODO Auto-generated method stub
146 public R getResult(WSJobID id) throws IOException
148 // TODO Auto-generated method stub
153 public void cancel(WSJobID id) throws IOException
155 // TODO Auto-generated method stub
160 public boolean handleSubmissionError(WSJobID id, Throwable th,
161 WSJobTrackerI tracker)
163 // TODO Auto-generated method stub
168 public boolean handleCollectionError(WSJobID id, Throwable th,
169 WSJobTrackerI tracker)
171 // TODO Auto-generated method stub