- This line was added.
- This line was removed.
- Formatting was changed.
UML state machines provide a special mechanism for deferring events in states. In every state, you can include a clause [event list]/defer. If an event in the current state’s deferred event list occurs, the event will be saved (deferred) for future processing until a state is entered that does not list the event in its deferred event list. Upon entry to such a state, the UML state machine will automatically recall any saved event(s) that are no longer deferred and will then either consume or discard these events.
A deferred event is activated as soon as it enters a state where it is not deferred.
A deferred event can only be added to a state machine diagram at this time, see note below.
A list of triggers that are candidates to be retained by the state machine if they trigger no transitions out of the state (not consumed). A deferred trigger is retained until the state machine reaches a state configuration where it is no longer deferred.
Figure 1: Specification window for event State moving - showing the editable Deferrable Trigger tag.
As in the state machine diagram in the next figure, the Elevator 'open' event is deferred as long as the Elevator is moving. Only when the state transitions to 'stopped' state again, the 'open' event will be executed because it is no longer deferred at this point.Image Removed
Figure 2: A deferred clause added to event moving which causes the event to delay until it is no longer deferred.
This version of Cameo Simulation toolkit does not support Deferred Events for Activity diagrams. For now, they can only be added to a state in a state machine diagram.