JAL-2494 fix: updated behaviour for SequenceGroup.findAnnotations
authorJim Procter <jprocter@issues.jalview.org>
Thu, 27 Apr 2017 15:34:03 +0000 (16:34 +0100)
committerJim Procter <jprocter@issues.jalview.org>
Thu, 27 Apr 2017 15:34:03 +0000 (16:34 +0100)
src/jalview/datamodel/SequenceGroup.java

index 1246d23..76ad093 100755 (executable)
@@ -1289,12 +1289,6 @@ public class SequenceGroup implements AnnotatedCollectionI
     return aa;
   }
 
-  /**
-   * Returns a list of annotations that match the specified sequenceRef, calcId
-   * and label, ignoring null values.
-   * 
-   * @return list of AlignmentAnnotation objects
-   */
   @Override
   public Iterable<AlignmentAnnotation> findAnnotations(SequenceI seq,
           String calcId, String label)
@@ -1302,9 +1296,11 @@ public class SequenceGroup implements AnnotatedCollectionI
     ArrayList<AlignmentAnnotation> aa = new ArrayList<AlignmentAnnotation>();
     for (AlignmentAnnotation ann : getAlignmentAnnotation())
     {
-      if (ann.getCalcId() != null && ann.getCalcId().equals(calcId)
-              && ann.sequenceRef != null && ann.sequenceRef == seq
-              && ann.label != null && ann.label.equals(label))
+      if ((calcId == null || (ann.getCalcId() != null && ann.getCalcId()
+              .equals(calcId)))
+              && (seq == null || (ann.sequenceRef != null && ann.sequenceRef == seq))
+              && (label == null || (ann.label != null && ann.label
+                      .equals(label))))
       {
         aa.add(ann);
       }