Bug 529207 - [pivot] Reimplement Ecore2AS, AS2Ecore with bidirectional incremental QVTr
Summary: [pivot] Reimplement Ecore2AS, AS2Ecore with bidirectional incremental QVTr
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: 530025 547949 548536 530054 547723
Blocks: 515236
  Show dependency tree
 
Reported: 2017-12-26 04:51 EST by Ed Willink CLA
Modified: 2019-06-22 04:31 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 2017-12-26 04:51:49 EST
The Bug 522705 custom EAnnotation validators put new stresses requiring incremental Ecore2AS to work in order to ensure that edits in the Sample Ecore Editor are accurately used by standard revalidations.

(Then do incremental revalidation too.)

Reimplementing Ecore2AS, AS2Ecore with bidirectional incremental QVTr should migrate all concerns in respect of pragmatic manual code to tests of important autogenerated functionality.
Comment 1 Ed Willink CLA 2018-01-20 08:04:21 EST
Starting to implement this reveals challenges:

a) EResource is an EDataType not an EClass, so that the EResource2Model relation has to be fudged, and requires accurate DataType relations. Bug 530054

b) ETypedElement+EGenericType to TypedElement+singletonType requires substantial overloading, recursion, and singleton management. This may be too challenging while QVTr2QVTc is still causing pain.
Comment 2 Ed Willink CLA 2019-05-29 06:58:45 EDT
(In reply to Ed Willink from comment #1)
> ... requires accurate DataType relations ... singleton management

Bug 530054 for DataType relations and SharedEdge singletons has been abandoned; far too many irregularities.

Rather Bug 547723 reifies Extent so that the model root transforms in a regular fashion.
Comment 3 Ed Willink CLA 2019-06-05 04:57:36 EDT
(In reply to Ed Willink from comment #2)
> Rather Bug 547723 reifies Extent so that the model root transforms in a
> regular fashion.

That done, we can successfully transform the Ecore containment tree to Pivot. Pushed to master for 2019-06RC1.

Next problem, the type singletons referenced from the containment tree.

Eventually we probably have a "simple-OCL Pivot to complete-OCL Pivot" transformation to integrate, but we first transform to simple-OCL Pivot.

All of the following should work but probably none do ... many fixes needed

a1) Pass the Orphanage as an extra argument to all Relations. Klunky and challenging since the Orphanage is an input while other same domain arguments are output.

a2) Pass the Orphanage as an extra domain to all Relations. Klunky and challenging since there is a grauitous domain.

b) Use keys to make synthesized types singletons

c) Use a transformation context variable to pass the Orphanage

d) use an interim domain that is an output for the created singletons and then an input for integration within the Orphanage.

e) Allow an extent root variable to control singleton parentage (Bug 547943)
Comment 4 Ed Willink CLA 2019-06-05 06:45:58 EDT
(In reply to Ed Willink from comment #3)
> a1) Pass the Orphanage as an extra argument to all Relations

Extra argument appears to be N:1 inhibiting reachability from a single head.

> b) Use keys to make synthesized types singletons

Fails due to Bug 547949.
Comment 5 Ed Willink CLA 2019-06-22 04:31:32 EDT
Bug 548536 considers the sub-problem of the Ecore Type to AS Type relations.