import jalview.datamodel.AlignmentI;
import jalview.datamodel.DBRefSource;
-import java.io.BufferedReader;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Map;
import java.util.Set;
-import org.json.simple.JSONArray;
-import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
public class EnsemblInfo extends EnsemblRestClient
{
- /*
+ /**
* cached results of REST /info/divisions service, currently
+ *
* <pre>
* {
- * { "ENSEMBLFUNGI", "http://rest.ensemblgenomes.org"},
- * "ENSEMBLBACTERIA", "http://rest.ensemblgenomes.org"},
- * "ENSEMBLPROTISTS", "http://rest.ensemblgenomes.org"},
- * "ENSEMBLMETAZOA", "http://rest.ensemblgenomes.org"},
- * "ENSEMBLPLANTS", "http://rest.ensemblgenomes.org"},
- * "ENSEMBL", "http://rest.ensembl.org" }
+ * "ENSEMBLFUNGI", "http://rest.ensemblgenomes.org"},
+ * "ENSEMBLBACTERIA", "http://rest.ensemblgenomes.org"},
+ * "ENSEMBLPROTISTS", "http://rest.ensemblgenomes.org"},
+ * "ENSEMBLMETAZOA", "http://rest.ensemblgenomes.org"},
+ * "ENSEMBLPLANTS", "http://rest.ensemblgenomes.org"},
+ * "ENSEMBL", "http://rest.ensembl.org"
* }
* </pre>
+ *
* The values for EnsemblGenomes are retrieved by a REST call, that for
* Ensembl is added programmatically for convenience of lookup
*/
* for convenience, pre-fill ensembl.org as the domain for "ENSEMBL"
*/
divisions.put(DBRefSource.ENSEMBL.toUpperCase(), ensemblDomain);
-
- BufferedReader br = null;
try
{
- URL url = getDivisionsUrl(ensemblGenomesDomain);
- if (url != null)
+ @SuppressWarnings("unchecked")
+ Iterator<Object> rvals = (Iterator<Object>) getJSON(
+ getDivisionsUrl(ensemblGenomesDomain), null, -1,
+ MODE_ITERATOR, null);
+ if (rvals == null)
{
- br = getHttpResponse(url, null);
+ return;
}
- parseResponse(br, ensemblGenomesDomain);
- } catch (IOException e)
- {
- // ignore
- } finally
- {
- if (br != null)
- {
- try
- {
- br.close();
- } catch (IOException e)
- {
- // ignore
- }
- }
- }
- }
-
- /**
- * Parses the JSON response to /info/divisions, and add each to the lookup map
- *
- * @param br
- * @param domain
- */
- void parseResponse(BufferedReader br, String domain)
- {
- JSONParser jp = new JSONParser();
-
- try
- {
- JSONArray parsed = (JSONArray) jp.parse(br);
-
- Iterator rvals = parsed.iterator();
while (rvals.hasNext())
{
String division = rvals.next().toString();
- divisions.put(division.toUpperCase(), domain);
+ divisions.put(division.toUpperCase(), ensemblGenomesDomain);
}
} catch (IOException | ParseException | NumberFormatException e)
{
*
* @return
*/
- public Set<String> getDivisions() {
+ public Set<String> getDivisions()
+ {
if (divisions == null)
{
fetchDivisions();