Community
Participate
Working Groups
In the VSM specification language, mappings and representation description have a "Domain Class" attribute which indicates the type of semantic elements they represent. In practice the Sirius language is flexible enough to often allow a single representation and/or mapping to work for different concrete types, as long as they share the same structural features that are actually used by the representation (in the sense of "duck typing", not necessarily subtyping). In such a case, e.g. a node mapping that would work fine for either type A or B, if types A and B are not related, one has to either create two separate mappings or declare a more general common supertype (in the worst case, ecore.EObject), losing the benefits of static validation of expressions. Maybe the "Domain Class" attribute could be extended to allow multiple values, resulting in a "union type" (something already handled by AQL for example).