Bug 445105 - [library] Support a QVT(d/r/c/i) Standard Library
Summary: [library] Support a QVT(d/r/c/i) Standard Library
Status: REOPENED
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: Dummy Inox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-09-25 10:16 EDT by Ed Willink CLA
Modified: 2015-04-30 05:04 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 2014-09-25 10:16:38 EDT
QVTd tooling currently uses the OCL Standard Library.

Additional functionality may be required (certainly is for QVTo) so we should be using a QVTr/c Standard Library. Introduce it as an OCL extension to ensure that the tooling is extensible before we actually need it.
Comment 1 Ed Willink CLA 2015-04-29 11:13:12 EDT
> Introduce it as an OCL extension

This proves a little harder than expected forcing clarification of imports.

The minimal QVTd library support for Model::objectsOfKind(OclType) and Transformation::modelFor(TypedModel) extends qvtbase::Transformation and pivot::Model. So as a minimum, a library may extend two packages. Easily achieved by interpreting "library name : nsPfx = 'nsURI'" as a merge into "nsURI' rather than a document 'nsURI'.

The library extends so we have to reference the Java Pivot metamodel and create a Java QVTbase metamodel.

The QVTbase metamodel has unnavigable opposites terminating in the Pivot model, so the missing opposites need creating. Resolveable by creating a merge contribution rather than modifying the Pivot metamodel. See Bug 465433. 

The additional reference support requires useful extension to the GeneralOCLstdlib/GenerateMetamodel MWE2 scripts.

OCL changes pushed to OCL master for M7.

QVTbaseLibrary pushed to QVTd master for M7.
Comment 2 Ed Willink CLA 2015-04-30 04:53:37 EDT
(In reply to Ed Willink from comment #1)
> The minimal QVTd library support for Model::objectsOfKind(OclType) and
> Transformation::modelFor(TypedModel) extends qvtbase::Transformation and
> pivot::Model.

But these are M2 classes. The required QVTo functionality is for M1 classes. (OMG Issue raised for the confusion re-use of names at M1/M2 without clear namespaces.)
Comment 3 Ed Willink CLA 2015-04-30 05:04:38 EDT
(In reply to Ed Willink from comment #2)
> But these are M2 classes. The required QVTo functionality is for M1 classes.
> (OMG Issue raised for the confusion re-use of names at M1/M2 without clear
> namespaces.)

http://solitaire.omg.org/browse/QVT13-52