JAL-1601 Create action and task for sec. str. pred. jobs
[jalview.git] / src / jalview / ws2 / actions / secstructpred / SecStructPredAction.java
1 package jalview.ws2.actions.secstructpred;
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.api.Credentials;
12 import jalview.ws2.client.api.SecStructPredWebServiceClientI;
13 import jalview.ws2.client.api.WebServiceClientI;
14
15 public class SecStructPredAction extends BaseAction<AlignmentI>
16 {
17   public static class Builder extends BaseAction.Builder<SecStructPredAction>
18   {
19     protected SecStructPredWebServiceClientI client;
20     
21     private Builder(SecStructPredWebServiceClientI client)
22     {
23       super();
24       Objects.requireNonNull(client);
25       this.client = client;
26     }
27     
28     public SecStructPredAction build()
29     {
30       return new SecStructPredAction(this);
31     }
32   }
33   
34   public static Builder newBuilder(SecStructPredWebServiceClientI client)
35   {
36     return new Builder(client);
37   }
38   
39   protected final SecStructPredWebServiceClientI client;
40   
41   public SecStructPredAction(Builder builder)
42   {
43     super(builder);
44     client = builder.client;
45   }
46   
47   public SecStructPredTask createTask(AlignViewportI viewport,
48       List<ArgumentI> args, Credentials credentials)
49   {
50     return new SecStructPredTask(client, args, credentials, viewport);
51   }
52
53   @Override
54   public boolean isActive(AlignmentViewport viewport)
55   {
56     return false;
57   }
58 }