JAL-3438 spotless for 2.11.2.0
[jalview.git] / src / jalview / ext / ensembl / EnsemblInfo.java
index de55a53..a32edb3 100644 (file)
@@ -1,7 +1,30 @@
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ * 
+ * This file is part of Jalview.
+ * 
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License 
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *  
+ * Jalview is distributed in the hope that it will be useful, but 
+ * WITHOUT ANY WARRANTY; without even the implied warranty 
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
+ * PURPOSE.  See the GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
 package jalview.ext.ensembl;
 
+import java.util.Locale;
+
 import jalview.datamodel.AlignmentI;
 import jalview.datamodel.DBRefSource;
+import jalview.util.JSONUtils;
 
 import java.io.BufferedReader;
 import java.io.IOException;
@@ -13,8 +36,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import org.json.simple.JSONArray;
-import org.json.simple.parser.JSONParser;
 import org.json.simple.parser.ParseException;
 
 public class EnsemblInfo extends EnsemblRestClient
@@ -61,18 +82,6 @@ public class EnsemblInfo extends EnsemblRestClient
     return true;
   }
 
-  @Override
-  protected String getRequestMimeType(boolean multipleIds)
-  {
-    return "application/json";
-  }
-
-  @Override
-  protected String getResponseMimeType()
-  {
-    return "application/json";
-  }
-
   /**
    * Answers the domain (http://rest.ensembl.org or
    * http://rest.ensemblgenomes.org) for the given division, or null if not
@@ -87,7 +96,7 @@ public class EnsemblInfo extends EnsemblRestClient
     {
       fetchDivisions();
     }
-    return divisions.get(division.toUpperCase());
+    return divisions.get(division.toUpperCase(Locale.ROOT));
   }
 
   /**
@@ -101,54 +110,21 @@ public class EnsemblInfo extends EnsemblRestClient
     /*
      * for convenience, pre-fill ensembl.org as the domain for "ENSEMBL"
      */
-    divisions.put(DBRefSource.ENSEMBL.toUpperCase(), ENSEMBL_REST);
-
-    BufferedReader br = null;
-    try
-    {
-      URL url = getDivisionsUrl(ENSEMBL_GENOMES_REST);
-      if (url != null)
-      {
-        br = getHttpResponse(url, null);
-      }
-      parseResponse(br, ENSEMBL_GENOMES_REST);
-    } catch (IOException e)
-    {
-      // ignore
-    } finally
-    {
-      if (br != null)
-      {
-        try
-        {
-          br.close();
-        } catch (IOException e)
-        {
-          // ignore
-        }
-      }
-    }
-  }
-
-  /**
-   * Parses the JSON response to /info/divisions, and add each to the lookup map
-   * 
-   * @param br
-   * @param domain
-   */
-  void parseResponse(BufferedReader br, String domain)
-  {
-    JSONParser jp = new JSONParser();
-
+    divisions.put(DBRefSource.ENSEMBL.toUpperCase(Locale.ROOT),
+            ensemblDomain);
     try
     {
-      JSONArray parsed = (JSONArray) jp.parse(br);
-
-      Iterator rvals = parsed.iterator();
+      @SuppressWarnings("unchecked")
+      Iterator<Object> rvals = (Iterator<Object>) getJSON(
+              getDivisionsUrl(ensemblGenomesDomain), null, -1,
+              MODE_ITERATOR, null);
+      if (rvals == null)
+        return;
       while (rvals.hasNext())
       {
         String division = rvals.next().toString();
-        divisions.put(division.toUpperCase(), domain);
+        divisions.put(division.toUpperCase(Locale.ROOT),
+                ensemblGenomesDomain);
       }
     } catch (IOException | ParseException | NumberFormatException e)
     {
@@ -158,15 +134,17 @@ public class EnsemblInfo extends EnsemblRestClient
 
   /**
    * Constructs the URL for the EnsemblGenomes /info/divisions REST service
-   * @param domain TODO
+   * 
+   * @param domain
+   *          TODO
    * 
    * @return
    * @throws MalformedURLException
    */
   URL getDivisionsUrl(String domain) throws MalformedURLException
   {
-    return new URL(domain
-            + "/info/divisions?content-type=application/json");
+    return new URL(
+            domain + "/info/divisions?content-type=application/json");
   }
 
   /**
@@ -174,7 +152,8 @@ public class EnsemblInfo extends EnsemblRestClient
    * 
    * @return
    */
-  public Set<String> getDivisions() {
+  public Set<String> getDivisions()
+  {
     if (divisions == null)
     {
       fetchDivisions();