Bug 547199 - [qvts] Support identity 'operations'
Summary: [qvts] Support identity 'operations'
Status: NEW
Alias: None
Product: QVTd
Classification: Modeling
Component: Core (show other bugs)
Version: unspecified   Edit
Hardware: PC Windows 10
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Project Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 547198 547200
  Show dependency tree
 
Reported: 2019-05-12 09:54 EDT by Ed Willink CLA
Modified: 2019-05-12 10:13 EDT (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Ed Willink CLA 2019-05-12 09:54:02 EDT
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. ??