Merge branch 'Jalview-BH/JAL-3026-JAL-3063-JAXB' into Jalview-JS/demo
[jalview.git] / src / jalview / ext / ensembl / EnsemblSymbol.java
index 40d6cad..f731e94 100644 (file)
  */
 package jalview.ext.ensembl;
 
-import java.io.BufferedReader;
 import java.io.IOException;
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.util.ArrayList;
 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;
 
 /**
@@ -56,39 +53,18 @@ public class EnsemblSymbol extends EnsemblXref
     super(domain, dbName, dbVersion);
   }
 
-  /**
-   * Returns the first "id" value in gene identifier format from the JSON
-   * response, or null if none found
-   * 
-   * @param br
-   * @return
-   * @throws IOException
-   */
-  protected String parseSymbolResponse(BufferedReader br) throws IOException
-  {
-    JSONParser jp = new JSONParser();
-    String result = null;
-    try
-    {
-      JSONArray responses = (JSONArray) jp.parse(br);
-      Iterator rvals = responses.iterator();
-      while (rvals.hasNext())
-      {
-        JSONObject val = (JSONObject) rvals.next();
-        String id = val.get(JSON_ID).toString();
-        String type = val.get(TYPE).toString();
-        if (id != null && GENE.equals(type))
-        {
-          result = id;
-          break;
-        }
-      }
-    } catch (ParseException e)
-    {
-      // ignore
-    }
-    return result;
-  }
+//  /**
+//   * Returns the first "id" value in gene identifier format from the JSON
+//   * response, or null if none found
+//   * 
+//   * @param br
+//   * @return
+//   * @throws IOException
+//   */
+//  @SuppressWarnings("unchecked")
+//protected String parseSymbolResponse(BufferedReader br) throws IOException
+//  {
+//  }
 
   /**
    * Constructs the URL for the REST symbol endpoint
@@ -129,6 +105,7 @@ public class EnsemblSymbol extends EnsemblXref
    * @param identifier
    * @return
    */
+  @SuppressWarnings("unchecked")
   public List<String> getGeneIds(String identifier)
   {
     List<String> result = new ArrayList<String>();
@@ -136,43 +113,43 @@ public class EnsemblSymbol extends EnsemblXref
     ids.add(identifier);
 
     String[] queries = identifier.split(getAccessionSeparator());
-    BufferedReader br = null;
     try
     {
       for (String query : queries)
       {
         for (Species taxon : Species.getModelOrganisms())
         {
-          URL url = getUrl(query, taxon, GENE);
-          if (url != null)
+          String geneId = null;///parseSymbolResponse(br);          
+          try
           {
-            br = getHttpResponse(url, ids);
-            if (br != null)
+                       Iterator<Object> rvals = (Iterator<Object>) getJSON(getUrl(query, taxon, GENE), ids, -1, MODE_ITERATOR, null);
+            if (rvals == null)
+               continue;
+            while (rvals.hasNext())
             {
-              String geneId = parseSymbolResponse(br);
-              if (geneId != null && !result.contains(geneId))
+              Map<String, Object> val = (Map<String, Object>) rvals.next();
+              String id = val.get(JSON_ID).toString();
+              String type = val.get(TYPE).toString();
+              if (id != null && GENE.equals(type))
               {
-                result.add(geneId);
+                geneId = id;
+                break;
               }
             }
+          } catch (ParseException e)
+          {
+            // ignore
+          }
+          
+          if (geneId != null && !result.contains(geneId))
+          {
+            result.add(geneId);
           }
         }
       }
     } catch (IOException e)
     {
       // ignore
-    } finally
-    {
-      if (br != null)
-      {
-        try
-        {
-          br.close();
-        } catch (IOException e)
-        {
-          // ignore
-        }
-      }
     }
     return result;
   }