X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fext%2Fensembl%2FEnsemblInfo.java;h=71730def48935a4fe249068f7cdccb62c14da5b5;hb=61484f9c89a866cc5c9a22499653a1c17b938ffb;hp=de55a536430b7a62e8b809b1c37e24999a0c0fca;hpb=353109c11d706b29ae5bc9606f0e12223aa45a98;p=jalview.git diff --git a/src/jalview/ext/ensembl/EnsemblInfo.java b/src/jalview/ext/ensembl/EnsemblInfo.java index de55a53..71730de 100644 --- a/src/jalview/ext/ensembl/EnsemblInfo.java +++ b/src/jalview/ext/ensembl/EnsemblInfo.java @@ -3,7 +3,6 @@ package jalview.ext.ensembl; import jalview.datamodel.AlignmentI; import jalview.datamodel.DBRefSource; -import java.io.BufferedReader; import java.io.IOException; import java.net.MalformedURLException; import java.net.URL; @@ -13,25 +12,25 @@ import java.util.List; 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 + * *
    * { 
-   *  { "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"
    *  }
    * 
+ * * The values for EnsemblGenomes are retrieved by a REST call, that for * Ensembl is added programmatically for convenience of lookup */ @@ -61,18 +60,6 @@ public class EnsemblInfo extends EnsemblRestClient return true; } - @Override - protected String getRequestMimeType(boolean multipleIds) - { - return "application/json"; - } - - @Override - protected String getResponseMimeType() - { - return "application/json"; - } - /** * Answers the domain (http://rest.ensembl.org or * http://rest.ensemblgenomes.org) for the given division, or null if not @@ -101,54 +88,21 @@ public class EnsemblInfo extends EnsemblRestClient /* * for convenience, pre-fill ensembl.org as the domain for "ENSEMBL" */ - divisions.put(DBRefSource.ENSEMBL.toUpperCase(), ENSEMBL_REST); - - BufferedReader br = null; + divisions.put(DBRefSource.ENSEMBL.toUpperCase(), ensemblDomain); try { - URL url = getDivisionsUrl(ENSEMBL_GENOMES_REST); - if (url != null) + @SuppressWarnings("unchecked") + Iterator rvals = (Iterator) getJSON( + getDivisionsUrl(ensemblGenomesDomain), null, -1, + MODE_ITERATOR, null); + if (rvals == null) { - br = getHttpResponse(url, null); + return; } - parseResponse(br, ENSEMBL_GENOMES_REST); - } 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) { @@ -174,7 +128,8 @@ public class EnsemblInfo extends EnsemblRestClient * * @return */ - public Set getDivisions() { + public Set getDivisions() + { if (divisions == null) { fetchDivisions();