evaluateRule method

bool evaluateRule(
  1. String ruleId
)

Implementation

bool evaluateRule(String ruleId) {
  final ruleBases = headChildren.where((el) => el.xmlTagName == 'ruleBase');
  if (ruleBases.isEmpty) return false;

  Element? findRule(Element parent, String id) {
    if ((parent.xmlTagName == 'rule' ||
            parent.xmlTagName == 'compositeRule') &&
        parent.rawAttributes['id'] == id) {
      return parent;
    }
    for (var child in parent.children) {
      final res = findRule(child, id);
      if (res != null) return res;
    }
    return null;
  }

  Element? ruleEl;
  for (final rb in ruleBases) {
    ruleEl = findRule(rb, ruleId);
    if (ruleEl != null) break;
  }
  if (ruleEl == null) return false;

  return _evaluateRuleElement(ruleEl);
}