JAL-629 Change all stdout and stderr output to use Console.outPrintln and Console...
[jalview.git] / src / jalview / io / RnamlFile.java
index 9f0c8d5..f8c384d 100644 (file)
@@ -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,7 +20,7 @@
  */
 package jalview.io;
 
-import jalview.analysis.SecStrConsensus.SimpleBP;
+import jalview.analysis.Rna;
 import jalview.datamodel.AlignmentAnnotation;
 import jalview.datamodel.Annotation;
 import jalview.datamodel.Sequence;
@@ -32,6 +32,7 @@ import java.io.FileNotFoundException;
 import java.io.FileReader;
 import java.io.IOException;
 import java.util.ArrayList;
+import java.util.List;
 
 import com.stevesoft.pat.Regex;
 
@@ -53,7 +54,7 @@ public class RnamlFile extends AlignFile
 
   }
 
-  public RnamlFile(String inFile, String type) throws IOException
+  public RnamlFile(String inFile, DataSourceType type) throws IOException
   {
     super(inFile, type);
 
@@ -79,6 +80,7 @@ public class RnamlFile extends AlignFile
    * 
    * @see jalview.io.AlignFile#parse()
    */
+  @Override
   public void parse() throws IOException
   {
     if (System.getProperty("java.version").indexOf("1.6") > -1
@@ -100,36 +102,44 @@ public class RnamlFile extends AlignFile
       _parse();
     } catch (ExceptionPermissionDenied pdx)
     {
-      errormessage = MessageManager.formatMessage("exception.rnaml_couldnt_access_datasource", new String[]{pdx.getMessage()});
+      errormessage = MessageManager.formatMessage(
+              "exception.rnaml_couldnt_access_datasource", new String[]
+              { pdx.getMessage() });
       throw new IOException(pdx);
     } catch (ExceptionLoadingFailed lf)
     {
-      errormessage = MessageManager.formatMessage("exception.ranml_couldnt_process_data", new String[]{lf.getMessage()});
+      errormessage = MessageManager.formatMessage(
+              "exception.ranml_couldnt_process_data", new String[]
+              { lf.getMessage() });
       throw new IOException(lf);
     } catch (ExceptionFileFormatOrSyntax iff)
     {
-        errormessage = MessageManager.formatMessage("exception.ranml_invalid_file", new String[]{iff.getMessage()});
+      errormessage = MessageManager
+              .formatMessage("exception.ranml_invalid_file", new String[]
+              { iff.getMessage() });
       throw new IOException(iff);
     } catch (Exception x)
     {
       error = true;
-      errormessage = MessageManager.formatMessage("exception.ranml_problem_parsing_data", new String[]{x.getMessage()});
-      throw new IOException(errormessage , x);
+      errormessage = MessageManager.formatMessage(
+              "exception.ranml_problem_parsing_data", new String[]
+              { x.getMessage() });
+      throw new IOException(errormessage, x);
     }
   }
 
   @SuppressWarnings("unchecked")
-  public void _parse() throws FileNotFoundException,
-          ExceptionPermissionDenied, ExceptionLoadingFailed,
-          ExceptionFileFormatOrSyntax
+  public void _parse()
+          throws FileNotFoundException, ExceptionPermissionDenied,
+          ExceptionLoadingFailed, ExceptionFileFormatOrSyntax
   {
 
     result = RNAFactory.loadSecStrRNAML(getReader());
 
-    ArrayList<ArrayList> allarray = new ArrayList();
-    ArrayList<ArrayList<SimpleBP>> BP = new ArrayList();
-    ArrayList strucinarray = new ArrayList();
-    SequenceI[] seqs = new SequenceI[result.size()];
+    // ArrayList<ArrayList> allarray = new ArrayList();
+    // ArrayList<ArrayList<SimpleBP>> BP = new ArrayList();
+    // ArrayList strucinarray = new ArrayList();
+    SequenceI[] sqs = new SequenceI[result.size()];
 
     for (int i = 0; i < result.size(); i++)
     {
@@ -149,9 +159,11 @@ public class RnamlFile extends AlignFile
           id += "." + i;
         }
       }
-      seqs[i] = new Sequence(id, seq, begin, end);
-
-      seqs[i].setEnd(seqs[i].findPosition(seqs[i].getLength()));
+      sqs[i] = new Sequence(id, seq, begin, end);
+      if (seq.length()!=(end-begin+1))
+      {
+        sqs[i].setEnd(sqs[i].findPosition(sqs[i].getLength()));
+      }
       String[] annot = new String[rna.length()];
       Annotation[] ann = new Annotation[rna.length()];
 
@@ -163,38 +175,36 @@ public class RnamlFile extends AlignFile
       for (int k = 0; k < rna.length(); k++)
       {
         ann[k] = new Annotation(annot[k], "",
-                jalview.schemes.ResidueProperties.getRNASecStrucState(
-                        annot[k]).charAt(0), 0f);
+                Rna.getRNASecStrucState(annot[k]).charAt(0), 0f);
       }
 
-      AlignmentAnnotation align = new AlignmentAnnotation("Sec. str.",
-              current.getID(), ann);
+      AlignmentAnnotation align = new AlignmentAnnotation(
+              "Secondary Structure",
+              current.getID().trim().length() > 0
+                      ? "Secondary Structure for " + current.getID()
+                      : "",
+              ann);
 
-      seqs[i].addAlignmentAnnotation(align);
-      seqs[i].setRNA(result.get(i));
+      sqs[i].addAlignmentAnnotation(align);
+      sqs[i].setRNA(result.get(i));
 
-      allarray.add(strucinarray);
+      // allarray.add(strucinarray);
 
       annotations.addElement(align);
-      BP.add(align.bps);
+      // BP.add(align.bps);
 
     }
 
-    setSeqs(seqs);
+    setSeqs(sqs);
   }
 
-  public static String print(SequenceI[] s)
+  @Override
+  public String print(SequenceI[] s, boolean jvSuffix)
   {
     return "not yet implemented";
   }
 
-  public String print()
-  {
-    System.out.print("print :");
-    return print(getSeqsAsArray());
-  }
-
-  public ArrayList getRNA()
+  public List<RNA> getRNA()
   {
     return result;
   }
@@ -202,8 +212,8 @@ public class RnamlFile extends AlignFile
   // public static void main(String[] args) {
   // Pattern p= Pattern.compile("(.+)[.][^.]+");
   // Matcher m = p.matcher("toto.xml.zip");
-  // System.out.println(m.matches());
-  // System.out.println(m.group(1));
+  // jalview.bin.Console.outPrintln(m.matches());
+  // jalview.bin.Console.outPrintln(m.group(1));
   // }
   /**
    * make a friendly ID string.