JAL-3807 JPred can now successfully submit and track the job.
[jalview.git] / src / jalview / ws / slivkaws / SlivkaMsaServiceInstance.java
1 package jalview.ws.slivkaws;
2
3 import java.io.IOError;
4 import java.io.IOException;
5 import java.rmi.ServerError;
6 import java.util.List;
7
8 import jalview.datamodel.AlignmentI;
9 import jalview.datamodel.SequenceI;
10 import jalview.ws.api.JobId;
11 import jalview.ws.api.MultipleSequenceAlignmentI;
12 import jalview.ws.params.ArgumentI;
13 import jalview.ws.params.InvalidArgumentException;
14 import jalview.ws.params.WsParamSetI;
15 import uk.ac.dundee.compbio.slivkaclient.RemoteFile;
16 import uk.ac.dundee.compbio.slivkaclient.SlivkaClient;
17 import uk.ac.dundee.compbio.slivkaclient.SlivkaService;
18
19 public class SlivkaMsaServiceInstance extends SlivkaWSInstance implements MultipleSequenceAlignmentI
20 {
21   SlivkaMsaServiceInstance(SlivkaClient client, SlivkaService service, String category) {
22     super(client, service, category);
23     style = ServiceClient.MSAWSCLIENT;
24   }
25
26   @Override
27   public JobId align(List<SequenceI> toalign, WsParamSetI parameters, List<ArgumentI> list) throws Throwable
28   {
29     return super.submit(toalign, parameters, list);
30   }
31
32   @Override
33   public AlignmentI getAlignmentFor(JobId jobId) throws InvalidArgumentException, ServerError, IOError
34   {
35     List<RemoteFile> files;
36     try
37     {
38       files = client.getJobResults(jobId.getJobId());
39       for (RemoteFile f : files)
40       {
41         return readAlignment(f);
42       }
43     } catch (IOException e)
44     {
45       throw new IOError(e);
46     }
47     return null;
48   }
49 }