Merge branch 'bug/JAL-4214_system_freeze_when_opening_file_using_gui_in_linux' into...
[jalview.git] / src / jalview / ws / jws1 / Annotate3D.java
index a30a9a1..4165eae 100644 (file)
@@ -1,27 +1,31 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8)
- * Copyright (C) 2012 J Procter, AM Waterhouse, LM Lui, J Engelhardt, G Barton, M Clamp, S Searle
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
  * 
  * This file is part of Jalview.
  * 
  * Jalview is free software: you can redistribute it and/or
  * modify it under the terms of the GNU General Public License 
- * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
  *  
  * Jalview is distributed in the hope that it will be useful, but 
  * WITHOUT ANY WARRANTY; without even the implied warranty 
  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
  * PURPOSE.  See the GNU General Public License for more details.
  * 
- * You should have received a copy of the GNU General Public License along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
  */
 package jalview.ws.jws1;
 
-import jalview.datamodel.Alignment;
 import jalview.datamodel.AlignmentI;
+import jalview.io.FileFormat;
 import jalview.io.FileParse;
 import jalview.io.FormatAdapter;
 import jalview.io.InputStreamParser;
+import jalview.util.MessageManager;
 
 import java.io.BufferedReader;
 import java.io.FileReader;
@@ -31,6 +35,7 @@ import java.io.Reader;
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.net.URLEncoder;
+import java.util.Iterator;
 
 public class Annotate3D
 {
@@ -39,7 +44,7 @@ public class Annotate3D
 
   public Annotate3D()
   {
-    System.out.println("Annotate3D");
+    jalview.bin.Console.outPrintln("Annotate3D");
     // try {
     // Create a URL for the desired page
     // String id = "1HR2";
@@ -50,7 +55,7 @@ public class Annotate3D
     // OutputStream out1 = null;
     // out = new BufferedWriter(new OutputStreamWriter(out1, "temp.rnaml"));
     // while ((str = in.readLine()) != null) {
-    // System.out.println(str);
+    // jalview.bin.Console.outPrintln(str);
     // out.write(str);
     // }
     // in.close();
@@ -76,12 +81,25 @@ public class Annotate3D
           sb.append(cbuff[i]);
         }
       }
-
-      FileParse fp = new InputStreamParser(
-              jalview.ext.paradise.Annotate3D.getRNAMLForPDBFileAsString(sb
-                      .toString()), source.getDataName());
-      AlignmentI nal = new FormatAdapter().readFromFile(fp, "RNAML");
-      return nal;
+      Iterator<Reader> r = jalview.ext.paradise.Annotate3D
+              .getRNAMLForPDBFileAsString(sb.toString());
+      AlignmentI al = null;
+      while (r.hasNext())
+      {
+        FileParse fp = new InputStreamParser(r.next(),
+                source.getDataName());
+        AlignmentI nal = new FormatAdapter().readFromFile(fp,
+                FileFormat.Rnaml);
+        if (al == null)
+        {
+          al = nal;
+        }
+        else
+        {
+          al.append(nal);
+        }
+      }
+      return al;
     } catch (Throwable x)
     {
       if (x instanceof IOException)
@@ -90,8 +108,8 @@ public class Annotate3D
       }
       else
       {
-        throw new IOException(
-                "Unexpected exception when handling RNAML translation of PDB data",
+        throw new IOException(MessageManager.getString(
+                "exception.unexpected_handling_rnaml_translation_for_pdb"),
                 x);
       }
     }
