JAL-1517 source formatting
[jalview.git] / src / jalview / datamodel / AlignmentAnnotation.java
index 0a8e087..989d62a 100755 (executable)
@@ -1,28 +1,36 @@
 /*
- * 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 2.8.2)
+ * Copyright (C) 2014 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.datamodel;
 
 import jalview.analysis.Rna;
+import jalview.analysis.SecStrConsensus.SimpleBP;
+
 import jalview.analysis.WUSSParseException;
 
+import java.util.ArrayList;
 import java.util.Enumeration;
 import java.util.Hashtable;
 
+import fr.orsay.lri.varna.models.rna.RNA;
+
 /**
  * DOCUMENT ME!
  * 
@@ -50,6 +58,8 @@ public class AlignmentAnnotation
   /** DOCUMENT ME!! */
   public Annotation[] annotations;
 
+  public ArrayList<SimpleBP> bps = null;
+
   /**
    * RNA secondary structure contact positions
    */
@@ -71,9 +81,11 @@ public class AlignmentAnnotation
     try
     {
       _rnasecstr = Rna.GetBasePairs(RNAannot);
+      bps = Rna.GetModeleBP(RNAannot);
       invalidrnastruc = -1;
     } catch (WUSSParseException px)
     {
+      // DEBUG System.out.println(px);
       invalidrnastruc = px.getProblemPos();
     }
     if (invalidrnastruc > -1)
@@ -193,6 +205,12 @@ public class AlignmentAnnotation
     }
   }
 
+  // JBPNote: what does this do ?
+  public void ConcenStru(CharSequence RNAannot) throws WUSSParseException
+  {
+    bps = Rna.GetModeleBP(RNAannot);
+  }
+
   /**
    * Creates a new AlignmentAnnotation object.
    * 
@@ -240,7 +258,37 @@ public class AlignmentAnnotation
       else
       // Check for RNA secondary structure
       {
-        if (annotations[i].secondaryStructure == 'S')
+        // System.out.println(annotations[i].secondaryStructure);
+        if (annotations[i].secondaryStructure == '('
+                || annotations[i].secondaryStructure == '['
+                || annotations[i].secondaryStructure == '<'
+                || annotations[i].secondaryStructure == '{'
+                || annotations[i].secondaryStructure == 'A'
+                || annotations[i].secondaryStructure == 'B'
+                || annotations[i].secondaryStructure == 'C'
+                || annotations[i].secondaryStructure == 'D'
+                || annotations[i].secondaryStructure == 'E'
+                || annotations[i].secondaryStructure == 'F'
+                || annotations[i].secondaryStructure == 'G'
+                || annotations[i].secondaryStructure == 'H'
+                || annotations[i].secondaryStructure == 'I'
+                || annotations[i].secondaryStructure == 'J'
+                || annotations[i].secondaryStructure == 'K'
+                || annotations[i].secondaryStructure == 'L'
+                || annotations[i].secondaryStructure == 'M'
+                || annotations[i].secondaryStructure == 'N'
+                || annotations[i].secondaryStructure == 'O'
+                || annotations[i].secondaryStructure == 'P'
+                || annotations[i].secondaryStructure == 'Q'
+                || annotations[i].secondaryStructure == 'R'
+                || annotations[i].secondaryStructure == 'S'
+                || annotations[i].secondaryStructure == 'T'
+                || annotations[i].secondaryStructure == 'U'
+                || annotations[i].secondaryStructure == 'V'
+                || annotations[i].secondaryStructure == 'W'
+                || annotations[i].secondaryStructure == 'X'
+                || annotations[i].secondaryStructure == 'Y'
+                || annotations[i].secondaryStructure == 'Z')
         {
           hasIcons |= true;
           isrna |= true;
@@ -271,9 +319,40 @@ public class AlignmentAnnotation
                 // &&
                 // annotations[i].displayCharacter.charAt(0)==annotations[i].secondaryStructure
                 firstChar != ' '
-                && firstChar != 'H'
+                && firstChar != '$'
+                && firstChar != '�' // JBPNote should explicitly express as
+                                    // unicode number to avoid source code
+                                    // translation problems
+                && firstChar != '('
+                && firstChar != '['
+                && firstChar != '>'
+                && firstChar != '{'
+                && firstChar != 'A'
+                && firstChar != 'B'
+                && firstChar != 'C'
+                && firstChar != 'D'
                 && firstChar != 'E'
+                && firstChar != 'F'
+                && firstChar != 'G'
+                && firstChar != 'H'
+                && firstChar != 'I'
+                && firstChar != 'J'
+                && firstChar != 'K'
+                && firstChar != 'L'
+                && firstChar != 'M'
+                && firstChar != 'N'
+                && firstChar != 'O'
+                && firstChar != 'P'
+                && firstChar != 'Q'
+                && firstChar != 'R'
                 && firstChar != 'S'
+                && firstChar != 'T'
+                && firstChar != 'U'
+                && firstChar != 'V'
+                && firstChar != 'W'
+                && firstChar != 'X'
+                && firstChar != 'Y'
+                && firstChar != 'Z'
                 && firstChar != '-'
                 && firstChar < jalview.schemes.ResidueProperties.aaIndex.length)
         {
@@ -508,7 +587,7 @@ public class AlignmentAnnotation
       {
         if (annotations[i] != null)
         {
-          annotations[i].displayCharacter = "";
+          annotations[i].displayCharacter = "X";
         }
       }
     }
@@ -973,7 +1052,7 @@ public class AlignmentAnnotation
       {
         if (annotations[i] == null)
           annotations[i] = new Annotation(String.valueOf(gapchar), null,
-                  ' ', 0f);
+                  ' ', 0f, null);
         else if (annotations[i].displayCharacter == null
                 || annotations[i].displayCharacter.equals(" "))
           annotations[i].displayCharacter = String.valueOf(gapchar);
@@ -1034,5 +1113,4 @@ public class AlignmentAnnotation
   {
     this.calcId = calcId;
   }
-
 }