batchValidator = (IBatchValidator) ModelValidationService.getInstance().newValidator(EvaluationMode.BATCH); batchValidator.validate(object, monitor);
module.getContext().getFrameStack().put(new Variable("MyVar", context.get("MyVarValue"), EolPrimitiveType.String));
In fact, if we implement the new boolean setting in constraintsBinding, we could do something better than diagnosticianContext.get("MyVarValue"): we could map the "MyVarValue" entry directly to the "MyVarValue" variable.
I think this second way would be both safe and convenient. You'd probably need to add a get/setPropagateDiagnosticianContext(...) pair to EvlValidator and act upon it in #validate(Resource, Map). Then you'd need to query the extension attribute and invoke the set method appropriately in EValidatorPopulator#earlyStartup().
You mean setting the variable and its value in the constraintsBinding? The value is changing at run-time, so that is not really possible.
A more complex method would be to add the variable names to the contextBinding and used these names to grab the values from the context. Thereby, circumventing the map. But it needs more support (and has probably more ways to break?
The SVN repository contains a .gitignore file, is there also a git repository available? (It would be more convenient to use, as Git support is much better in Eclipse)