package jalview.ws.slivkaws; import jalview.datamodel.AlignmentI; import jalview.datamodel.SequenceI; import jalview.ws.api.JobId; import jalview.ws.api.MultipleSequenceAlignmentI; import jalview.ws.params.ArgumentI; import jalview.ws.params.InvalidArgumentException; import jalview.ws.params.WsParamSetI; import java.io.IOError; import java.io.IOException; import java.rmi.ServerError; import java.util.List; import uk.ac.dundee.compbio.slivkaclient.RemoteFile; import uk.ac.dundee.compbio.slivkaclient.SlivkaClient; import uk.ac.dundee.compbio.slivkaclient.SlivkaService; public class SlivkaMsaServiceInstance extends SlivkaWSInstance implements MultipleSequenceAlignmentI { 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 { return super.submit(toalign, parameters, list); } @Override public AlignmentI getAlignmentFor(JobId jobId) throws InvalidArgumentException, ServerError, IOError { try { List files = client.getJobResults(jobId.getJobId()); for (RemoteFile f : files) { var aln = readAlignment(f); if (aln != null) { return aln; } } } catch (IOException e) { throw new IOError(e); } return null; } }