Bug 530375 - [pivot] Non-LUSSID xmi:ids for implicit opposites
Summary: [pivot] Non-LUSSID xmi:ids for implicit opposites
Status: NEW
Alias: None
Product: OCL
Classification: Modeling
Component: Core (show other bugs)
Version: unspecified   Edit
Hardware: PC Windows 10
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: OCL Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 509309
  Show dependency tree
 
Reported: 2018-01-26 07:59 EST by Ed Willink CLA
Modified: 2018-01-26 09:30 EST (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 2018-01-26 07:59:40 EST
Saving a synthesized QVTr trace model as *.ecore.oclas revealed that implicit opposites are serialized as traditional @x/@y URI fragments since no LUSSID and consequently no short xmi:id is allocated for them.

Implicit opposites should never be referenced since they do not exist outside the normalized in-memory Pivot model. The need for such external references is eliminated by e.g. OCL's OppositePropertyCallExp and QVTc's OppositePropertyAssignment.

(We cannot allocate referenceable LUSSIDs since the implicit opposites are an external modification and we cannot control how many external modifications there will be, but we can be sure that when not all opposites have explicit names implicitly generated opposites may be ambiguous undermining the LUSSID principles.)

The Pivot metamodel could be modified to have both Property::explicitOpposite and Property::implicitOpposite with implicitOpposite being transient and so not serialized. See Bug 509309.

For now a derived XMIHelperImpl can just suppress references to implicit opposite Property elements.
Comment 1 Ed Willink CLA 2018-01-26 09:30:16 EST
(In reply to Ed Willink from comment #0)
> For now a derived XMIHelperImpl can just suppress references to implicit
> opposite Property elements.

Bug 530384. Suppressing all implicit references breaks consumers that make illegal references. Tough.