Bug 522192 - [qvtr] enforced unique computations cannot use realized values
Summary: [qvtr] enforced unique computations cannot use realized values
Status: NEW
Alias: None
Product: QVTd
Classification: Modeling
Component: Core (show other bugs)
Version: unspecified   Edit
Hardware: PC Windows NT
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Project Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-09-12 08:26 EDT by Ed Willink CLA
Modified: 2017-09-22 04:42 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-09-12 08:26:29 EDT
Unique computations use an oclHashCode() for each argument, but realized values may not have a total hierarchy and so at some point the getPackageId() fails.

? must inject a total hierarchy dependency
Comment 1 Ed Willink CLA 2017-09-22 04:42:25 EDT
And if the computation is a 'black box' we must ensure that any navigations are pre-satisfied. This should occur automatically and pessimistically by the deep OperationDependencyAnalysis but obviously does not occur for opaque black boxes.

See Bug 522626 for consideration of how to declare the accesses of black boxes.

For the passed arguments, it is obviously necessary to ensure the containment which can probably be achieved by just adding a dependency on the close of the ancestor containment relationships. For well behaved metamodels this may be relatively fee depemdencies, but for polymorphic containment as in Ecore's EAnnotation.contents, it is everything. Is it appropiate to take a similar approacxch to the manual code and have a conceptual 'all-containments' pseudo-node to simplify an N:M mesh into N:1:M trees?