MDrivenWiki
Log in

StateMachineForceMode

From MDrivenWiki

stateMachine Force Mode.

StateMachines follow their rules. But sometimes when you change your model or find some bug you may find yourself in a situation where the current state of objects is wrong - and there is no legal way to get to the correct state. For this purpose we added the StateMachineForceMode operator - it is only intended to be used in a debugger or the like.

Calling object.StateMachineForceMode(theStateAttribute) gives you one free pass to set the StateAttribute string directly:

The stateMachineForceMode is only good for 1 write so this will fail on the 3 line:

self.stateMachineForceMode('State'); 
self.State:='State3'; 
self.State:='State3' 
But this will work:
self.stateMachineForceMode('State');
self.State:='State3';
self.stateMachineForceMode('State');
self.State:='State3'
Note! The stateMachineForceMode has the name of the state attribute as the parameter, not the name of the state itself.

Explained in more detail here