init method

  1. @override
void init(
  1. EvaluationContext context,
  2. XPathExpression constraint,
  3. FormInstance instance
)
override

Analyses constraint (evaluated with context, whose context node is the question) against instance. Throws UnpivotableExpressionException if it can't.

Implementation

@override
void init(
  EvaluationContext context,
  XPathExpression constraint,
  FormInstance instance,
) {
  final pivots = pivotsOf(constraint, instance, context);
  if (pivots.any((p) => p is! CmpPivot) || pivots.length > 2) {
    throw const UnpivotableExpressionException();
  }
  for (final pivot in pivots.cast<CmpPivot>()) {
    _evaluate(pivot, constraint, context, instance);
  }
}