JAL-1503 update version in GPL header
[jalview.git] / src / jalview / datamodel / Alignment.java
index 83aab4e..5d97fe3 100755 (executable)
@@ -1,6 +1,6 @@
 /*
- * 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.1)
+ * Copyright (C) 2014 The Jalview Authors
  * 
  * This file is part of Jalview.
  * 
@@ -14,6 +14,7 @@
  * 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/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
  */
 package jalview.datamodel;
 
@@ -370,7 +371,7 @@ public class Alignment implements AlignmentI
             return;
           }
         }
-
+        sg.setContext(this);
         groups.add(sg);
       }
     }
@@ -445,6 +446,9 @@ public class Alignment implements AlignmentI
       {
         removeAnnotationForGroup(null);
       }
+      for (SequenceGroup sg:groups) {
+        sg.setContext(null);
+      }
       groups.clear();
     }
   }
@@ -459,6 +463,7 @@ public class Alignment implements AlignmentI
       {
         removeAnnotationForGroup(g);
         groups.remove(g);
+        g.setContext(null);
       }
     }
   }
@@ -1385,13 +1390,17 @@ public class Alignment implements AlignmentI
           SequenceGroup groupRef)
   {
     assert (name != null);
-    for (AlignmentAnnotation annot : getAlignmentAnnotation())
+    if (annotations != null)
     {
-      if (annot.autoCalculated == autoCalc && (name.equals(annot.label))
-              && (calcId == null || annot.getCalcId().equals(calcId))
-              && annot.sequenceRef == seqRef && annot.groupRef == groupRef)
+      for (AlignmentAnnotation annot : getAlignmentAnnotation())
       {
-        return annot;
+        if (annot.autoCalculated == autoCalc && (name.equals(annot.label))
+                && (calcId == null || annot.getCalcId().equals(calcId))
+                && annot.sequenceRef == seqRef
+                && annot.groupRef == groupRef)
+        {
+          return annot;
+        }
       }
     }
     AlignmentAnnotation annot = new AlignmentAnnotation(name, name,
@@ -1475,5 +1484,32 @@ public class Alignment implements AlignmentI
 
     }
   }
+ @Override
+ public void validateAnnotation(AlignmentAnnotation alignmentAnnotation)
+ {
+   alignmentAnnotation.validateRangeAndDisplay();
+   if (isNucleotide() && alignmentAnnotation.isValidStruc())
+   {
+     hasRNAStructure = true;
+   }
+ }
+ @Override
+public int getEndRes()
+{
+  return getWidth()-1;
+}@Override
+public int getStartRes()
+{
+  return 0;
+}
 
+/* In the case of AlignmentI - returns the dataset for the alignment, if set
+ * (non-Javadoc)
+ * @see jalview.datamodel.AnnotatedCollectionI#getContext()
+ */
+@Override
+public AnnotatedCollectionI getContext()
+{
+  return dataset;
+}
 }