X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fext%2Fensembl%2FEnsemblXref.java;h=714a5c011120801f85cd571dab9af79be73fff13;hb=d043ce47fc710d3eb2629ba926a8a7417bd67d8c;hp=c0b00b182f8fc528974dff004831e33607c82f4d;hpb=604cbee405a837565ba1a74aa9bddd62aed685ab;p=jalview.git diff --git a/src/jalview/ext/ensembl/EnsemblXref.java b/src/jalview/ext/ensembl/EnsemblXref.java index c0b00b1..714a5c0 100644 --- a/src/jalview/ext/ensembl/EnsemblXref.java +++ b/src/jalview/ext/ensembl/EnsemblXref.java @@ -20,23 +20,20 @@ */ package jalview.ext.ensembl; -import jalview.datamodel.AlignmentI; -import jalview.datamodel.DBRefEntry; -import jalview.util.DBRefUtils; - -import java.io.BufferedReader; import java.io.IOException; import java.net.MalformedURLException; import java.net.URL; import java.util.ArrayList; import java.util.Iterator; import java.util.List; +import java.util.Map; -import org.json.simple.JSONArray; -import org.json.simple.JSONObject; -import org.json.simple.parser.JSONParser; import org.json.simple.parser.ParseException; +import jalview.datamodel.AlignmentI; +import jalview.datamodel.DBRefEntry; +import jalview.util.DBRefUtils; + /** * A class to fetch cross-references from Ensembl by calling the /xrefs REST * service @@ -88,18 +85,6 @@ class EnsemblXref extends EnsemblRestClient return true; } - @Override - protected String getRequestMimeType(boolean multipleIds) - { - return "application/json"; - } - - @Override - protected String getResponseMimeType() - { - return "application/json"; - } - /** * Calls the Ensembl xrefs REST endpoint and retrieves any cross-references * ("primary_id") for the given identifier (Ensembl accession id) and database @@ -111,83 +96,54 @@ class EnsemblXref extends EnsemblRestClient * an Ensembl stable identifier * @return */ + @SuppressWarnings("unchecked") public List getCrossReferences(String identifier) { - List result = new ArrayList(); - List ids = new ArrayList(); + List result = new ArrayList<>(); + List ids = new ArrayList<>(); ids.add(identifier); - BufferedReader br = null; - try - { - URL url = getUrl(identifier); - if (url != null) - { - br = getHttpResponse(url, ids); - } - return (parseResponse(br)); - } catch (IOException e) - { - // ignore - } finally - { - if (br != null) - { - try - { - br.close(); - } catch (IOException e) - { - // ignore - } - } - } - - return result; - } - - /** - * Parses "primary_id" and "dbname" values from the JSON response and - * constructs a DBRefEntry. Returns a list of the DBRefEntry created. Note we - * don't parse "synonyms" as they appear to be either redirected or obsolete - * in Uniprot. - * - * @param br - * @return - * @throws IOException - */ - protected List parseResponse(BufferedReader br) - throws IOException - { - JSONParser jp = new JSONParser(); - List result = new ArrayList(); try { - JSONArray responses = (JSONArray) jp.parse(br); - Iterator rvals = responses.iterator(); + Iterator rvals = (Iterator) getJSON( + getUrl(identifier), ids, -1, MODE_ITERATOR, null); while (rvals.hasNext()) { - JSONObject val = (JSONObject) rvals.next(); - String dbName = val.get("dbname").toString(); - if (dbName.equals(GO_GENE_ONTOLOGY)) - { - continue; - } + Map val = (Map) rvals.next(); + String db = val.get("dbname").toString(); String id = val.get("primary_id").toString(); - if (dbName != null && id != null) + if (db != null && id != null && !GO_GENE_ONTOLOGY.equals(db)) { - dbName = DBRefUtils.getCanonicalName(dbName); - DBRefEntry dbref = new DBRefEntry(dbName, getXRefVersion(), id); + db = DBRefUtils.getCanonicalName(db); + DBRefEntry dbref = new DBRefEntry(db, getXRefVersion(), id); result.add(dbref); } } - } catch (ParseException e) + } catch (ParseException | IOException e) { // ignore } return result; } + // /** + // * Parses "primary_id" and "dbname" values from the JSON response and + // * constructs a DBRefEntry. Returns a list of the DBRefEntry created. Note + // we + // * don't parse "synonyms" as they appear to be either redirected or obsolete + // * in Uniprot. + // * + // * @param br + // * @return + // * @throws IOException + // */ + // @SuppressWarnings("unchecked") + // protected List parseResponse(BufferedReader br) + // throws IOException + // { + // return result; + // } + // private String xrefVersion = "ENSEMBL:0"; /** @@ -210,8 +166,8 @@ class EnsemblXref extends EnsemblRestClient */ protected URL getUrl(String identifier) { - String url = getDomain() + "/xrefs/id/" + identifier - + "?content-type=application/json&all_levels=1"; + String url = getDomain() + "/xrefs/id/" + identifier + CONTENT_TYPE_JSON + + "&all_levels=1"; try { return new URL(url);