1 package jalview.ws2.actions.hmmer;
4 import java.util.Objects;
6 import jalview.datamodel.AlignmentI;
7 import jalview.viewmodel.AlignmentViewport;
8 import jalview.ws.params.ArgumentI;
9 import jalview.ws2.actions.BaseAction;
10 import jalview.ws2.actions.api.TaskEventListener;
11 import jalview.ws2.actions.api.TaskI;
12 import jalview.ws2.api.Credentials;
13 import jalview.ws2.client.api.AlignmentWebServiceClientI;
14 import jalview.ws2.client.api.WebServiceClientI;
17 * Implementation of the {@link BaseAction} for the phmmer client. This is NOT
18 * how you should implement it. The action should be more generic and cover
19 * range of similar services.
24 // FIXME: Not an alignment action (temporary hack)
25 public class PhmmerAction extends BaseAction<AlignmentI>
27 public static class Builder extends BaseAction.Builder<PhmmerAction>
29 protected AlignmentWebServiceClientI client;
31 private Builder(AlignmentWebServiceClientI client)
34 Objects.requireNonNull(client);
38 public PhmmerAction build()
40 return new PhmmerAction(this);
44 public static Builder newBuilder(AlignmentWebServiceClientI client)
46 return new Builder(client);
49 protected final AlignmentWebServiceClientI client;
51 public PhmmerAction(Builder builder)
54 client = builder.client;
58 public TaskI<AlignmentI> perform(AlignmentViewport viewport,
59 List<ArgumentI> args, Credentials credentials,
60 TaskEventListener<AlignmentI> handler)
62 var task = new PhmmerTask(client, args, credentials,
63 viewport.getAlignmentView(true), handler);
64 task.start(viewport.getServiceExecutor());
69 public boolean isActive(AlignmentViewport viewport)