X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fext%2Fparadise%2FAnnotate3D.java;h=85c84aba3c1a0dccd4bf5a3b71fbf43ee0b44690;hb=2447e0f9b158c45152803a91e3e17866bd676d4f;hp=b588161ff50f0888559a094af689da73c83eda70;hpb=47168f025aefdaa044802bd5f8f510ffe43a4808;p=jalview.git diff --git a/src/jalview/ext/paradise/Annotate3D.java b/src/jalview/ext/paradise/Annotate3D.java index b588161..85c84ab 100644 --- a/src/jalview/ext/paradise/Annotate3D.java +++ b/src/jalview/ext/paradise/Annotate3D.java @@ -1,6 +1,6 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2) - * Copyright (C) 2014 The Jalview Authors + * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) + * Copyright (C) $$Year-Rel$$ The Jalview Authors * * This file is part of Jalview. * @@ -20,15 +20,16 @@ */ package jalview.ext.paradise; +import jalview.util.MessageManager; import jalview.ws.HttpClientUtils; +import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.Reader; import java.io.StringReader; import java.net.URL; import java.util.ArrayList; -import java.util.Collection; import java.util.Iterator; import java.util.List; @@ -36,7 +37,6 @@ 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.JSONStreamAware; import org.json.simple.parser.ContentHandler; import org.json.simple.parser.ParseException; @@ -52,22 +52,24 @@ import org.json.simple.parser.ParseException; public class Annotate3D { private static String twoDtoolsURL = "http://arn-ibmc.in2p3.fr/api/compute/2d"; + private static ContentHandler createContentHandler() { - ContentHandler ch = new ContentHandler() { + ContentHandler ch = new ContentHandler() + { @Override public void startJSON() throws ParseException, IOException { // TODO Auto-generated method stub - + } @Override public void endJSON() throws ParseException, IOException { // TODO Auto-generated method stub - + } @Override @@ -120,10 +122,11 @@ public class Annotate3D // TODO Auto-generated method stub return false; } - + }; return ch; } + public static Iterator getRNAMLForPDBFileAsString(String pdbfile) throws Exception { @@ -131,81 +134,112 @@ public class Annotate3D vals.add(new BasicNameValuePair("tool", "rnaview")); vals.add(new BasicNameValuePair("data", pdbfile)); vals.add(new BasicNameValuePair("output", "rnaml")); - // return processJsonResponseFor(HttpClientUtils.doHttpUrlPost(twoDtoolsURL, vals)); + // return processJsonResponseFor(HttpClientUtils.doHttpUrlPost(twoDtoolsURL, + // vals)); ArrayList readers = new ArrayList(); - readers.add(HttpClientUtils.doHttpUrlPost(twoDtoolsURL, vals)); + final BufferedReader postResponse = HttpClientUtils.doHttpUrlPost( + twoDtoolsURL, vals, 0, 0); + readers.add(postResponse); return readers.iterator(); } - public static Iterator processJsonResponseFor(Reader respons) throws Exception + + public static Iterator processJsonResponseFor(Reader respons) + throws Exception { org.json.simple.parser.JSONParser jp = new org.json.simple.parser.JSONParser(); - try { + try + { final JSONArray responses = (JSONArray) jp.parse(respons); final Iterator rvals = responses.iterator(); - return new Iterator() + return new Iterator() + { + @Override + public boolean hasNext() { - @Override - public boolean hasNext() - { - return rvals.hasNext(); - } - @Override - public Reader next() - { - JSONObject val=(JSONObject) rvals.next(); - - Object sval = null; - try { - sval = val.get("2D"); - } catch (Exception x) {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 :"+val.toString()); - - sval = ""; - } - return new StringReader((sval instanceof JSONObject) ? ((JSONObject)sval).toString():sval.toString()); - - }@Override - public void remove() + return rvals.hasNext(); + } + + @Override + public Reader next() + { + JSONObject val = (JSONObject) rvals.next(); + + Object sval = null; + try { - throw new Error("Remove: Not implemented"); - - }@Override - protected Object clone() throws CloneNotSupportedException + sval = val.get("2D"); + } catch (Exception x) { - throw new CloneNotSupportedException("Clone: Not implemented"); - }@Override - public boolean equals(Object obj) + x.printStackTrace(); + } + ; + if (sval == null) { - return super.equals(obj); - }@Override - protected void finalize() throws Throwable + 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()); + + } + + @Override + public void 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")); + } + + @Override + public boolean equals(Object obj) + { + return super.equals(obj); + } + + @Override + protected void finalize() throws Throwable + { + while (rvals.hasNext()) { - while (rvals.hasNext()) - { - rvals.next(); - } - super.finalize(); + rvals.next(); } - }; + super.finalize(); + } + }; } catch (Exception foo) { - throw new Exception("Couldn't parse response from Annotate3d server.",foo); + throw new Exception( + MessageManager + .getString("exception.couldnt_parse_responde_from_annotated3d_server"), + foo); } - - + } - public static Iterator getRNAMLForPDBId(String pdbid) throws Exception + public static Iterator getRNAMLForPDBId(String pdbid) + throws Exception { List vals = new ArrayList(); vals.add(new BasicNameValuePair("tool", "rnaview")); vals.add(new BasicNameValuePair("pdbid", pdbid)); vals.add(new BasicNameValuePair("output", "rnaml")); - java.net.URL geturl = new URL(twoDtoolsURL+"?tool=rnaview&pdbid="+pdbid+"&output=rnaml"); - //return processJsonResponseFor(new InputStreamReader(geturl.openStream())); + java.net.URL geturl = new URL(twoDtoolsURL + "?tool=rnaview&pdbid=" + + pdbid + "&output=rnaml"); + // return processJsonResponseFor(new + // InputStreamReader(geturl.openStream())); ArrayList readers = new ArrayList(); readers.add(new InputStreamReader(geturl.openStream())); return readers.iterator();