Merge branch 'improvement/JAL-3848_slivka_0.8' into alpha/JAL-3066_Jalview_212_slivka...
[jalview.git] / src / jalview / ws / slivkaws / SlivkaMsaServiceInstance.java
index 8d6332c..b992fbe 100644 (file)
@@ -1,7 +1,11 @@
 package jalview.ws.slivkaws;
 
+import jalview.bin.Cache;
 import jalview.datamodel.AlignmentI;
 import jalview.datamodel.SequenceI;
+import jalview.io.DataSourceType;
+import jalview.io.FileFormat;
+import jalview.io.FormatAdapter;
 import jalview.ws.api.JobId;
 import jalview.ws.api.MultipleSequenceAlignmentI;
 import jalview.ws.params.ArgumentI;
@@ -11,6 +15,7 @@ import jalview.ws.params.WsParamSetI;
 import java.io.IOError;
 import java.io.IOException;
 import java.rmi.ServerError;
+import java.util.Collection;
 import java.util.List;
 
 import uk.ac.dundee.compbio.slivkaclient.RemoteFile;
@@ -33,15 +38,20 @@ public class SlivkaMsaServiceInstance extends SlivkaWSInstance implements Multip
   @Override
   public AlignmentI getAlignmentFor(JobId jobId) throws InvalidArgumentException, ServerError, IOError
   {
+    Collection<RemoteFile> files;
     try
     {
-      List<RemoteFile> files = client.getJobResults(jobId.getJobId());
+      var slivkaJob = client.getJob(jobId.getJobId());
+      files = slivkaJob.getResults();
       for (RemoteFile f : files)
       {
-        var aln = readAlignment(f);
-        if (aln != null)
+        if (f.getMediaType().equals("application/clustal"))
         {
-          return aln;
+          return new FormatAdapter().readFile(f.getContentUrl().toString(), DataSourceType.URL, FileFormat.Clustal);
+        }
+        else if (f.getMediaType().equals("application/fasta"))
+        {
+          return new FormatAdapter().readFile(f.getContentUrl().toString(), DataSourceType.URL, FileFormat.Fasta);
         }
       }
     } catch (IOException e)