evaluateRule method
bool
evaluateRule( - 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);
}