JAL-3878 Move listeners list from the WebServiceDiscoverer interface.
[jalview.git] / src / jalview / ws2 / operations / AnnotationOperation.java
1 package jalview.ws2.operations;
2
3 import java.io.IOException;
4 import java.util.List;
5 import java.util.Map;
6
7 import jalview.api.FeatureColourI;
8 import jalview.datamodel.AlignmentAnnotation;
9 import jalview.datamodel.SequenceI;
10 import jalview.datamodel.features.FeatureMatcherSetI;
11 import jalview.ws2.WSJob;
12 import jalview.ws2.WebServiceI;
13 import jalview.ws2.gui.AnnotationMenuBuilder;
14 import jalview.ws2.gui.MenuEntryProviderI;
15
16 public class AnnotationOperation extends AbstractOperation
17 {
18   @FunctionalInterface
19   public static interface AnnotationResultSupplier
20   {
21     List<AlignmentAnnotation> attachAnnotations(WSJob job,
22         List<SequenceI> seqs, Map<String, FeatureColourI> featureColours,
23         Map<String, FeatureMatcherSetI> featureFilters) throws IOException;
24   }
25   
26   AnnotationResultSupplier annotationSupplier;
27
28   public AnnotationOperation(WebServiceI service, String typeName, 
29       AnnotationResultSupplier annotationSupplier)
30   {
31     super(service, typeName);
32     this.annotationSupplier = annotationSupplier;
33   }
34
35   @Override
36   public MenuEntryProviderI getMenuBuilder()
37   {
38     return new AnnotationMenuBuilder(this);
39   }
40
41 }