boolean matches(SequenceFeature feature);
/**
- * Answers a new object that matches the logical AND of this and m
+ * Adds (ANDs) match condition m to this object's matcher set
*
* @param m
- * @return
* @throws IllegalStateException
* if an attempt is made to AND to existing OR-ed conditions
*/
- FeatureMatcherSetI and(FeatureMatcherI m);
+ void and(FeatureMatcherI m);
/**
* Answers true if any second condition is AND-ed with this one, false if it
boolean isAnded();
/**
- * Answers a new object that matches the logical OR of this and m
+ * Adds (ORs) the given condition to this object's match conditions
*
* @param m
- * @return
* @throws IllegalStateException
* if an attempt is made to OR to existing AND-ed conditions
*/
- FeatureMatcherSetI or(FeatureMatcherI m);
+ void or(FeatureMatcherI m);
/**
* Answers an iterator over the combined match conditions
* @return
*/
boolean isEmpty();
+
+ /**
+ * Answers a string representation of this object suitable for use when
+ * persisting data, in a format that can be reliably read back. Any changes to
+ * the format should be backwards compatible.
+ */
+ String toStableString();
}