final SlivkaClient client;
- SlivkaWSClient(SlivkaService service)
+ SlivkaWSClient(SlivkaClient client, SlivkaService service)
{
this.service = service;
- this.client = service.getClient();
+ this.client = client;
}
@Override
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"
}
}
}
- var job = service.submitJob(request);
- return createJobHandle(job.getId());
+ var jobId = client.submitJob(service, request);
+ return createJobHandle(jobId);
}
protected WebServiceJobHandle createJobHandle(String jobId)
@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);
@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");
}
}
@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");
}
}
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;
class SlivkaAnnotationWSClient extends SlivkaWSClient
implements AnnotationWebServiceClientI
{
- SlivkaAnnotationWSClient(SlivkaService service)
+ SlivkaAnnotationWSClient(SlivkaClient client, SlivkaService service)
{
- super(service);
+ super(client, service);
}
@Override
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());