Skip to content
Leon Starr edited this page Mar 22, 2022 · 8 revisions

R569 / M:Mc-1

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.

Forwarding vs. Delegated

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.

Formalization

Delegation On Generalization.(Delegated event, Superclass, Domain) -> Delegated Event.(Name, Class, Domain)
Delegation On Generalization.(Generalization, Domain) -> Generalization.(Rnum, Domain)
Clone this wiki locally