X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Furls%2FIdentifiersUrlProvider.java;h=0988e7d2aa7eb5670ccdf8c145d351390a83929f;hb=2288325efdb30bead1f6a3ad264d5e0c6b9cc752;hp=0219b547802730506134ce6872921dc9e3732119;hpb=40f8e76e5d28e2c2fe5fddab72fe797a696bed8a;p=jalview.git diff --git a/src/jalview/urls/IdentifiersUrlProvider.java b/src/jalview/urls/IdentifiersUrlProvider.java index 0219b54..0988e7d 100644 --- a/src/jalview/urls/IdentifiersUrlProvider.java +++ b/src/jalview/urls/IdentifiersUrlProvider.java @@ -35,7 +35,6 @@ import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.StringTokenizer; -import java.util.Vector; import org.json.simple.JSONArray; import org.json.simple.JSONObject; @@ -53,6 +52,10 @@ import org.json.simple.parser.ParseException; public class IdentifiersUrlProvider extends UrlProviderImpl { + private static final String LOCAL_KEY = "Local"; + + private static final String ID_ORG_KEY = "identifiers.org"; + // map of string ids to urls private HashMap urls; @@ -73,8 +76,7 @@ public class IdentifiersUrlProvider extends UrlProviderImpl * name of identifiers.org download file * @return hashmap of identifiers.org data, keyed by MIRIAM id */ - private HashMap readIdentifiers( - String idFileName) + private HashMap readIdentifiers(String idFileName) { JSONParser parser = new JSONParser(); @@ -84,8 +86,24 @@ public class IdentifiersUrlProvider extends UrlProviderImpl try { FileReader reader = new FileReader(idFileName); + String key = ""; + JSONObject obj = (JSONObject) parser.parse(reader); + if (obj.containsKey(ID_ORG_KEY)) + { + key = ID_ORG_KEY; + } + else if (obj.containsKey(LOCAL_KEY)) + { + key = LOCAL_KEY; + } + else + { + System.out.println( + "Unexpected key returned from identifiers jalview service"); + return idData; + } - JSONArray jsonarray = (JSONArray) parser.parse(reader); + JSONArray jsonarray = (JSONArray) obj.get(key); // loop over each entry in JSON array and build HashMap entry for (int i = 0; i < jsonarray.size(); i++) @@ -101,12 +119,15 @@ public class IdentifiersUrlProvider extends UrlProviderImpl } catch (FileNotFoundException e) { e.printStackTrace(); + idData.clear(); } catch (IOException e) { e.printStackTrace(); + idData.clear(); } catch (ParseException e) { e.printStackTrace(); + idData.clear(); } return idData; } @@ -170,12 +191,12 @@ public class IdentifiersUrlProvider extends UrlProviderImpl } @Override - public Vector getLinksForMenu() + public List getLinksForMenu() { - Vector links = new Vector(); + List links = new ArrayList(); for (String key : selectedUrls) { - links.add(urls.get(key).toString()); + links.add(urls.get(key).toStringWithTarget()); } return links; }