Class encapsulating a modification
of the code folding hierarchy.
It's provided by
It can accumulate arbitrary number of changes of various folds
by being passed as argument to particular methods in the FoldOperation.
Only one transaction can be active at the time.
Once all the modifications are done the transaction must be
and fires it to the listeners automatically.
Once the transaction is committed no additional
changes can be made to it.
There is currently no way to rollback the transaction.