package jalview.ws2.actions.secstructpred; import java.util.List; import java.util.Objects; import jalview.api.AlignViewportI; import jalview.datamodel.AlignmentI; import jalview.viewmodel.AlignmentViewport; import jalview.ws.params.ArgumentI; import jalview.ws2.actions.BaseAction; import jalview.ws2.actions.BaseTask; import jalview.ws2.api.Credentials; import jalview.ws2.client.api.SecStructPredWebServiceClientI; import jalview.ws2.client.api.WebServiceClientI; public class SecStructPredAction extends BaseAction { public static class Builder extends BaseAction.Builder { protected SecStructPredWebServiceClientI client; protected boolean msaMode; private Builder(SecStructPredWebServiceClientI client) { super(); Objects.requireNonNull(client); this.client = client; } public void msaMode(boolean msa) { this.msaMode = msa; } public SecStructPredAction build() { return new SecStructPredAction(this); } } public static Builder newBuilder(SecStructPredWebServiceClientI client) { return new Builder(client); } protected final SecStructPredWebServiceClientI client; protected boolean msaMode; public SecStructPredAction(Builder builder) { super(builder); client = builder.client; msaMode = builder.msaMode; } public BaseTask createTask(AlignViewportI viewport, List args, Credentials credentials) { if (msaMode) return new SecStructPredMsaTask(client, args, credentials, viewport); else return new SecStructPredPDBSearchTask(client, args, credentials, viewport); } @Override public boolean isActive(AlignmentViewport viewport) { return false; } }