JAL-3807 - Add single sequence capabilities to jws2.JPredClient
[jalview.git] / src / jalview / ws / slivkaws / SlivkaJPredServiceInstance.java
index b8e4d2f..462be28 100644 (file)
@@ -8,16 +8,41 @@ import jalview.datamodel.AlignmentI;
 import jalview.datamodel.SequenceI;
 import jalview.io.DataSourceType;
 import jalview.io.JPredFile;
-import jalview.ws.api.JPredMutlipleAlignmentServiceI;
+import jalview.ws.api.JPredServiceI;
 import jalview.ws.api.JobId;
+import jalview.ws.params.ArgumentI;
 import uk.ac.dundee.compbio.slivkaclient.RemoteFile;
 import uk.ac.dundee.compbio.slivkaclient.SlivkaClient;
 import uk.ac.dundee.compbio.slivkaclient.SlivkaService;
 
 public class SlivkaJPredServiceInstance extends SlivkaWSInstance
-    implements JPredMutlipleAlignmentServiceI
+    implements JPredServiceI
 {
 
+  private class InputFormatParameter implements ArgumentI
+  {
+    String value = "";
+
+    @Override
+    public String getName()
+    {
+      return "format";
+    }
+
+    @Override
+    public String getValue()
+    {
+      return value;
+    }
+
+    @Override
+    public void setValue(String selectedItem)
+    {
+      value = selectedItem;
+    }
+  }
+
+
   public SlivkaJPredServiceInstance(SlivkaClient client,
       SlivkaService service, String action)
   {
@@ -26,9 +51,13 @@ public class SlivkaJPredServiceInstance extends SlivkaWSInstance
   }
 
   @Override
-  public JobId align(List<SequenceI> sequences) throws Throwable
+  public JobId predict(List<SequenceI> sequences, boolean msa) throws Throwable
   {
-    return super.submit(sequences, null, null);
+    // Hack allowing to send both single and msa jobs
+    // until msa and single sequence services are separated.
+    var arg = new InputFormatParameter();
+    arg.setValue(msa ? "fasta" : "seq");
+    return super.submit(sequences, null, List.of(arg));
   }
 
   @Override