Clover icon

Coverage Report

  1. Project Clover database Wed Dec 3 2025 17:03:17 GMT
  2. Package jalview.ws2.actions.hmmer

File PhmmerAction.java

 

Coverage histogram

../../../../img/srcFileCovDistChart5.png
43% of files have more coverage

Code metrics

0
16
7
2
82
62
7
0.44
2.29
3.5
1

Classes

Class Line # Actions
PhmmerAction 27 12 5
0.2941176629.4%
PhmmerAction.Builder 29 4 2
1.0100%
 

Contributing tests

This file is covered by 45 tests. .

Source view

1    package jalview.ws2.actions.hmmer;
2   
3    import java.util.List;
4    import java.util.Objects;
5   
6    import jalview.api.AlignViewportI;
7    import jalview.datamodel.AlignmentI;
8    import jalview.viewmodel.AlignmentViewport;
9    import jalview.ws.params.ArgumentI;
10    import jalview.ws2.actions.BaseAction;
11    import jalview.ws2.actions.PollingTaskExecutor;
12    import jalview.ws2.actions.api.TaskEventListener;
13    import jalview.ws2.actions.api.TaskI;
14    import jalview.ws2.api.Credentials;
15    import jalview.ws2.client.api.AlignmentWebServiceClientI;
16    import jalview.ws2.client.api.WebServiceClientI;
17   
18    /**
19    * Implementation of the {@link BaseAction} for the phmmer client. This is NOT
20    * how you should implement it. The action should be more generic and cover
21    * range of similar services.
22    *
23    * @author mmwarowny
24    *
25    */
26    // FIXME: Not an alignment action (temporary hack)
 
27    public class PhmmerAction extends BaseAction<AlignmentI>
28    {
 
29    public static class Builder extends BaseAction.Builder<PhmmerAction>
30    {
31    protected AlignmentWebServiceClientI client;
32   
 
33  77 toggle private Builder(AlignmentWebServiceClientI client)
34    {
35  77 super();
36  77 Objects.requireNonNull(client);
37  77 this.client = client;
38    }
39   
 
40  77 toggle public PhmmerAction build()
41    {
42  77 return new PhmmerAction(this);
43    }
44    }
45   
 
46  77 toggle public static Builder newBuilder(AlignmentWebServiceClientI client)
47    {
48  77 return new Builder(client);
49    }
50   
51    protected final AlignmentWebServiceClientI client;
52   
 
53  77 toggle public PhmmerAction(Builder builder)
54    {
55  77 super(builder);
56  77 client = builder.client;
57    }
58   
 
59  0 toggle public TaskI<AlignmentI> perform(AlignmentViewport viewport,
60    List<ArgumentI> args, Credentials credentials,
61    TaskEventListener<AlignmentI> handler)
62    {
63  0 var task = createTask(viewport, args, credentials);
64  0 task.addTaskEventListener(handler);
65  0 var executor = PollingTaskExecutor.fromPool(viewport.getServiceExecutor());
66  0 var future = executor.submit(task);
67  0 task.setCancelAction(() -> { future.cancel(true); });
68  0 return task;
69    }
70   
 
71  0 toggle public PhmmerTask createTask(AlignViewportI viewport,
72    List<ArgumentI> args, Credentials credentials)
73    {
74  0 return new PhmmerTask(client, args, credentials, viewport.getAlignmentView(true));
75    }
76   
 
77  0 toggle @Override
78    public boolean isActive(AlignmentViewport viewport)
79    {
80  0 return false;
81    }
82    }