JAL-4199 Update slivka client
[jalview.git] / src / jalview / ws2 / client / slivka / SlivkaWSClient.java
index bef502b..7dcdae1 100644 (file)
@@ -46,10 +46,10 @@ public class SlivkaWSClient implements WebServiceClientI
 
   final SlivkaClient client;
 
-  SlivkaWSClient(SlivkaService service)
+  SlivkaWSClient(SlivkaClient client, SlivkaService service)
   {
     this.service = service;
-    this.client = service.getClient();
+    this.client = client;
   }
 
   @Override
@@ -72,7 +72,7 @@ public class SlivkaWSClient implements WebServiceClientI
   public WebServiceJobHandle submit(List<SequenceI> sequences,
       List<ArgumentI> args, Credentials credentials) throws IOException
   {
-    var request = new uk.ac.dundee.compbio.slivkaclient.JobRequest();
+    var request = new uk.ac.dundee.compbio.slivkaclient.RequestValues();
     for (Parameter param : service.getParameters())
     {
       // TODO: restrict input sequences parameter name to "sequences"
@@ -131,8 +131,8 @@ public class SlivkaWSClient implements WebServiceClientI
         }
       }
     }
-    var job = service.submitJob(request);
-    return createJobHandle(job.getId());
+    var jobId = client.submitJob(service, request);
+    return createJobHandle(jobId);
   }
 
   protected WebServiceJobHandle createJobHandle(String jobId)
@@ -145,8 +145,7 @@ public class SlivkaWSClient implements WebServiceClientI
   @Override
   public JobStatus getStatus(WebServiceJobHandle job) throws IOException
   {
-    var slivkaJob = client.getJob(job.getJobId());
-    return statusMap.getOrDefault(slivkaJob.getStatus(), JobStatus.UNKNOWN);
+    return statusMap.getOrDefault(client.fetchJobStatus(job.getJobId()), JobStatus.UNKNOWN);
   }
 
   protected static final EnumMap<Job.Status, JobStatus> statusMap = new EnumMap<>(Job.Status.class);
@@ -168,13 +167,12 @@ public class SlivkaWSClient implements WebServiceClientI
   @Override
   public String getLog(WebServiceJobHandle job) throws IOException
   {
-    var slivkaJob = client.getJob(job.getJobId());
-    for (var f : slivkaJob.getResults())
+    for (var f : client.fetchFilesList(job.getJobId()))
     {
       if (f.getLabel().equals("log"))
       {
         ByteArrayOutputStream stream = new ByteArrayOutputStream();
-        f.writeTo(stream);
+        client.writeFileTo(f, stream);
         return stream.toString("UTF-8");
       }
     }
@@ -184,13 +182,12 @@ public class SlivkaWSClient implements WebServiceClientI
   @Override
   public String getErrorLog(WebServiceJobHandle job) throws IOException
   {
-    var slivkaJob = client.getJob(job.getJobId());
-    for (var f : slivkaJob.getResults())
+    for (var f : client.fetchFilesList(job.getJobId()))
     {
       if (f.getLabel().equals("error-log"))
       {
         ByteArrayOutputStream stream = new ByteArrayOutputStream();
-        f.writeTo(stream);
+        client.writeFileTo(f, stream);
         return stream.toString("UTF-8");
       }
     }
@@ -210,16 +207,15 @@ class SlivkaAlignmentWSClient extends SlivkaWSClient
     implements AlignmentWebServiceClientI
 {
 
-  SlivkaAlignmentWSClient(SlivkaService service)
+  SlivkaAlignmentWSClient(SlivkaClient client, SlivkaService service)
   {
-    super(service);
+    super(client, service);
   }
 
   @Override
   public AlignmentI getAlignment(WebServiceJobHandle job) throws IOException
   {
-    var slivkaJob = client.getJob(job.getJobId());
-    for (var f : slivkaJob.getResults())
+    for (var f : client.fetchFilesList(job.getJobId()))
     {
       // TODO: restrict result file label to "alignment"
       FileFormat format;
@@ -245,9 +241,9 @@ class SlivkaAlignmentWSClient extends SlivkaWSClient
 class SlivkaAnnotationWSClient extends SlivkaWSClient
     implements AnnotationWebServiceClientI
 {
-  SlivkaAnnotationWSClient(SlivkaService service)
+  SlivkaAnnotationWSClient(SlivkaClient client, SlivkaService service)
   {
-    super(service);
+    super(client, service);
   }
 
   @Override
@@ -255,10 +251,9 @@ class SlivkaAnnotationWSClient extends SlivkaWSClient
       List<SequenceI> sequences, Map<String, FeatureColourI> colours,
       Map<String, FeatureMatcherSetI> filters) throws IOException
   {
-    var slivkaJob = client.getJob(job.getJobId());
     var aln = new Alignment(sequences.toArray(new SequenceI[sequences.size()]));
     boolean featPresent = false, annotPresent = false;
-    for (var f : slivkaJob.getResults())
+    for (var f : client.fetchFilesList(job.getJobId()))
     {
       // TODO: restrict file label to "annotations" or "features"
       var match = mediaTypePattern.matcher(f.getMediaType());