|
Anton, thanks for the pull request. A lot to like there. Overall I really liked the encapsulation you did with ExecutableList.
The one concern I do have is with the laziness you used in regards to ExecutableList#spaces and specifically the "double iteration" it leads to over the Executable elements during ActionQueue#executeActions. Was there a real performance reason you opted to make this lazy? I can see a usability reason to do that lazily in regards to properly handling removing an Executable and properly "removing" its spaces because other Executables might have contributed that space as well. That usability concern can be solved by a "multiset" or a "reference count set". The only performance aspect I could think of was memory consumption in the cases where we don't need collected query spaces (no second-level query caching and no auto-flush checking).
|