package jalview.ws2.operations; import jalview.ws.params.ParamDatastoreI; import jalview.ws2.WebServiceI; /** * Common base for all operation classes which provides boilerplate * implementation for common {@link Operation} methods. * * @author mmwarowny * */ public abstract class AbstractOperation implements Operation { protected final WebServiceI service; protected final String typeName; protected boolean interactive = false; protected boolean protOperation = true; protected boolean nucOperation = true; protected boolean alignmentAnalysis = false; AbstractOperation(WebServiceI service, String typeName) { this.service = service; this.typeName = typeName; } @Override public WebServiceI getWebService() { return service; } @Override public String getName() { return service.getName(); } @Override public String getDescription() { return service.getDescription(); } @Override public String getTypeName() { return typeName; } @Override public String getHostName() { return service.getHostName(); } @Override public boolean hasParameters() { return service.hasParameters(); } @Override public ParamDatastoreI getParamStore() { return service.getParamStore(); } @Override public int getMinSequences() { return 1; } @Override public int getMaxSequences() { return Integer.MAX_VALUE; } @Override public boolean canSubmitGaps() { return false; } @Override public boolean isProteinOperation() { return protOperation; } public void setProteinOperation(boolean value) { protOperation = value; } @Override public boolean isNucleotideOperation() { return nucOperation; } public void setNucleotideOperation(boolean value) { nucOperation = value; } @Override public boolean isInteractive() { return interactive; } public void setInteractive(boolean value) { interactive = value; } @Override public boolean isAlignmentAnalysis() { return alignmentAnalysis; } public void setAlignmentAnalysis(boolean value) { alignmentAnalysis = value; } @Override public boolean getFilterNonStandardSymbols() { return false; } @Override public boolean getNeedsAlignedSequences() { return false; } }