R1059 - modelint/shlaer-mellor-metamodel GitHub Wiki

R1059 / 1:M

Case matches one or many Match Value

Match Value is matched by exactly one Case


A Switch Action emits a Case Control Flow depending on the selected Match Value.

Let's say, for example, that a Scalar Switch Action wants to trigger one set of downstream Actions if it sees a traffic signal that is either yellow or red and then a different set of downstream Actions when the value is green. The first two Match Values are associated with one Case and the last Match Value is conveyed by the other Case. Keep in mind that during runtime, a Case flows only the Match Value selected by its associated Switch Action.

A Match Value will be defined on a specific Case. This means that if you have a value like yellow that you use in some other Scalar Switch Action, you'll just define a distinct Match Value for yellow in a Case local to that other Scalar Switch Action. In other words, you may see multiple Match Value instances with the same value, but in different Case's. But you would never have two distinct yellow Match Cases defined for the same Case.