X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fext%2Fensembl%2FEnsemblLookup.java;h=9b56d6bfe91560cacb1cbb8e9997cfe8a79de196;hb=9d80cca5113c0411aa06559d4bd3f86454459ce7;hp=5f353f85014b792babe5e41ef8cda74e3308ccd4;hpb=7ef3d2f322e86a39a4cf8df7793b434a4d028488;p=jalview.git diff --git a/src/jalview/ext/ensembl/EnsemblLookup.java b/src/jalview/ext/ensembl/EnsemblLookup.java index 5f353f8..9b56d6b 100644 --- a/src/jalview/ext/ensembl/EnsemblLookup.java +++ b/src/jalview/ext/ensembl/EnsemblLookup.java @@ -23,18 +23,18 @@ package jalview.ext.ensembl; import jalview.bin.Cache; import jalview.datamodel.AlignmentI; import jalview.datamodel.GeneLociI; +import jalview.datamodel.GeneLocus; +import jalview.datamodel.Mapping; import jalview.util.MapList; -import java.io.BufferedReader; import java.io.IOException; import java.net.MalformedURLException; import java.net.URL; import java.util.Arrays; import java.util.Collections; import java.util.List; +import java.util.Map; -import org.json.simple.JSONObject; -import org.json.simple.parser.JSONParser; import org.json.simple.parser.ParseException; /** @@ -117,21 +117,9 @@ public class EnsemblLookup extends EnsemblRestClient return true; } - @Override - protected String getRequestMimeType(boolean multipleIds) - { - return "application/json"; - } - - @Override - protected String getResponseMimeType() - { - return "application/json"; - } - /** * Returns the gene id related to the given identifier (which may be for a - * gene, transcript or protein) + * gene, transcript or protein), or null if none is found * * @param identifier * @return @@ -143,7 +131,7 @@ public class EnsemblLookup extends EnsemblRestClient /** * Returns the gene id related to the given identifier (which may be for a - * gene, transcript or protein) + * gene, transcript or protein), or null if none is found * * @param identifier * @param objectType @@ -163,8 +151,12 @@ public class EnsemblLookup extends EnsemblRestClient * @param br * @return */ - protected String parseGeneId(JSONObject val) + protected String parseGeneId(Map val) { + if (val == null) + { + return null; + } String geneId = null; String type = val.get(OBJECT_TYPE).toString(); if (OBJECT_TYPE_GENE.equalsIgnoreCase(type)) @@ -197,7 +189,7 @@ public class EnsemblLookup extends EnsemblRestClient public String getSpecies(String identifier) { String species = null; - JSONObject json = getResult(identifier, null); + Map json = getResult(identifier, null); if (json != null) { Object o = json.get(SPECIES); @@ -210,7 +202,7 @@ public class EnsemblLookup extends EnsemblRestClient } /** - * Calls the /lookup/id rest service and returns the response as a JSONObject, + * Calls the /lookup/id rest service and returns the response as a Map, * or null if any error * * @param identifier @@ -218,37 +210,20 @@ public class EnsemblLookup extends EnsemblRestClient * (optional) * @return */ - protected JSONObject getResult(String identifier, String objectType) + @SuppressWarnings("unchecked") + protected Map getResult(String identifier, String objectType) { List ids = Arrays.asList(new String[] { identifier }); - BufferedReader br = null; try { - URL url = getUrl(identifier, objectType); - - if (url != null) - { - br = getHttpResponse(url, ids); - } - return br == null ? null : (JSONObject) (new JSONParser().parse(br)); - } catch (IOException | ParseException e) + return (Map) getJSON(getUrl(identifier, objectType), ids, -1, MODE_MAP, null); + } + catch (IOException | ParseException e) { System.err.println("Error parsing " + identifier + " lookup response " + e.getMessage()); return null; - } finally - { - if (br != null) - { - try - { - br.close(); - } catch (IOException e) - { - // ignore - } - } } } @@ -272,7 +247,7 @@ public class EnsemblLookup extends EnsemblRestClient * @param json * @return */ - GeneLociI parseGeneLoci(JSONObject json) + GeneLociI parseGeneLoci(Map json) { if (json == null) { @@ -295,34 +270,10 @@ public class EnsemblLookup extends EnsemblRestClient fromEnd }); List toRange = Collections.singletonList(new int[] { toStart, toEnd }); - final MapList map = new MapList(fromRange, toRange, 1, 1); - return new GeneLociI() - { - - @Override - public String getSpeciesId() - { - return species == null ? "" : species; - } - - @Override - public String getAssemblyId() - { - return assembly; - } - - @Override - public String getChromosomeId() - { - return chromosome; - } - - @Override - public MapList getMap() - { - return map; - } - }; + final Mapping map = new Mapping( + new MapList(fromRange, toRange, 1, 1)); + return new GeneLocus(species == null ? "" : species, assembly, + chromosome, map); } catch (NullPointerException | NumberFormatException e) { Cache.log.error("Error looking up gene loci: " + e.getMessage());