Merge branch 'releases/Release_2_11_3_Branch'
[jalview.git] / src / jalview / datamodel / AnnotatedCollectionI.java
index 0b4c117..17c29ef 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,8 @@
  */
 package jalview.datamodel;
 
-public interface AnnotatedCollectionI extends SequenceCollectionI
+public interface AnnotatedCollectionI
+        extends SequenceCollectionI, ContactMapHolderI
 {
 
   /**
@@ -31,9 +32,30 @@ public interface AnnotatedCollectionI extends SequenceCollectionI
    */
   AlignmentAnnotation[] getAlignmentAnnotation();
 
+  /**
+   * Returns a list of annotations matching the given calc id, or an empty list
+   * if calcId is null
+   * 
+   * @param calcId
+   * @return
+   */
   Iterable<AlignmentAnnotation> findAnnotation(String calcId);
 
   /**
+   * Returns an iterable collection of any annotations that match on given
+   * sequence ref, calcId and label (ignoring null values).
+   * 
+   * @param seq
+   *          null or reference sequence to select annotation for
+   * @param calcId
+   *          null or the calcId to select annotation for
+   * @param label
+   *          null or the label to select annotation for
+   */
+  Iterable<AlignmentAnnotation> findAnnotations(SequenceI seq,
+          String calcId, String label);
+
+  /**
    * context for this annotated collection
    * 
    * @return null or the collection upon which this collection is defined (e.g.