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?
Here is a screenshot of the Flowchart2HTML transformation, after this fix:
All tests are passing locally. Waiting for Jenkins results.
Tests are green on Jenkins as well.
Dimitris, what are your thoughts on this PR?
I think this PR is ready @kolovos
Closing for now as it may be better to just remove the Rules tab, which would be a different PR.