+ public static Iterable<AlignmentAnnotation> findAnnotations(
+ Iterable<AlignmentAnnotation> list, SequenceI seq, String calcId,
+ String label)
+ {
+
+ ArrayList<AlignmentAnnotation> aa = new ArrayList<>();
+ for (AlignmentAnnotation ann : list)
+ {
+ 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);
+ }
+ }
+ return aa;
+ }
+
+ /**
+ * Answer true if any annotation matches the calcId passed in (if not null).
+ *
+ * @param list
+ * annotation to search
+ * @param calcId
+ * @return
+ */
+ public static boolean hasAnnotation(List<AlignmentAnnotation> list,
+ String calcId)
+ {
+
+ if (calcId != null && !"".equals(calcId))
+ {
+ for (AlignmentAnnotation a : list)
+ {
+ if (a.getCalcId() == calcId)
+ {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ public static Iterable<AlignmentAnnotation> findAnnotation(
+ List<AlignmentAnnotation> list, String calcId)
+ {
+
+ List<AlignmentAnnotation> aa = new ArrayList<>();
+ if (calcId == null)
+ {
+ return aa;
+ }
+ for (AlignmentAnnotation a : list)
+ {
+
+ if (a.getCalcId() == calcId || (a.getCalcId() != null
+ && calcId != null && a.getCalcId().equals(calcId)))
+ {
+ aa.add(a);
+ }
+ }
+ return aa;
+ }
+
+ /**
+ * convenience method to check for the 'CONTACT_MAP_NOGROUPS' property for
+ * this alignment annotation row
+ *
+ * @return true if no CONTACT_MAP_NOGROUPS property is found, or it is set to
+ * ""
+ */
+ public boolean isShowGroupsForContactMatrix()
+ {
+ return getProperty(AlignmentAnnotation.CONTACT_MAP_NOGROUPS) == null
+ || "".equals(
+ getProperty(AlignmentAnnotation.CONTACT_MAP_NOGROUPS));
+ }
+
+ /**
+ * set the 'CONTACT_MAP_NOGROUPS' property for this alignment annotation row
+ *
+ * @see isShowGroupsForContactMatrix
+ */
+ public void setShowGroupsForContactMatrix(boolean showGroups)
+ {
+ setProperty(AlignmentAnnotation.CONTACT_MAP_NOGROUPS,
+ showGroups ? "" : "nogroups");
+ }
+