R1058 - modelint/shlaer-mellor-metamodel GitHub Wiki

R1058 / Generalization

Switch Action is a Scalar Switch Action or Subclass Switch Action


The key difference between these two Actions is in the way that the enumerated type value is obtained. Having done that, the mechanism of switching to a case based on the value is the same.

For a Scalar Switch Action, a scalar value defined by an enumerated type is provided by a Scalar Flow.

A Subclass Switch Action generates an enumerated type based on the set of subclasses defined in a specified Generalization and a Single Instance Flow which provides an instance reference to some Class playing at least one Superclass role.

Formalization

<subclass>.(Action, Activity, Domain) -> Switch Action.(Action, Activity, Domain)
⚠️ **GitHub.com Fallback** ⚠️