evaluateConstraint method

bool evaluateConstraint(
  1. TreeReference ref,
  2. AnswerValue? data
)

Whether data satisfies the constraint of the node at ref (no answer always does).

Implementation

bool evaluateConstraint(TreeReference ref, AnswerValue? data) {
  if (data == null) return true;
  final node = mainInstance.resolveReference(ref)!;
  final constraint = node.constraint;
  if (constraint is! Constraint) return true;
  final ec = EvaluationContext.withContext(evaluationContext, ref)
    ..isConstraint = true
    ..candidateValue = data;
  final result = constraint.constraint.eval(mainInstance, ec);
  publishEvent(EvaluationEvent('Constraint', [(ref: ref, value: result)]));
  return result;
}