JAL-3438 spotless for 2.11.2.0
[jalview.git] / src / jalview / ext / ensembl / EnsemblMap.java
index 7777bda..f2ab195 100644 (file)
@@ -27,7 +27,6 @@ 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;
@@ -35,10 +34,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;
 
 /**
@@ -107,8 +104,8 @@ public class EnsemblMap extends EnsemblRestClient
    * @return
    * @throws MalformedURLException
    */
-  protected URL getAssemblyMapUrl(String species, String chromosome, String fromRef,
-          String toRef, int startPos, int endPos)
+  protected URL getAssemblyMapUrl(String species, String chromosome,
+          String fromRef, String toRef, int startPos, int endPos)
           throws MalformedURLException
   {
     /*
@@ -153,30 +150,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));
+      url = getAssemblyMapUrl(species, chromosome, fromRef, toRef,
+              queryRange[0], queryRange[1]);
+      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
-        }
-      }
     }
   }
 
@@ -195,22 +177,24 @@ 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<Object> rvals = (Iterator<Object>) 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<String, Object> val = (Map<String, Object>) rvals.next();
+        Map<String, Object> mapped = (Map<String, Object>) 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();
@@ -270,37 +254,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);
-        if (br != 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
-        }
-      }
     }
   }
 
@@ -320,9 +286,9 @@ public class EnsemblMap extends EnsemblRestClient
   URL getIdMapUrl(String domain, String accession, int start, int end,
           String cdsOrCdna) throws MalformedURLException
   {
-    String url = String
-            .format("%s/map/%s/%s/%d..%d?include_original_region=1&content-type=application/json",
-                    domain, cdsOrCdna, accession, start, end);
+    String url = String.format(
+            "%s/map/%s/%s/%d..%d?include_original_region=1&content-type=application/json",
+            domain, cdsOrCdna, accession, start, end);
     return new URL(url);
   }
 
@@ -346,17 +312,18 @@ public class EnsemblMap extends EnsemblRestClient
    * @param domain
    * @return
    */
-  GeneLociI parseIdMappingResponse(BufferedReader br, String accession,
-          String domain)
+  @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<Object> rvals = (Iterator<Object>) getJSON(url, null, -1,
+              MODE_ITERATOR, MAPPINGS);
+      if (rvals == null)
+      {
+        return null;
+      }
       String assembly = null;
       String chromosome = null;
       int fromEnd = 0;
@@ -364,26 +331,27 @@ public class EnsemblMap extends EnsemblRestClient
 
       while (rvals.hasNext())
       {
-        JSONObject val = (JSONObject) rvals.next();
-        JSONObject original = (JSONObject) val.get("original");
+        Map<String, Object> val = (Map<String, Object>) rvals.next();
+        Map<String, Object> original = (Map<String, Object>) val
+                .get("original");
         fromEnd = Integer.parseInt(original.get("end").toString());
 
-        JSONObject mapped = (JSONObject) val.get(MAPPED);
+        Map<String, Object> mapped = (Map<String, Object>) 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();
         if (assembly != null && !assembly.equals(ass))
         {
-          System.err
-                  .println("EnsemblMap found multiple assemblies - can't resolve");
+          System.err.println(
+                  "EnsemblMap found multiple assemblies - can't resolve");
           return null;
         }
         assembly = ass;
         String chr = mapped.get("seq_region_name").toString();
         if (chromosome != null && !chromosome.equals(chr))
         {
-          System.err
-                  .println("EnsemblMap found multiple chromosomes - can't resolve");
+          System.err.println(
+                  "EnsemblMap found multiple chromosomes - can't resolve");
           return null;
         }
         chromosome = chr;
@@ -406,8 +374,9 @@ public class EnsemblMap extends EnsemblRestClient
               .getSpecies(accession);
       final String as = assembly;
       final String chr = chromosome;
-      List<int[]> fromRange = Collections.singletonList(new int[] { 1,
-          fromEnd });
+      List<int[]> fromRange = Collections
+              .singletonList(new int[]
+              { 1, fromEnd });
       Mapping mapping = new Mapping(new MapList(fromRange, regions, 1, 1));
       return new GeneLocus(species == null ? "" : species, as, chr,
               mapping);