d345869ec1a66e4cd6bedb66390745fa04e1fe07
[jalview.git] / src / jalview / ws / api / ServiceWithParameters.java
1 package jalview.ws.api;
2
3 import jalview.ws.params.ParamManager;
4
5 public abstract class ServiceWithParameters extends UIinfo
6 {
7
8   protected jalview.ws.uimodel.AlignAnalysisUIText aaui;
9
10   public ServiceWithParameters(String serviceType, String action,
11           String name, String description, String hosturl)
12   {
13     super(serviceType, action, name, description, hosturl);
14   }
15
16   public abstract void initParamStore(ParamManager userParameterStore);
17
18   public jalview.ws.uimodel.AlignAnalysisUIText getAlignAnalysisUI()
19   {
20     return aaui;
21   }
22
23   public void setAlignAnalysisUI(
24           jalview.ws.uimodel.AlignAnalysisUIText aaui)
25   {
26     this.aaui = aaui;
27   }
28
29   public boolean isInteractiveUpdate()
30   {
31     return aaui != null && aaui.isAA();
32   }
33   // config flags for SeqAnnotationServiceCalcWorker
34
35   public boolean isProteinService()
36   {
37     return aaui == null ? true : aaui.isPr();
38   }
39
40   public boolean isNucleotideService()
41   {
42     return aaui == null ? false : aaui.isNa();
43   }
44
45   public boolean isNeedsAlignedSequences()
46   {
47     return aaui == null ? false : aaui.isNeedsAlignedSeqs();
48   }
49
50   public boolean isAlignmentAnalysis()
51   {
52     return aaui == null ? false : aaui.isAA();
53   }
54
55   public boolean isFilterSymbols()
56   {
57     return aaui != null ? aaui.isFilterSymbols() : true;
58   }
59
60   public int getMinimumInputSequences()
61   {
62     return aaui != null ? aaui.getMinimumSequences() : 1;
63   }
64
65   public String getNameURI()
66   {
67     return "java:" + getName();
68   }
69
70   public String getUri()
71   {
72     // TODO verify that service parameter sets in projects are consistent with
73     // Jalview 2.10.4
74     // this is only valid for Jaba 1.0 - this formula might have to change!
75     return getHostURL()
76             + (getHostURL().lastIndexOf("/") == (getHostURL().length() - 1)
77                     ? ""
78                     : "/")
79             + getName();
80   }
81
82 }