-
Notifications
You must be signed in to change notification settings - Fork 3
R569
Delegated Event is forwarded along one or many Generalization
Generalization forwards zero, one or many Delegated Event
From [MB] in ‘Rules about Polymorphic Signals’, rule #4 in section 13.4: At run time, the polymorphic signal occurrence is received as an event in exactly one state machine instance in a given hierarchy.
The key phrase here is: in a given hierarchy. So what happens in the case of a compound generalization as shown below?
Here we have two hierarchies and the polymorphic Sleep mode
Event will occur in each. In other words, if a Sleep mode
signal is directed at an instance of Mars Probe
, it will be forwarded to a single Subclass instance along R2 AND a single Subclass instance along R1. Ordinarily, a Delegated Event is forwarded along only one Generalization, but in the above case the same Event is forwarded along two.
If a given Generalization has no polymorphic events defined on it, it won't be forwarding any.
When we say that an event on some Class is delegated we mean that no response is defined for the event by any Lifecycle State Model in that Class. In fact, there may be no Lifecycle State Model on that Class at all. 'Delegated' then is an adjective describing a property of a polymorphic Event.
'Forwarding' is the action taken on a Delegated Event. When a signal is received by a Class triggering a Delegated Event, that signal must be forwarded to one Delegated Event in a Subclass in the case of a non-compound (repeated) generalization and multiple in the case of a compound generalization.
Delegation On Generalization.(Delegated event, Superclass, Domain) -> Delegated Event.(Name, Class, Domain)
Delegation On Generalization.(Generalization, Domain) -> Generalization.(Rnum, Domain)
Copyright © 2021-2023 Leon Starr