X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fext%2Fensembl%2FEnsemblMap.java;h=add71b3b7935ba6cafb84e42c5371bc73ef7c3d0;hb=8e7cf85a7f61f425e808cac53ead7bc27e402242;hp=56657e0578c517e8c02717e1d57060a77a557f70;hpb=353109c11d706b29ae5bc9606f0e12223aa45a98;p=jalview.git diff --git a/src/jalview/ext/ensembl/EnsemblMap.java b/src/jalview/ext/ensembl/EnsemblMap.java index 56657e0..add71b3 100644 --- a/src/jalview/ext/ensembl/EnsemblMap.java +++ b/src/jalview/ext/ensembl/EnsemblMap.java @@ -3,6 +3,7 @@ package jalview.ext.ensembl; import jalview.datamodel.AlignmentI; import jalview.datamodel.DBRefSource; import jalview.datamodel.GeneLociI; +import jalview.util.JSONUtils; import jalview.util.MapList; import java.io.BufferedReader; @@ -13,10 +14,8 @@ import java.util.ArrayList; import java.util.Collections; 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; public class EnsemblMap extends EnsemblRestClient @@ -98,18 +97,6 @@ public class EnsemblMap extends EnsemblRestClient } @Override - protected String getRequestMimeType(boolean multipleIds) - { - return "application/json"; - } - - @Override - protected String getResponseMimeType() - { - return "application/json"; - } - - @Override protected URL getUrl(List ids) throws MalformedURLException { return null; // not used @@ -131,30 +118,15 @@ public class EnsemblMap extends EnsemblRestClient String fromRef, String toRef, int[] queryRange) { URL url = null; - BufferedReader br = null; - try { url = getAssemblyMapUrl(species, chromosome, fromRef, toRef, queryRange[0], queryRange[1]); - br = getHttpResponse(url, null); - return (parseAssemblyMappingResponse(br)); + return (parseAssemblyMappingResponse(url)); } catch (Throwable t) { System.out.println("Error calling " + url + ": " + t.getMessage()); return null; - } finally - { - if (br != null) - { - try - { - br.close(); - } catch (IOException e) - { - // ignore - } - } } } @@ -173,22 +145,21 @@ public class EnsemblMap extends EnsemblRestClient * @param br * @return */ - protected int[] parseAssemblyMappingResponse(BufferedReader br) + @SuppressWarnings("unchecked") + protected int[] parseAssemblyMappingResponse(URL url) { int[] result = null; - JSONParser jp = new JSONParser(); try { - JSONObject parsed = (JSONObject) jp.parse(br); - JSONArray mappings = (JSONArray) parsed.get(MAPPINGS); - - Iterator rvals = mappings.iterator(); + Iterator rvals = (Iterator) getJSON(url, null, -1, MODE_ITERATOR, MAPPINGS); + if (rvals == null) + return null; while (rvals.hasNext()) { // todo check for "mapped" - JSONObject val = (JSONObject) rvals.next(); - JSONObject mapped = (JSONObject) val.get(MAPPED); + Map val = (Map) rvals.next(); + Map mapped = (Map) val.get(MAPPED); int start = Integer.parseInt(mapped.get("start").toString()); int end = Integer.parseInt(mapped.get("end").toString()); String strand = mapped.get("strand").toString(); @@ -248,34 +219,19 @@ public class EnsemblMap extends EnsemblRestClient int end, String cdsOrCdna) { URL url = null; - BufferedReader br = null; - try { String domain = new EnsemblInfo().getDomain(division); if (domain != null) { url = getIdMapUrl(domain, accession, start, end, cdsOrCdna); - br = getHttpResponse(url, null); - return (parseIdMappingResponse(br, accession, domain)); + return (parseIdMappingResponse(url, accession, domain)); } return null; } catch (Throwable t) { System.out.println("Error calling " + url + ": " + t.getMessage()); return null; - } finally - { - if (br != null) - { - try - { - br.close(); - } catch (IOException e) - { - // ignore - } - } } } @@ -321,17 +277,16 @@ public class EnsemblMap extends EnsemblRestClient * @param domain * @return */ - GeneLociI parseIdMappingResponse(BufferedReader br, String accession, + @SuppressWarnings("unchecked") +GeneLociI parseIdMappingResponse(URL url, String accession, String domain) { - JSONParser jp = new JSONParser(); try { - JSONObject parsed = (JSONObject) jp.parse(br); - JSONArray mappings = (JSONArray) parsed.get(MAPPINGS); - - Iterator rvals = mappings.iterator(); + Iterator rvals = (Iterator) getJSON(url, null, -1, MODE_ITERATOR, MAPPINGS); + if (rvals == null) + return null; String assembly = null; String chromosome = null; int fromEnd = 0; @@ -339,11 +294,11 @@ public class EnsemblMap extends EnsemblRestClient while (rvals.hasNext()) { - JSONObject val = (JSONObject) rvals.next(); - JSONObject original = (JSONObject) val.get("original"); + Map val = (Map) rvals.next(); + Map original = (Map) val.get("original"); fromEnd = Integer.parseInt(original.get("end").toString()); - JSONObject mapped = (JSONObject) val.get(MAPPED); + Map mapped = (Map) val.get(MAPPED); int start = Integer.parseInt(mapped.get("start").toString()); int end = Integer.parseInt(mapped.get("end").toString()); String ass = mapped.get("assembly_name").toString();