Community
Participate
Working Groups
Further to http://www.eclipse.org/mmt/qvt/docs/CheckBeforeEnforce/CheckBeforeEnforce.pdf adding support for a sound and unsound uncheck-before-enforce. The discrimination between sound and unsound execution and the update of any output model needs to exploit an id 'operation' when there is one. QVTr provides no mechanism to declare an id 'operation'; keys are useless; xmi:id is irrelevant. UML and Ecore do. Just use the isID property (or properties). UML is pretty vague so we can be kind and only require local uniqueness within an isID hierarchy. There seems to be no reason why an isID property shouldn't be a derived property invoking an operation for arbitrary complex identities. Limitation: the isID must be present in the metamodel. Workaround: could isID be folded in by a Complete OCL document? Extension: could a helper/query be annotated as an id() operation? Maybe "id" as the name is sufficient. ?? we seem to be introducing something remarkably similar to a Key. One major difference is that id's apply to and are coherent between both input and output. Another is that we are looking at hierarchically unique id's. But are we falling into the same bad design or are we fixing up a bad design. ??