JAL-3070 JAL-3066 JAL-3067 refactor annotation web service so client is passed sequen...
[jalview.git] / src / jalview / ws / api / SequenceAnnotationServiceI.java
1 package jalview.ws.api;
2
3 import jalview.api.FeatureColourI;
4 import jalview.datamodel.AlignmentAnnotation;
5 import jalview.datamodel.SequenceI;
6 import jalview.datamodel.features.FeatureMatcherSetI;
7 import jalview.ws.params.ArgumentI;
8 import jalview.ws.params.WsParamSetI;
9
10 import java.util.List;
11 import java.util.Map;
12
13 public interface SequenceAnnotationServiceI extends JalviewWebServiceI
14 {
15
16
17   /**
18    * submit sequences to service with no parameters, or preset or parameter set.
19    * Nb- almost the same as the 'align' method in the Msa service :)
20    * 
21    * @param seqs
22    * @param preset
23    * @param paramset
24    * @return
25    * @throws Throwable
26    */
27   JobId submitToService(List<SequenceI> seqs, WsParamSetI preset,
28           List<ArgumentI> paramset) throws Throwable;
29
30   /**
31    * materialise annotation and features for sequences input to the service
32    * 
33    * @param job
34    * @param seqs
35    *          - features and alignment annotation added to these will be
36    *          imported to the dataset for the alignment
37    * @param featureColours
38    *          - container for feature colours - any defined will be merged with
39    *          viewport
40    * @param featureFilters
41    *          - container for filters - any defined will be merged with viewport
42    * @return sequence and alignment annotation rows that should be made
43    *         visible/updated on alignment
44    * @throws Throwable
45    */
46   List<AlignmentAnnotation> getAnnotationResult(JobId job,
47           List<SequenceI> seqs, Map<String, FeatureColourI> featureColours,
48           Map<String, FeatureMatcherSetI> featureFilters) throws Throwable;
49   
50
51 }