JAL-3854 patched SeqSeqUtils.deUniquify to not use instanceOf - seems to work
[jalview.git] / src / jalview / ws / slivkaws / SlivkaMsaServiceInstance.java
1 package jalview.ws.slivkaws;
2
3 import jalview.bin.Cache;
4 import jalview.datamodel.AlignmentI;
5 import jalview.datamodel.SequenceI;
6 import jalview.io.DataSourceType;
7 import jalview.io.FileFormat;
8 import jalview.io.FormatAdapter;
9 import jalview.ws.api.JobId;
10 import jalview.ws.api.MultipleSequenceAlignmentI;
11 import jalview.ws.params.ArgumentI;
12 import jalview.ws.params.InvalidArgumentException;
13 import jalview.ws.params.WsParamSetI;
14
15 import java.io.IOError;
16 import java.io.IOException;
17 import java.rmi.ServerError;
18 import java.util.Collection;
19 import java.util.List;
20
21 import compbio.data.msa.Category;
22 import uk.ac.dundee.compbio.slivkaclient.RemoteFile;
23 import uk.ac.dundee.compbio.slivkaclient.SlivkaClient;
24 import uk.ac.dundee.compbio.slivkaclient.SlivkaService;
25
26 public class SlivkaMsaServiceInstance extends SlivkaWSInstance implements MultipleSequenceAlignmentI
27 {
28   SlivkaMsaServiceInstance(SlivkaClient client, SlivkaService service, String category) {
29     super(client, service, category);
30     style = ServiceClient.MSAWSCLIENT;
31   }
32
33   @Override
34   public JobId align(List<SequenceI> toalign, WsParamSetI parameters, List<ArgumentI> list) throws Throwable
35   {
36     return super.submit(toalign, parameters, list);
37   }
38
39   @Override
40   public AlignmentI getAlignmentFor(JobId jobId) throws InvalidArgumentException, ServerError, IOError
41   {
42     Collection<RemoteFile> files;
43     try
44     {
45       var slivkaJob = client.getJob(jobId.getJobId());
46       files = slivkaJob.getResults();
47       for (RemoteFile f : files)
48       {
49         if (f.getMediaType().equals("application/clustal"))
50         {
51           return new FormatAdapter().readFile(f.getContentUrl().toString(), DataSourceType.URL, FileFormat.Clustal);
52         }
53         else if (f.getMediaType().equals("application/fasta"))
54         {
55           return new FormatAdapter().readFile(f.getContentUrl().toString(), DataSourceType.URL, FileFormat.Fasta);
56         }
57       }
58     } catch (IOException e)
59     {
60       throw new IOError(e);
61     }
62     return null;
63   }
64 }