R1058 - modelint/shlaer-mellor-metamodel GitHub Wiki
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.
<subclass>.(Action, Activity, Domain) -> Switch Action.(Action, Activity, Domain)