epsilon
epsilon copied to clipboard
Record rules during profiling of ETL scripts (fixes #51)
This PR is to fix issue #51. The problem was that the RuleProfiler never gets to screen a TransformationRule
, because its executeSuperRulesAndBody
method directly executes the body StatementBlock
so the TransformationRule
never goes through the preExecute and postExecute methods of the execution controller.
I have moved the place from which the body is run: TransformationRule
now implements IExecutableModuleElementParameter
, and the executeSuperRulesAndBody
method sets everything up and then puts the TransformationRule
through the execution controller as usual.
I also had to modify the ExecutionProfiler
, as it assumed that you would never nest rule executions. Turns out this is wrong: an ETL rule can trigger a lazy ETL rule, for instance (or you could use the satisfies(...)
operation in EVL).
This pull request is only a draft for now, since I'd like for someone else to look at this and tell me if the approach is correct before I start adding automated tests for it. @kolovos, could you give it a look?