X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fext%2Fparadise%2FAnnotate3D.java;h=caff3bbab03e648d36d0eb35e137afc4d89303e1;hb=4dcde5117f9bcd025e52fe137fff7bb11ee35f46;hp=55c3c1dd4cf9342e75f38dad3af4d2158cef5f80;hpb=be32c14cd8e48fe0a207cd7030cb9cd46f894678;p=jalview.git diff --git a/src/jalview/ext/paradise/Annotate3D.java b/src/jalview/ext/paradise/Annotate3D.java index 55c3c1d..caff3bb 100644 --- a/src/jalview/ext/paradise/Annotate3D.java +++ b/src/jalview/ext/paradise/Annotate3D.java @@ -20,6 +20,7 @@ */ package jalview.ext.paradise; +import jalview.util.JSONUtils; import jalview.util.MessageManager; import jalview.ws.HttpClientUtils; @@ -32,11 +33,10 @@ import java.net.URL; import java.util.ArrayList; import java.util.Iterator; import java.util.List; +import java.util.Map; import org.apache.http.NameValuePair; import org.apache.http.message.BasicNameValuePair; -import org.json.simple.JSONArray; -import org.json.simple.JSONObject; import org.json.simple.parser.ContentHandler; import org.json.simple.parser.ParseException; @@ -45,13 +45,20 @@ import org.json.simple.parser.ParseException; * * @author jimp * - * History: v1.0 revised from original due to refactoring of - * paradise-ubmc.u-strasbg.fr/webservices/annotate3d to - * http://arn-ibmc.in2p3.fr/api/compute/2d?tool=rnaview + * @version v1.0 revised from original due to refactoring of + * paradise-ubmc.u-strasbg.fr/webservices/annotate3d to + * http://arn-ibmc.in2p3.fr/api/compute/2d?tool=rnaview
+ * See also testing URL from fjossinet:
+ * http://charn2-ibmc.u-strasbg.fr:8080/api/compute/2d
+ * If in doubt, check against the REST client at: + * https://github.com/fjossinet/RNA-Science + * -Toolbox/blob/master/pyrna/restclient.py */ public class Annotate3D { - private static String twoDtoolsURL = "http://arn-ibmc.in2p3.fr/api/compute/2d"; + // also test with + // "http://charn2-ibmc.u-strasbg.fr:8080/api/compute/2d"; + private static String twoDtoolsURL = "http://arn-ibmc.in2p3.fr/api/compute/2d?tool=rnaview"; private static ContentHandler createContentHandler() { @@ -87,8 +94,8 @@ public class Annotate3D } @Override - public boolean startObjectEntry(String key) throws ParseException, - IOException + public boolean startObjectEntry(String key) + throws ParseException, IOException { // TODO Auto-generated method stub return false; @@ -116,8 +123,8 @@ public class Annotate3D } @Override - public boolean primitive(Object value) throws ParseException, - IOException + public boolean primitive(Object value) + throws ParseException, IOException { // TODO Auto-generated method stub return false; @@ -130,28 +137,34 @@ public class Annotate3D public static Iterator getRNAMLForPDBFileAsString(String pdbfile) throws Exception { - List vals = new ArrayList(); + List vals = new ArrayList<>(); vals.add(new BasicNameValuePair("tool", "rnaview")); vals.add(new BasicNameValuePair("data", pdbfile)); vals.add(new BasicNameValuePair("output", "rnaml")); // return processJsonResponseFor(HttpClientUtils.doHttpUrlPost(twoDtoolsURL, // vals)); - ArrayList readers = new ArrayList(); - final BufferedReader postResponse = HttpClientUtils.doHttpUrlPost(twoDtoolsURL, vals, 0, 0); + ArrayList readers = new ArrayList<>(); + final BufferedReader postResponse = HttpClientUtils + .doHttpUrlPost(twoDtoolsURL, vals, 0, 0); readers.add(postResponse); return readers.iterator(); } + /** + * @param respons + * @return + * @throws Exception + */ public static Iterator processJsonResponseFor(Reader respons) throws Exception { - org.json.simple.parser.JSONParser jp = new org.json.simple.parser.JSONParser(); + // BH 2019 never called? try { - final JSONArray responses = (JSONArray) jp.parse(respons); - final Iterator rvals = responses.iterator(); - return new Iterator() + @SuppressWarnings("unchecked") + final Iterator rvals = ((List) JSONUtils.parse(respons)).iterator(); + return new Iterator<>() { @Override public boolean hasNext() @@ -159,10 +172,11 @@ public class Annotate3D return rvals.hasNext(); } - @Override + @SuppressWarnings("unchecked") + @Override public Reader next() { - JSONObject val = (JSONObject) rvals.next(); + Map val = (Map) rvals.next(); Object sval = null; try @@ -172,32 +186,31 @@ public class Annotate3D { x.printStackTrace(); } - ; if (sval == null) { - System.err - .println("DEVELOPER WARNING: Annotate3d didn't return a '2D' tag in its response. Consider checking output of server. Response was :" + System.err.println( + "DEVELOPER WARNING: Annotate3d didn't return a '2D' tag in its response. Consider checking output of server. Response was :" + val.toString()); sval = ""; } - return new StringReader( - (sval instanceof JSONObject) ? ((JSONObject) sval) - .toString() : sval.toString()); + return new StringReader(sval.toString()); } @Override public void remove() { - throw new Error(MessageManager.getString("error.not_implemented_remove")); + throw new Error( + MessageManager.getString("error.not_implemented_remove")); } @Override protected Object clone() throws CloneNotSupportedException { - throw new CloneNotSupportedException(MessageManager.getString("error.not_implemented_clone")); + throw new CloneNotSupportedException( + MessageManager.getString("error.not_implemented_clone")); } @Override @@ -218,15 +231,16 @@ public class Annotate3D }; } catch (Exception foo) { - throw new Exception(MessageManager.getString("exception.couldnt_parse_responde_from_annotated3d_server"), foo); + throw new Exception(MessageManager.getString( + "exception.couldnt_parse_responde_from_annotated3d_server"), + foo); } - } public static Iterator getRNAMLForPDBId(String pdbid) throws Exception { - List vals = new ArrayList(); + List vals = new ArrayList<>(); vals.add(new BasicNameValuePair("tool", "rnaview")); vals.add(new BasicNameValuePair("pdbid", pdbid)); vals.add(new BasicNameValuePair("output", "rnaml")); @@ -234,7 +248,7 @@ public class Annotate3D + pdbid + "&output=rnaml"); // return processJsonResponseFor(new // InputStreamReader(geturl.openStream())); - ArrayList readers = new ArrayList(); + ArrayList readers = new ArrayList<>(); readers.add(new InputStreamReader(geturl.openStream())); return readers.iterator(); }