Clover icon

Coverage Report

  1. Project Clover database Thu Dec 4 2025 16:11:35 GMT
  2. Package jalview.ws2.client.ebi

File JobDispatcherWSDiscoverer.java

 

Coverage histogram

../../../../img/srcFileCovDistChart8.png
20% of files have more coverage

Code metrics

6
35
8
1
107
92
14
0.4
4.38
8
1.75

Classes

Class Line # Actions
JobDispatcherWSDiscoverer 18 35 14
0.734693973.5%
 

Contributing tests

This file is covered by 328 tests. .

Source view

1    package jalview.ws2.client.ebi;
2   
3    import java.io.IOException;
4    import java.net.MalformedURLException;
5    import java.net.URISyntaxException;
6    import java.net.URL;
7    import java.util.List;
8   
9    import jalview.bin.Console;
10    import jalview.ws.params.ParamManager;
11    import jalview.ws2.actions.NullAction;
12    import jalview.ws2.actions.api.ActionI;
13    import jalview.ws2.actions.hmmer.PhmmerAction;
14    import jalview.ws2.api.WebService;
15    import jalview.ws2.client.api.AbstractWebServiceDiscoverer;
16    import uk.ac.dundee.compbio.hmmerclient.PhmmerClient;
17   
 
18    public final class JobDispatcherWSDiscoverer extends AbstractWebServiceDiscoverer
19    {
20   
21    private static final URL DEFAULT_URL;
 
22  11 toggle static
23    {
24  11 try
25    {
26  11 DEFAULT_URL = new URL("https://www.ebi.ac.uk/Tools/services/rest/hmmer3_phmmer/");
27    } catch (MalformedURLException e)
28    {
29  0 throw new ExceptionInInitializerError(e);
30    }
31    }
32   
33    private static JobDispatcherWSDiscoverer instance = null;
34    private static ParamManager paramManager = null;
35   
 
36  11 toggle private JobDispatcherWSDiscoverer() {}
37   
 
38  8711 toggle public static JobDispatcherWSDiscoverer getInstance() {
39  8711 if (instance == null)
40  11 instance = new JobDispatcherWSDiscoverer();
41  8711 return instance;
42    }
43   
 
44  0 toggle public static void setParamManager(ParamManager manager)
45    {
46  0 paramManager = manager;
47    }
48   
 
49  0 toggle @Override
50    public int getStatusForUrl(URL url)
51    {
52  0 try
53    {
54  0 return new PhmmerClient(url).testEndpoint() ? STATUS_OK : STATUS_INVALID;
55    } catch (URISyntaxException e)
56    {
57  0 Console.error(e.getMessage());
58  0 return STATUS_INVALID;
59    }
60    }
61   
 
62  81 toggle @Override
63    protected String getUrlsPropertyKey()
64    {
65  81 return null;
66    }
67   
 
68  81 toggle @Override
69    protected URL getDefaultUrl()
70    {
71  81 return DEFAULT_URL;
72    }
73   
 
74  81 toggle @Override
75    protected List<WebService<?>> fetchServices(URL url) throws IOException
76    {
77  81 PhmmerClient phmmerClient;
78  81 try {
79  81 phmmerClient = new PhmmerClient(url);
80    }
81    catch (URISyntaxException e) {
82  0 throw new MalformedURLException(e.getMessage());
83    }
84  81 if (!phmmerClient.testEndpoint())
85  0 throw new IOException(
86    "unable to reach dispatcher server at " + url);
87  81 var wsBuilder = WebService.<PhmmerAction> newBuilder();
88  81 wsBuilder.url(url);
89  81 wsBuilder.clientName("job dispatcher");
90  81 wsBuilder.category("Database search");
91  81 wsBuilder.name("pHMMER");
92  81 wsBuilder.description("Hmmer3 phmmer is used to search one or more query sequences against a sequence database.");
93  81 wsBuilder.interactive(false);
94  81 wsBuilder.paramDatastore(ParamStores.newPhmmerDatastore(url, paramManager));
95  81 wsBuilder.actionClass(PhmmerAction.class);
96  81 var webService = wsBuilder.build();
97   
98  81 var client = new PhmmerWSClient(phmmerClient);
99  81 var actionBuilder = PhmmerAction.newBuilder(client);
100  81 actionBuilder.webService(webService);
101  81 actionBuilder.name("");
102  81 webService.addAction(actionBuilder.build());
103   
104  81 return List.of(webService);
105    }
106   
107    }