Merge branch 'improvement/JAL-3848_slivka_0.8' into alpha/JAL-3066_Jalview_212_slivka...
[jalview.git] / src / jalview / ws / slivkaws / SlivkaWSInstance.java
index 0c71c35..80e928a 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;
@@ -254,5 +256,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);
+  }
 
 }