package jalview.ws.api; import jalview.ws.params.ParamManager; public abstract class ServiceWithParameters extends UIinfo { protected jalview.ws.uimodel.AlignAnalysisUIText aaui; public ServiceWithParameters(String serviceType, String action, String name, String description, String hosturl) { super(serviceType, action, name, description, hosturl); } public abstract void initParamStore(ParamManager userParameterStore); public jalview.ws.uimodel.AlignAnalysisUIText getAlignAnalysisUI() { return aaui; } public void setAlignAnalysisUI( jalview.ws.uimodel.AlignAnalysisUIText aaui) { this.aaui = aaui; } public boolean isInteractiveUpdate() { return aaui != null && aaui.isAA(); } // config flags for SeqAnnotationServiceCalcWorker public boolean isProteinService() { return aaui == null ? true : aaui.isPr(); } public boolean isNucleotideService() { return aaui == null ? false : aaui.isNa(); } public boolean isNeedsAlignedSequences() { return aaui == null ? false : aaui.isNeedsAlignedSeqs(); } public boolean isAlignmentAnalysis() { return aaui == null ? false : aaui.isAA(); } public boolean isFilterSymbols() { return aaui != null ? aaui.isFilterSymbols() : true; } public int getMinimumInputSequences() { return aaui != null ? aaui.getMinimumSequences() : 1; } public String getNameURI() { return "java:" + getName(); } public String getUri() { // TODO verify that service parameter sets in projects are consistent with // Jalview 2.10.4 // this is only valid for Jaba 1.0 - this formula might have to change! return getHostURL() + (getHostURL().lastIndexOf("/") == (getHostURL().length() - 1) ? "" : "/") + getName(); } }