X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fws%2Fslivkaws%2FSlivkaMsaServiceInstance.java;h=374d2eb97cc8a56b13a62198267e335522079c6c;hb=ab58313e7bb31264ddb2715a1c548cdc789d7fa6;hp=efeb582d24bb3d54392708c1bcab1ce8f39f8264;hpb=53c7ffa049dd10ce2c67f100d788c0d07e3fcb11;p=jalview.git diff --git a/src/jalview/ws/slivkaws/SlivkaMsaServiceInstance.java b/src/jalview/ws/slivkaws/SlivkaMsaServiceInstance.java index efeb582..374d2eb 100644 --- a/src/jalview/ws/slivkaws/SlivkaMsaServiceInstance.java +++ b/src/jalview/ws/slivkaws/SlivkaMsaServiceInstance.java @@ -1,5 +1,6 @@ package jalview.ws.slivkaws; + import jalview.datamodel.AlignmentI; import jalview.datamodel.SequenceI; import jalview.io.DataSourceType; @@ -10,81 +11,46 @@ import jalview.ws.api.MultipleSequenceAlignmentI; import jalview.ws.params.ArgumentI; import jalview.ws.params.InvalidArgumentException; import jalview.ws.params.WsParamSetI; - -import java.io.ByteArrayInputStream; import java.io.IOError; import java.io.IOException; -import java.io.InputStream; import java.rmi.ServerError; +import java.util.Collection; import java.util.List; -import java.util.Optional; -import uk.ac.dundee.compbio.slivkaclient.FieldType; -import uk.ac.dundee.compbio.slivkaclient.FormField; import uk.ac.dundee.compbio.slivkaclient.RemoteFile; import uk.ac.dundee.compbio.slivkaclient.SlivkaClient; -import uk.ac.dundee.compbio.slivkaclient.SlivkaForm; import uk.ac.dundee.compbio.slivkaclient.SlivkaService; public class SlivkaMsaServiceInstance extends SlivkaWSInstance implements MultipleSequenceAlignmentI { - SlivkaMsaServiceInstance(SlivkaClient client, SlivkaService service) { - super(client, service, "Sequence Alignment"); + SlivkaMsaServiceInstance(SlivkaClient client, SlivkaService service, String category) { + super(client, service, category); style = ServiceClient.MSAWSCLIENT; } @Override public JobId align(List toalign, WsParamSetI parameters, List list) throws Throwable { - StringBuilder builder = new StringBuilder(); - for (SequenceI seq : toalign) - { - builder.append(">").append(seq.getName()).append("\n"); - builder.append(seq.getSequence()).append("\n"); - } - InputStream stream = new ByteArrayInputStream(builder.toString().getBytes()); - RemoteFile file = client.uploadFile(stream, "input.fasta", "application/fasta"); - SlivkaForm form = service.getForm(); - Optional inputField = form.getFields().stream() - .filter(f -> f.getType() == FieldType.FILE).findFirst(); - if (inputField.isPresent()) - { - form.insert(inputField.get().getName(), file); - } - if (list != null) - { - for (ArgumentI arg : list) - { - FormField field = form.getField(arg.getName()); - if (field.getType() == FieldType.BOOLEAN) - { - form.insert(arg.getName(), (arg.getValue() != null && !arg.getValue().isBlank()) ? true : false); - } - else - { - form.insert(arg.getName(), field.valueOf(arg.getValue())); - } - } - } - return new JobId(service.getName(), service.getName(), form.submit()); + return super.submit(toalign, parameters, list); } @Override public AlignmentI getAlignmentFor(JobId jobId) throws InvalidArgumentException, ServerError, IOError { - List files; + Collection files; try { - files = client.getJobResults(jobId.getJobId()); + var slivkaJob = client.getJob(jobId.getJobId()); + files = slivkaJob.getResults(); for (RemoteFile f : files) { - if (f.getMimeType().equals("application/clustal")) + if (f.getMediaType().equals("application/clustal")) { - return new FormatAdapter().readFile(f.getURL().toString(), DataSourceType.URL, FileFormat.Clustal); + return new FormatAdapter().readFile(f.getContentUrl().toString(), DataSourceType.URL, FileFormat.Clustal); } - else if (f.getMimeType().equals("application/fasta")) + else if (f.getMediaType().equals("application/fasta")) { - return new FormatAdapter().readFile(f.getURL().toString(), DataSourceType.URL, FileFormat.Fasta); + return new FormatAdapter().readFile(f.getContentUrl().toString(), DataSourceType.URL, FileFormat.Fasta); } } } catch (IOException e)