Issue 12527: Errors and anomalies in QVT 1.0 07-07-08 ZIP qvtoperational.ecore (qvt-rtf) Source: Model Driven Solutions (Dr. Edward Willink, ed(at)willink.me.uk) Nature: Uncategorized Issue Severity: Summary: Use of automated tooling to support comparison of the models developed initially as part of the Eclipse GMT/UMLX project and being transferred to the Eclipse QVT Declarative/QVT Operational Mappings Projects reveals the following errors and anomalies in emof.ecore in the 07-07-08 ZIP. Note that these errors and anomalies are not the same as those separately reported for the QVT_1.0.mdl from which the Ecore was notionally auto-generated. An Ecore file resolving these anomalies is attached Resolution: These changes mostly affect non-normative files which were corrected when QVT 1.1 issued revised files based on Eclipse QVT contributions. However a few changes remain to be resolved in the main text. ContextualProperty .initExpression is Issue 13270 ObjectExp.instantiatedClass is Issue 13276 ObjectExp. initializationOperation is Issue 19021 ObjectExp. body is Issue 19022 Revised Text: In Fig 8.1 • Replace Operation by EntryOperation as target of Module.entry • Change ModelType.metamodel multiplicity to 1..* In Fig 8.2 • Disentangle MappingBody.endSection/OperationBody.content and {ordered} • Add {ordered} to OperationBody.content Move from 8.2.1.1 OperationalTransformation to 8.2.1.3 Module ownedVariable : Variable [0..*] {composes} The list of variables owned by this module. In 8.2.1.14 ContextualProperty change overridden: Property [1] to overridden: Property [0..1] In 8.2.1.14 ContextualProperty add initExpression: OclExpression [0..1] {composes} In 8.2.1.15 MappingOperation change isBlackbox: Boolean to /isBlackbox: Boolean (from ImperativeOperation) In 8.2.1.21 MappingCallExp Superclasses change OperationCallExp to ImperativeCallExp In 8.2.1.24 ObjectExp change /instantiatedClass: Class [0..1](from InstanciationExp) to /instantiatedClass: Class [1](from InstantiationExp) In 8.2.1.24 ObjectExp add body: ConstructorBody[1] { composes } The constructor to execute. In 8.2.1.24 ObjectExp add /initializationOperation : Constructor [0..1] (from InstantiationExp) The constructor that uses the arguments to initialize the object after creation. The constructor may be omitted when implicit construction occurs with no arguments. In the non-normative files change • ObjectExp.referredObject multiplicity to 1 Actions taken: June 6, 2008: received issue July 15, 2014: closed issue Discussion: End of Annotations:===== m: "Ed Willink" To: Subject: Errors and anomalies in QVT 1.0 07-07-08 ZIP qvtoperational.ecore Date: Fri, 6 Jun 2008 20:37:22 +0100 X-Mailer: Microsoft Outlook, Build 10.0.6838 Thread-Index: AcjIDL2rfwA9PM8DQVWOYFLIUU4drw== X-Plusnet-Relay: 51642e15469e5dc608d34ad133051fdc Use of automated tooling to support comparison of the models developed initially as part of the Eclipse GMT/UMLX project and being transferred to the Eclipse QVT Declarative/QVT Operational Mappings Projects reveals the following errors and anomalies in emof.ecore in the 07-07-08 ZIP. Note that these errors and anomalies are not the same as those separately reported for the QVT_1.0.mdl from which the Ecore was notionally auto-generated. An Ecore file resolving these anomalies is attached. 'nsURI' for 'QVTOperational' should be 'http://schema.omg.org/spec/QVT/1.0/qvtoperational.xml' rather than 'http://www.schema.omg.org/spec/QVT/1.0/qvtoperational' 'nsPrefix' for 'QVTOperational' should be 'qvto' rather than 'qvtoperational' 'name' for 'QVTOperational' should be 'QVTOperational' rather than 'qvtoperational' 'name' for 'MappingParameter.referredDomain' should be 'referredDomain' rather than 'refinedDomain' 'eType' for 'Module.entry' should be 'EntryOperation' rather than 'Operation' 'eSuperTypes' for 'ImperativeCallExp' should be 'OperationCallExp','ImperativeExpression' rather than 'OperationCallExp' 'eSuperTypes' for 'MappingOperation' should be 'ImperativeOperation' rather than 'ImperativeOperation','Operation','NamedElement' 'eSuperTypes' for 'ModelType' should be 'Class' rather than 'Class','URIExtent' 'eSuperTypes' for 'ResolveExp' should be 'CallExp','ImperativeExpression' rather than 'CallExp' 'upperBound' for 'MappingOperation.when' should be '1' rather than '-1' 'upperBound' for 'MappingOperation.where' should be '1' rather than '-1' 'lowerBound' for 'ModelType.metamodel' should be '1' rather than '0' 'defaultValueLiteral' for 'ImperativeCallExp.isVirtual' should be 'true' rather than undefined 'defaultValueLiteral' for 'ModelType.conformanceKind' should be 'effective' rather than undefined 'ordered' for 'Module.ownedVariable' should be 'false' rather than 'true' 'ordered' for 'OperationBody.variable' should be 'false' rather than 'true' Unnavigable 'opposite' of 'ContextualProperty.initExpression' should be modelled Unnavigable 'opposite' of 'ContextualProperty.overridden' should be modelled Unnavigable 'opposite' of 'ImperativeOperation.overridden' should be modelled Unnavigable 'opposite' of 'MappingBody.endSection' should be modelled Unnavigable 'opposite' of 'MappingBody.initSection' should be modelled Unnavigable 'opposite' of 'MappingOperation.disjunct' should be modelled Unnavigable 'opposite' of 'MappingOperation.inherited' should be modelled Unnavigable 'opposite' of 'MappingOperation.merged' should be modelled Unnavigable 'opposite' of 'MappingOperation.refinedRelation' should be modelled Unnavigable 'opposite' of 'MappingOperation.when' should be modelled Unnavigable 'opposite' of 'MappingOperation.where' should be modelled Unnavigable 'opposite' of 'MappingParameter.referredDomain' should be modelled Unnavigable 'opposite' of 'ModelType.additionalCondition' should be modelled Unnavigable 'opposite' of 'ModuleImport.importedModule' should be modelled Unnavigable 'opposite' of 'Module.entry' should be modelled Unnavigable 'opposite' of 'Module.ownedTag' should be modelled Unnavigable 'opposite' of 'Module.ownedVariable' should be modelled Unnavigable 'opposite' of 'ObjectExp.referredObject' should be modelled Unnavigable 'opposite' of 'OperationBody.content' should be modelled Unnavigable 'opposite' of 'OperationBody.variable' should be modelled Unnavigable 'opposite' of 'OperationalTransformation.intermediateClass' should be modelled Unnavigable 'opposite' of 'OperationalTransformation.intermediateProperty' should be modelled Unnavigable 'opposite' of 'OperationalTransformation.modelParameter' should be modelled Unnavigable 'opposite' of 'OperationalTransformation.refined' should be modelled Unnavigable 'opposite' of 'OperationalTransformation.relation' should be modelled Unnavigable 'opposite' of 'ResolveInExp.inMapping' should be modelled From: "Ed Willink" To: Cc: "Quentin Glineur" Subject: Re: QVT 1.0 Issue 12524 (and also 12518 to 12527) Date: Sun, 7 Sep 2008 11:35:38 +0100 X-Mailer: Microsoft Outlook, Build 10.0.6838 Thread-Index: AckQ1XfW7+MYoOdaRZqsH383msTnIg== X-Plusnet-Relay: cfc4683e0ac6584088ccb75eec87b977 Hi The submitted models are now available and used by the Eclipse QVT Declarative and QVT OML projects. The basic Rose model may be found at org.eclipse.m2m/org.eclipse.qvt.declarative/plugins/org.eclipse.qvt/model/QVT.mdl in the /cvsroot/modeling module on the CVS server at dev.eclipse.org, which is accessible to an 'anonymous' user. The referenced CAT files are in the same folder. EMOF and Ecore files may be found in the ecore, emof, traditionalEcore, traditionalEmof sub-folders. The non-traditional folders have a PrimitiveTypes package. The traditional folders merge the PrimitiveTypes package into the EMOF package. A FlatQVT is also available for use by the RelToCore example. ------- The QVT Relation model has been updated to incorporate the resolution of Issue 9380. The observation "'lowerBound' for 'RelationDomain.pattern' should be '1' rather than '0'" is therefore retracted. Regards Ed Willink QVTOperational.ecore