init method
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);
}
}