JAL-2679 getGeneId() now uses the same pattern as getGeneLoci, getSpecies
authorgmungoc <g.m.carstairs@dundee.ac.uk>
Fri, 16 Mar 2018 15:15:49 +0000 (15:15 +0000)
committergmungoc <g.m.carstairs@dundee.ac.uk>
Fri, 16 Mar 2018 15:15:49 +0000 (15:15 +0000)
src/jalview/ext/ensembl/EnsemblLookup.java

index 102dffb..5f353f8 100644 (file)
@@ -151,34 +151,7 @@ public class EnsemblLookup extends EnsemblRestClient
    */
   public String getGeneId(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 : parseResponse(br);
-    } catch (IOException e)
-    {
-      // ignore
-      return null;
-    } finally
-    {
-      if (br != null)
-      {
-        try
-        {
-          br.close();
-        } catch (IOException e)
-        {
-          // ignore
-        }
-      }
-    }
+    return parseGeneId(getResult(identifier, objectType));
   }
 
   /**
@@ -189,36 +162,28 @@ public class EnsemblLookup extends EnsemblRestClient
    * 
    * @param br
    * @return
-   * @throws IOException
    */
-  protected String parseResponse(BufferedReader br) throws IOException
+  protected String parseGeneId(JSONObject val)
   {
     String geneId = null;
-    JSONParser jp = new JSONParser();
-    try
+    String type = val.get(OBJECT_TYPE).toString();
+    if (OBJECT_TYPE_GENE.equalsIgnoreCase(type))
     {
-      JSONObject val = (JSONObject) jp.parse(br);
-      String type = val.get(OBJECT_TYPE).toString();
-      if (OBJECT_TYPE_GENE.equalsIgnoreCase(type))
-      {
-        // got the gene - just returns its id
-        geneId = val.get(JSON_ID).toString();
-      }
-      else if (OBJECT_TYPE_TRANSCRIPT.equalsIgnoreCase(type))
-      {
-        // got the transcript - return its (Gene) Parent
-        geneId = val.get(PARENT).toString();
-      }
-      else if (OBJECT_TYPE_TRANSLATION.equalsIgnoreCase(type))
-      {
-        // got the protein - get its Parent, restricted to type Transcript
-        String transcriptId = val.get(PARENT).toString();
-        geneId = getGeneId(transcriptId, OBJECT_TYPE_TRANSCRIPT);
-      }
-    } catch (ParseException e)
+      // got the gene - just returns its id
+      geneId = val.get(JSON_ID).toString();
+    }
+    else if (OBJECT_TYPE_TRANSCRIPT.equalsIgnoreCase(type))
+    {
+      // got the transcript - return its (Gene) Parent
+      geneId = val.get(PARENT).toString();
+    }
+    else if (OBJECT_TYPE_TRANSLATION.equalsIgnoreCase(type))
     {
-      // ignore
+      // got the protein - get its Parent, restricted to type Transcript
+      String transcriptId = val.get(PARENT).toString();
+      geneId = getGeneId(transcriptId, OBJECT_TYPE_TRANSCRIPT);
     }
+
     return geneId;
   }