Bug 512370

Summary: Extend AbstractInteractionPolicy to support execution of transient (non-undoable) operations.
Product: [Tools] GEF Reporter: Matthias Wienand <matthias.wienand>
Component: GEF MVCAssignee: gef-inbox <gef-inbox>
Status: NEW --- QA Contact:
Severity: normal    
Priority: P3    
Version: 1.1.0   
Target Milestone: ---   
Hardware: All   
OS: All   
Whiteboard:

Description Matthias Wienand CLA 2017-02-17 09:36:31 EST
Currently, AbstractInteractionPolicy provides an API for committing transactional policies, so that the commit operations of the policies are placed on the operation history to be undoable. This API should be extended to further support the execution of operations that are not the result of committing a policy, as well as the execution of transient commit or other operations that are not placed on the operation history.

As AbstractTransactionPolicy needs to locally execute an ITransactionalOperation, an execute(ITransactionalOperation) method could be added to AbstractPolicy already. The other two methods for committing a policy transiently, or for executing an operation on the operation history, could be added to AbstractInteractionPolicy.

To sum up:
 - Add AbstractPolicy#execute(ITransactionalOperation) to locally execute the operation.
 - Add AbstractInteractionPolicy#commit(ITransactionalOperation) to execute the operation on the history.
 - Add AbstractInteractionPolicy#locallyCommit(AbstractTransactionPolicy) to locally execute the commit operation. The names are subject to change.