import java.util.List;
import java.util.Set;
+import jalview.api.AlignViewportI;
import jalview.bin.Cache;
+import jalview.datamodel.Alignment;
+import jalview.datamodel.AlignmentAnnotation;
import jalview.datamodel.AlignmentI;
import jalview.datamodel.SequenceI;
import jalview.io.AnnotationFile;
protected final SlivkaClient client;
protected final SlivkaService service;
-
- protected SlivkaDatastore store = null;
-
- protected final ArrayList<Operation> operations = new ArrayList<>();
-
- protected int typeFlags = 0;
+
+ protected ParamDatastoreI store;
protected static final EnumMap<Job.Status, WSJobStatus> statusMap = new EnumMap<>(
Job.Status.class);
}
@Override
- public List<Operation> getOperations()
- {
- return operations;
- }
-
- void addOperation(Operation operation)
- {
- operations.add(operation);
- }
-
- void removeOperation(Operation operation)
- {
- operations.remove(operation);
- }
-
- @Override
public boolean hasParameters()
{
return getParamStore().getServiceParameters().size() > 0;
@Override
public void cancel(WSJob job) throws IOException
{
+ job.setStatus(WSJobStatus.CANCELLED);
Cache.log.warn("Slivka does not support job cancellation yet.");
}
return false;
}
- public AlignmentI getAlignment(WSJob job) throws IOException
+ public AlignmentI getAlignment(WSJob job, List<SequenceI> dataset,
+ AlignViewportI viewport) throws IOException
{
Collection<RemoteFile> files;
var slivkaJob = client.getJob(job.getJobId());
return null;
}
- public FeaturesFile getFeaturesFile(WSJob job) throws IOException
+ public FeaturesFile getFeaturesFile(WSJob job,
+ List<SequenceI> dataset, AlignViewportI viewport) throws IOException
{
var slivkaJob = client.getJob(job.getJobId());
Collection<RemoteFile> files = slivkaJob.getResults();
return null;
}
- public AnnotationFile getAnnotationFile(WSJob job) throws IOException
+ public List<AlignmentAnnotation> getAnnotations(WSJob job,
+ List<SequenceI> dataset, AlignViewportI viewport) throws IOException
{
var slivkaJob = client.getJob(job.getJobId());
Collection<RemoteFile> files = slivkaJob.getResults();
{
if (f.getMediaType().equals("application/jalview-annotations"))
{
- // return new AnnorationFile(...);
+ Alignment aln = new Alignment(dataset.toArray(new SequenceI[0]));
+ AnnotationFile af = new AnnotationFile();
+ boolean valid = af.readAnnotationFileWithCalcId(aln, service.getId(),
+ f.getContentUrl().toString(), DataSourceType.URL);
+ if (valid)
+ {
+ return Arrays.asList(aln.getAlignmentAnnotation());
+ }
+ else
+ {
+ throw new IOException("Unable to read annotations from file " +
+ f.getContentUrl().toString());
+ }
}
}
return null;