Root Delegated Event - modelint/shlaer-mellor-metamodel GitHub Wiki

Every Polymorphic Event Specification designates one Event, defined on a Superclass, that initiates the chain of delegation. This is the root delegated event.

Here's what this looks like in an example:

images/event-subsystem/root-delegated-event-10.png

In the example above, the Polymorphic Event Specification designates one Event on one Superclass as the Root Delegated Event.

Each other Event defined by that same Open specification are targets of delegation.

In more general terms, consider three polymorphic events A, B, and C each conforming to the same Polymorphic Event Specification. All three events share the same name and Event Signature. These events are defined on a Generalization G consisting of one Superclass and two Subclasses.

Now let's say that A is defined on the Superclass with B defined on one Subclass and C on the other.

Since A is defined on a Superclass, it must delegate to the B and C events. In other words, a signal addressed to A will be forwarded to either B or C depending on how G is instantiated.

No event delegates to A since it is at the highest level. We consider A to be the Root Delegated Event since no event delegates to it.

Every Polymorphic Event Specification will designated one such Root Delegated Event to initiate the chain of delegation.

Identifiers

  1. Name + Class + Domain

Attributes

No non-referential attributes