JAL-3878 Remove throws declaration from param store construction.
[jalview.git] / src / jalview / ws / slivkaws / SlivkaWSInstance.java
index 658d99e..613c702 100644 (file)
@@ -1,7 +1,20 @@
 package jalview.ws.slivkaws;
 
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOError;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Arrays;
+import java.util.EnumMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import jalview.datamodel.AlignmentI;
 import jalview.datamodel.SequenceI;
 import jalview.gui.WebserviceInfo;
+import jalview.io.DataSourceType;
 import jalview.io.FileFormat;
 import jalview.io.FormatAdapter;
 import jalview.ws.api.JalviewServiceEndpointProviderI;
@@ -15,18 +28,7 @@ import jalview.ws.params.ParamManager;
 import jalview.ws.params.WsParamSetI;
 import javajs.http.ClientProtocolException;
 
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOError;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Arrays;
 import java.util.Collection;
-import java.util.EnumMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
 import uk.ac.dundee.compbio.slivkaclient.Job;
 import uk.ac.dundee.compbio.slivkaclient.JobRequest;
 import uk.ac.dundee.compbio.slivkaclient.Parameter;
@@ -95,8 +97,11 @@ public abstract class SlivkaWSInstance extends ServiceWithParameters
           format = FileFormat.Fasta;
           break;
         }
-        InputStream stream = new ByteArrayInputStream(
-            fa.formatSequences(format, sequences.toArray(new SequenceI[0]))
+        
+        // we avoid any use of Jalview's user facing export routines here
+        
+        InputStream stream = new ByteArrayInputStream(format.getWriter(null)
+                .print(sequences.toArray(new SequenceI[0]), false)
                 .getBytes());
         request.addFile(param.getId(), stream);
       }
@@ -226,13 +231,7 @@ public abstract class SlivkaWSInstance extends ServiceWithParameters
   {
     if (store == null)
     {
-      try
-      {
-        store = new SlivkaDatastore(service);
-      } catch (IOException e)
-      {
-        throw new IOError(e);
-      }
+      store = new SlivkaDatastore(service);
     }
   }
 
@@ -251,5 +250,19 @@ public abstract class SlivkaWSInstance extends ServiceWithParameters
     }
     return store;
   }
+  
+  public static AlignmentI readAlignment(RemoteFile f) throws IOException
+  {
+    final var mimetype = f.getMediaType();
+    FileFormat format;
+    if (mimetype.equals("application/clustal"))
+      format = FileFormat.Clustal;
+    else if (mimetype.equals("application/fasta"))
+      format = FileFormat.Fasta;
+    else
+      return null;
+    return new FormatAdapter().readFile(f.getContentUrl().toString(),
+        DataSourceType.URL, format);
+  }
 
 }