Merge branch 'develop' into spike/JAL-4047/JAL-4048_columns_in_sequenceID
[jalview.git] / src / jalview / ext / ensembl / EnsemblLookup.java
index b412849..e188986 100644 (file)
  */
 package jalview.ext.ensembl;
 
-import jalview.bin.Cache;
+import jalview.bin.Console;
 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;
 
 /**
@@ -153,7 +151,7 @@ public class EnsemblLookup extends EnsemblRestClient
    * @param br
    * @return
    */
-  protected String parseGeneId(JSONObject val)
+  protected String parseGeneId(Map<String, Object> val)
   {
     if (val == null)
     {
@@ -191,7 +189,7 @@ public class EnsemblLookup extends EnsemblRestClient
   public String getSpecies(String identifier)
   {
     String species = null;
-    JSONObject json = getResult(identifier, null);
+    Map<String, Object> json = getResult(identifier, null);
     if (json != null)
     {
       Object o = json.get(SPECIES);
@@ -204,45 +202,29 @@ public class EnsemblLookup extends EnsemblRestClient
   }
 
   /**
-   * Calls the /lookup/id rest service and returns the response as a JSONObject,
-   * or null if any error
+   * Calls the /lookup/id rest service and returns the response as a Map<String,
+   * Object>, or null if any error
    * 
    * @param identifier
    * @param objectType
    *          (optional)
    * @return
    */
-  protected JSONObject getResult(String identifier, String objectType)
+  @SuppressWarnings("unchecked")
+  protected Map<String, Object> getResult(String identifier,
+          String objectType)
   {
     List<String> 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));
+      return (Map<String, Object>) getJSON(getUrl(identifier, objectType),
+              ids, -1, MODE_MAP, null);
     } catch (IOException | ParseException e)
     {
-      System.err.println("Error parsing " + identifier + " lookup response "
+      jalview.bin.Console.errPrintln("Error parsing " + identifier + " lookup response "
               + e.getMessage());
       return null;
-    } finally
-    {
-      if (br != null)
-      {
-        try
-        {
-          br.close();
-        } catch (IOException e)
-        {
-          // ignore
-        }
-      }
     }
   }
 
@@ -266,7 +248,7 @@ public class EnsemblLookup extends EnsemblRestClient
    * @param json
    * @return
    */
-  GeneLociI parseGeneLoci(JSONObject json)
+  GeneLociI parseGeneLoci(Map<String, Object> json)
   {
     if (json == null)
     {
@@ -285,17 +267,19 @@ public class EnsemblLookup extends EnsemblRestClient
       boolean reverseStrand = "-1".equals(strand);
       int toStart = reverseStrand ? end : start;
       int toEnd = reverseStrand ? start : end;
-      List<int[]> fromRange = Collections.singletonList(new int[] { 1,
-          fromEnd });
-      List<int[]> toRange = Collections.singletonList(new int[] { toStart,
-          toEnd });
+      List<int[]> fromRange = Collections
+              .singletonList(new int[]
+              { 1, fromEnd });
+      List<int[]> toRange = Collections
+              .singletonList(new int[]
+              { toStart, toEnd });
       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());
+      Console.error("Error looking up gene loci: " + e.getMessage());
       e.printStackTrace();
     }
     return null;