@@ -99,19 +117,19 @@ public class Annotate3D
 
   public Annotate3D(String path) throws InterruptedException
   {
-    System.out.println("Annotate3D");
+    jalview.bin.Console.outPrintln("Annotate3D");
     try
     {
       // //URL url = new
       // URL("http://paradise-ibmc.u-strasbg.fr/webservices/annotate3d?data="+inFile);
-      // System.out.println("Step1");
+      // jalview.bin.Console.outPrintln("Step1");
       // FileReader r = new FileReader(inFile);
       // BufferedReader in = new BufferedReader(r);
       // StringBuffer content = new StringBuffer();
-      // System.out.println("Step2");
+      // jalview.bin.Console.outPrintln("Step2");
       // while(in.readLine()!=null){
       // content.append(in.readLine());
-      // //System.out.println("Step3"+in.readLine());
+      // //jalview.bin.Console.outPrintln("Step3"+in.readLine());
       // }
       //
       // String data = URLEncoder.encode("data", "UTF-8") + "=" +
@@ -127,21 +145,21 @@ public class Annotate3D
       // FileReader r = new FileReader(path);
       // BufferedReader in = new BufferedReader(r);
       // StringBuffer content = new StringBuffer();
-      // System.out.println("Step1");
+      // jalview.bin.Console.outPrintln("Step1");
       // while(in.readLine()!=null){
       // content.append(in.readLine());
       //
       // }
-      // System.out.println("Step2");
+      // jalview.bin.Console.outPrintln("Step2");
       // String data = URLEncoder.encode("data", "UTF-8") + "=" +
       // URLEncoder.encode(content.toString(), "UTF-8");
-      // System.out.println("Step2");
+      // jalview.bin.Console.outPrintln("Step2");
       // URL url = new
       // URL("http://paradise-ibmc.u-strasbg.fr/webservices/annotate3d?data="+data);
       // DataInputStream is = new DataInputStream(url.openStream());
       // String str;
       // while ((str = is.readLine()) != null) {
-      // System.out.println(str);
+      // jalview.bin.Console.outPrintln(str);
       // //out.write(str);
       // }
       FileReader r = new FileReader(path);
@@ -151,23 +169,23 @@ public class Annotate3D
 
       while ((str = in.readLine()) != null)
       {
-        // System.out.println(str);
+        // jalview.bin.Console.outPrintln(str);
 
         content = content + str;
       }
-      System.out.println("pdbfile=" + content.toString());
-      System.out.println("capacité=" + content.length());
+      jalview.bin.Console.outPrintln("pdbfile=" + content.toString());
+      jalview.bin.Console.outPrintln("capacité=" + content.length());
       String paramfile = URLEncoder.encode(content.toString(), "UTF-8");
-      System.out.println("param=" + paramfile);
+      jalview.bin.Console.outPrintln("param=" + paramfile);
       URL url = new URL(
               "http://paradise-ibmc.u-strasbg.fr/webservices/annotate3d?data="
                       + content);
-      BufferedReader is = new BufferedReader(new InputStreamReader(
-              url.openStream()));
+      BufferedReader is = new BufferedReader(
+              new InputStreamReader(url.openStream()));
       String str4;
       while ((str4 = is.readLine()) != null)
       {
-        System.out.println(str4);
+        jalview.bin.Console.outPrintln(str4);
         // out.write(str);
       }
       in.close();
@@ -189,7 +207,7 @@ public class Annotate3D
       // BufferedReader in1 = new BufferedReader(is);
 
       // OutputStream out1 = null;
-      // System.out.println("Step3");
+      // jalview.bin.Console.outPrintln("Step3");
       // BufferedWriter out = new BufferedWriter(new OutputStreamWriter(out1,
       // "temp.rnaml"));
       //
@@ -198,11 +216,11 @@ public class Annotate3D
 
       // return;
 
-      // System.out.println(data.length());
-      // System.out.println("step2");
+      // jalview.bin.Console.outPrintln(data.length());
+      // jalview.bin.Console.outPrintln("step2");
       // URL url = new
       // URL("http://paradise-ibmc.u-strasbg.fr/webservices/annotate3d?data="+data);
-      // System.out.println("step3");
+      // jalview.bin.Console.outPrintln("step3");
       // URLConnection conn = url.openConnection();
       // conn.setDoOutput(true);
       // OutputStreamWriter writer = new
@@ -219,7 +237,7 @@ public class Annotate3D
       // //String line;
       // while ((line = reader.readLine()) != null) {
       // answer.append(line);
-      // System.out.println(line);
+      // jalview.bin.Console.outPrintln(line);
       // }
       // writer.close();
       // reader.close();
@@ -243,9 +261,9 @@ public class Annotate3D
   // out = new BufferedWriter(new FileWriter("temp.rnaml"));
 
   // while ((str = in.readLine()) != null) {
-  // System.out.println(str);
+  // jalview.bin.Console.outPrintln(str);
   // out.write(str);
-  // System.out.println(str);
+  // jalview.bin.Console.outPrintln(str);
   // in.close();
 
   // out.close();
@@ -257,7 +275,7 @@ public class Annotate3D
 
   // public BufferedWriter getReader()
   // {
-  // System.out.println("The buffer");
+  // jalview.bin.Console.outPrintln("The buffer");
 
   // return out;