JAL-2523 basic sleep and retry (3 times) on 429 response code with
[jalview.git] / src / jalview / ext / ensembl / EnsemblSymbol.java
index b8c8c54..e2e38b5 100644 (file)
@@ -1,3 +1,23 @@
+/*
+ * 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.io.BufferedReader;
@@ -42,8 +62,7 @@ public class EnsemblSymbol extends EnsemblXref
    * @return
    * @throws IOException
    */
-  protected String parseSymbolResponse(BufferedReader br)
-          throws IOException
+  protected String parseSymbolResponse(BufferedReader br) throws IOException
   {
     JSONParser jp = new JSONParser();
     String result = null;
@@ -71,8 +90,7 @@ public class EnsemblSymbol extends EnsemblXref
   protected URL getUrl(String id, Species species)
   {
     String url = getDomain() + "/xrefs/symbol/" + species.toString() + "/"
-            + id
-            + "?content-type=application/json";
+            + id + "?content-type=application/json";
     try
     {
       return new URL(url);
@@ -94,26 +112,26 @@ public class EnsemblSymbol extends EnsemblXref
     List<String> result = new ArrayList<String>();
     List<String> ids = new ArrayList<String>();
     ids.add(identifier);
-  
+
     String[] queries = identifier.split(getAccessionSeparator());
     BufferedReader br = null;
     try
     {
       for (String query : queries)
       {
-        for (Species taxon : Species.values())
+        for (Species taxon : Species.getModelOrganisms())
         {
-          if (taxon.isModelOrganism())
+          URL url = getUrl(query, taxon);
+          if (url != null)
           {
-            URL url = getUrl(query, taxon);
-            if (url != null)
-            {
-              br = getHttpResponse(url, ids);
-            }
-            String geneId = parseSymbolResponse(br);
-            if (geneId != null)
+            br = getHttpResponse(url, ids);
+            if (br != null)
             {
-              result.add(geneId);
+              String geneId = parseSymbolResponse(br);
+              if (geneId != null)
+              {
+                result.add(geneId);
+              }
             }
           }
         }