package org.yamcs.xtce;
import java.io.Serializable;
import java.util.Set;
import org.slf4j.Logger;
public interface MatchCriteria extends Serializable {
public Set<Parameter> getDependentParameters();
boolean isMet(CriteriaEvaluator evaluator);
/**
* For debugging purpose
*
* @param criteria
*/
static public void printParsedMatchCriteria(Logger log, MatchCriteria criteria, String indent) {
if (criteria instanceof Comparison) {
log.debug(indent + criteria.toString());
} else if (criteria instanceof ComparisonList) {
log.debug(indent + "ComparisonList (");
for (Comparison c: ((ComparisonList)criteria).comparisons) {
log.debug(indent + " " + c.toString());
}
log.debug(indent + ")");
} else if (criteria instanceof Condition) {
log.debug(indent + criteria.toString());
} else if (criteria instanceof ANDedConditions) {
log.debug(indent + "AND (");
for (MatchCriteria c: ((ExpressionList)criteria).expressions) {
printParsedMatchCriteria(log, c, indent + " ");
}
log.debug(indent + ")");
} else if (criteria instanceof ORedConditions) {
log.debug(indent + "OR (");
for (MatchCriteria c: ((ExpressionList)criteria).expressions) {
printParsedMatchCriteria(log, c, indent + " ");
}
log.debug(indent + ")");
}
}
}