Clover icon

Coverage Report

  1. Project Clover database Thu Nov 7 2024 17:01:39 GMT
  2. Package jalview.urls

File UrlProvider.java

 

Coverage histogram

../../img/srcFileCovDistChart0.png
0% of files have more coverage

Code metrics

22
66
13
1
251
183
24
0.36
5.08
13
1.85

Classes

Class Line # Actions
UrlProvider 38 66 24
0.00%
 

Contributing tests

No tests hitting this source file were found.

Source view

1    /*
2    * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
3    * Copyright (C) $$Year-Rel$$ The Jalview Authors
4    *
5    * This file is part of Jalview.
6    *
7    * Jalview is free software: you can redistribute it and/or
8    * modify it under the terms of the GNU General Public License
9    * as published by the Free Software Foundation, either version 3
10    * of the License, or (at your option) any later version.
11    *
12    * Jalview is distributed in the hope that it will be useful, but
13    * WITHOUT ANY WARRANTY; without even the implied warranty
14    * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15    * PURPOSE. See the GNU General Public License for more details.
16    *
17    * You should have received a copy of the GNU General Public License
18    * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
19    * The Jalview Authors are detailed in the 'AUTHORS' file.
20    */
21    package jalview.urls;
22   
23    import static jalview.util.UrlConstants.SEP;
24   
25    import jalview.urls.api.UrlProviderI;
26   
27    import java.util.ArrayList;
28    import java.util.List;
29    import java.util.Vector;
30   
31    /**
32    *
33    * Implements the UrlProviderI interface for a composite UrlProvider object
34    *
35    * @author $author$
36    * @version $Revision$
37    */
 
38    public class UrlProvider implements UrlProviderI
39    {
40    // List of actual URL link providers
41    private List<UrlProviderI> providers;
42   
43    // Specific reference to custom URL link provider
44    private UrlProviderI customProvider;
45   
46    /**
47    * Constructor for UrlProvider composite
48    *
49    * @param defaultUrlString
50    * id of default url
51    * @param allProviders
52    * list of UrlProviders this provider gives access to
53    */
 
54  0 toggle public UrlProvider(String defaultUrlString,
55    List<UrlProviderI> allProviders)
56    {
57  0 providers = allProviders;
58   
59  0 customProvider = findCustomProvider();
60   
61    // check that the defaultUrl still exists
62  0 if (!contains(defaultUrlString))
63    {
64    // if the defaultUrl can't be found in any of the providers
65    // set up a custom default url
66  0 choosePrimaryUrl();
67    }
68    else
69    {
70  0 setPrimaryUrl(defaultUrlString);
71    }
72    }
73   
74    /*
75    * Store ref to custom url provider
76    */
 
77  0 toggle private UrlProviderI findCustomProvider()
78    {
79  0 for (UrlProviderI p : providers)
80    {
81  0 if (p instanceof CustomUrlProvider)
82    {
83  0 return p;
84    }
85    }
86   
87  0 jalview.bin.Console.outPrintln(
88    "Error initialising UrlProvider - no custom url provider");
89  0 return null;
90    }
91   
 
92  0 toggle @Override
93    public boolean setPrimaryUrl(String id)
94    {
95  0 boolean outcome = false;
96  0 for (UrlProviderI p : providers)
97    {
98  0 if (p.setPrimaryUrl(id))
99    {
100  0 outcome = true;
101    }
102    }
103  0 if (!outcome)
104    {
105  0 throw new IllegalArgumentException();
106    }
107  0 return outcome;
108    }
109   
 
110  0 toggle @Override
111    public boolean contains(String id)
112    {
113  0 boolean outcome = false;
114  0 for (UrlProviderI p : providers)
115    {
116  0 if (p.contains(id))
117    {
118  0 outcome = true;
119    }
120    }
121  0 return outcome;
122    }
123   
 
124  0 toggle @Override
125    public String writeUrlsAsString(boolean selected)
126    {
127  0 String result = "";
128  0 for (UrlProviderI p : providers)
129    {
130  0 String next = p.writeUrlsAsString(selected);
131  0 if (!next.isEmpty())
132    {
133  0 result += next;
134  0 result += SEP;
135    }
136    }
137    // remove last sep
138  0 if (!result.isEmpty())
139    {
140  0 result = result.substring(0, result.length() - 1);
141    }
142  0 return result;
143    }
144   
 
145  0 toggle @Override
146    public Vector<String> getLinksForMenu()
147    {
148  0 Vector<String> fullLinks = new Vector<String>();
149  0 for (UrlProviderI p : providers)
150    {
151  0 List<String> links = p.getLinksForMenu();
152  0 if (links != null)
153    {
154    // will obliterate links with same keys from different providers
155    // must have checks in place to prevent user from duplicating ids
156  0 fullLinks.addAll(links);
157    }
158    }
159  0 return fullLinks;
160    }
161   
 
162  0 toggle @Override
163    public List<UrlLinkDisplay> getLinksForTable()
164    {
165  0 ArrayList<UrlLinkDisplay> displayLinks = new ArrayList<UrlLinkDisplay>();
166  0 for (UrlProviderI p : providers)
167    {
168  0 displayLinks.addAll(p.getLinksForTable());
169    }
170  0 return displayLinks;
171    }
172   
 
173  0 toggle @Override
174    public void setUrlData(List<UrlLinkDisplay> links)
175    {
176  0 for (UrlProviderI p : providers)
177    {
178  0 p.setUrlData(links);
179    }
180    }
181   
 
182  0 toggle @Override
183    public String getPrimaryUrl(String seqid)
184    {
185  0 String link = null;
186  0 for (UrlProviderI p : providers)
187    {
188  0 if (p.getPrimaryUrl(seqid) == null)
189    {
190  0 continue;
191    }
192    else
193    {
194  0 link = p.getPrimaryUrl(seqid);
195  0 break;
196    }
197    }
198  0 return link;
199    }
200   
 
201  0 toggle @Override
202    public String getPrimaryUrlId()
203    {
204  0 String id = null;
205  0 for (UrlProviderI p : providers)
206    {
207  0 if (p.getPrimaryUrlId() == null)
208    {
209  0 continue;
210    }
211    else
212    {
213  0 id = p.getPrimaryUrlId();
214  0 break;
215    }
216    }
217  0 return id;
218    }
219   
 
220  0 toggle @Override
221    public String getPrimaryTarget(String seqid)
222    {
223  0 String target = null;
224  0 for (UrlProviderI p : providers)
225    {
226  0 if (p.getPrimaryTarget(seqid) == null)
227    {
228  0 continue;
229    }
230    else
231    {
232  0 target = p.getPrimaryTarget(seqid);
233  0 break;
234    }
235    }
236  0 return target;
237    }
238   
 
239  0 toggle @Override
240    public String choosePrimaryUrl()
241    {
242    // choose a custom url default
243  0 return customProvider.choosePrimaryUrl();
244    }
245   
 
246  0 toggle @Override
247    public boolean isUserEntry(String id)
248    {
249  0 return customProvider.isUserEntry(id);
250    }
251    }