Forwarded Event - modelint/shlaer-mellor-metamodel GitHub Wiki
A Delegated Event is defined on a Class that participates as a Superclass in at least one Generalization.
From there, the Event is delegated through each Generalization to each of its Subclass Lifecycle State Models. Each delegation path leads to a forwarded event.
This idea is illustrated with an example below:
Let’s start with a Polymorphic Event Specification such as Close():Account
using the format <event-sig>:<class>
. We'll ignore the domain value for this discussion.
This specification defines a Delegated Event with the same name. At this point one Forwarded Event must be defined for each Subclass to guarantee that an occurrence of Close
will be handled regardless of which Subclass happens to be instantiated. These destinations are Close:Account<-Savings:R1
and Close:Account<-Checking:R1
.
Each Forwarded Event then represents a re-addressed Delegated Event on a Subclass.