evaluationContext property
EvaluationContext
get
evaluationContext
The evaluation context for the form's expressions: the instances,
jr:itext, jr:choice-name and custom functions.
Implementation
EvaluationContext get evaluationContext {
final existing = _evaluationContext;
if (existing != null) return existing;
var context = EvaluationContext.forInstance(
_mainInstance!,
_instances,
EvaluationContext(null),
);
if (!context.functionHandlers.containsKey('jr:itext')) {
context.addFunctionHandler(_ItextFunction(this));
}
if (!context.functionHandlers.containsKey('jr:choice-name')) {
context.addFunctionHandler(_ChoiceNameFunction(this));
}
context = EvaluationContext.withFilterStrategies(context, [
..._customFilterStrategies,
_equalityIndexStrategy,
_comparisonCacheStrategy,
]);
_customFunctionHandlers.forEach(context.addFunctionHandler);
// property() reads the same properties as `property` preloads (one
// PropertyManager in JavaRosa).
context.propertyLookup ??= (name) => preloader.properties.getProperty(name);
return _evaluationContext = context;
}