Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEd Willink2016-09-08 11:37:25 +0000
committerEd Willink2016-09-19 11:17:35 +0000
commite3d79458f78f2796452e7f97014b706184effe41 (patch)
tree2c91412a49e42c10bad27afa108528c7f2d735ed
parent3f8f5bb4b01533288deb574ec97a7c2b4c4a5903 (diff)
downloadorg.eclipse.qvtd-e3d79458f78f2796452e7f97014b706184effe41.tar.gz
org.eclipse.qvtd-e3d79458f78f2796452e7f97014b706184effe41.tar.xz
org.eclipse.qvtd-e3d79458f78f2796452e7f97014b706184effe41.zip
[500369] Replace NavigationAssignments by SetStatement
-rw-r--r--plugins/org.eclipse.qvtd.pivot.qvtimperative/model/QVTimperative.ecore26
-rw-r--r--plugins/org.eclipse.qvtd.pivot.qvtimperative/model/QVTimperative.genmodel17
-rw-r--r--plugins/org.eclipse.qvtd.pivot.qvtimperative/model/QVTimperative.ocl4
-rw-r--r--plugins/org.eclipse.qvtd.xtext.qvtimperative/model/QVTimperativeCS.ecore9
-rw-r--r--plugins/org.eclipse.qvtd.xtext.qvtimperative/model/QVTimperativeCS.genmodel5
-rw-r--r--plugins/org.eclipse.qvtd.xtext.qvtimperative/src/org/eclipse/qvtd/xtext/qvtimperative/QVTimperative.xtext15
-rw-r--r--tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src/org/eclipse/qvtd/xtext/qvtimperative/tests/ClassesCS2AS/bug457239/ClassesCS2ASv2_AS.qvtias14
-rw-r--r--tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src/org/eclipse/qvtd/xtext/qvtimperative/tests/Graph2GraphHierarchical/Graph2GraphHierarchical.ref.qvtias32
-rw-r--r--tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src/org/eclipse/qvtd/xtext/qvtimperative/tests/HSV2HLS/HSV2HLSas.qvtias34
9 files changed, 81 insertions, 75 deletions
diff --git a/plugins/org.eclipse.qvtd.pivot.qvtimperative/model/QVTimperative.ecore b/plugins/org.eclipse.qvtd.pivot.qvtimperative/model/QVTimperative.ecore
index 7730c5498..195ffd3e5 100644
--- a/plugins/org.eclipse.qvtd.pivot.qvtimperative/model/QVTimperative.ecore
+++ b/plugins/org.eclipse.qvtd.pivot.qvtimperative/model/QVTimperative.ecore
@@ -47,6 +47,11 @@
<eStructuralFeatures xsi:type="ecore:EReference" name="realizedVariable" ordered="false"
upperBound="-1" eType="#//RealizedVariable" containment="true"/>
</eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="BottomStatement" abstract="true" eSuperTypes="#//Statement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A MappingCall specifies the invocation of a referredMapping with a set of bindings&#xA;of the bound variables of the referredMapping to values provided in the invocation.&#xA;Where Collections of values are provided for isLoop bindings, a distinct invocation&#xA;is performed for each distinct permutation of Collection elements."/>
+ </eAnnotations>
+ </eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ConnectionAssignment" eSuperTypes="#//Assignment">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="A ConnectionAssignment assigns initial values to a ConnectionVariable."/>
@@ -57,6 +62,8 @@
<details key="body" value="assignment"/>
</eAnnotations>
</eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isEnforceadUnqiue" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ unsettable="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ConnectionStatement" eSuperTypes="#//MappingStatement">
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -180,33 +187,30 @@
<details key="documentation" value="A MappingCall specifies the invocation of a referredMapping with a set of bindings&#xA;of the bound variables of the referredMapping to values provided in the invocation.&#xA;Where Collections of values are provided for isLoop bindings, a distinct invocation&#xA;is performed for each distinct permutation of Collection elements."/>
</eAnnotations>
</eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="NavigationAssignment" abstract="true"
- eSuperTypes="#//Assignment">
+ <eClassifiers xsi:type="ecore:EClass" name="RealizedVariable" eSuperTypes="../../org.eclipse.ocl.pivot/model/Pivot.ecore#//Variable"/>
+ <eClassifiers xsi:type="ecore:EClass" name="SetStatement" eSuperTypes="#//BottomStatement">
<eStructuralFeatures xsi:type="ecore:EReference" name="slotExpression" lowerBound="1"
- eType="ecore:EClass ../../org.eclipse.ocl.pivot/model/Pivot.ecore#//OCLExpression"
+ eType="ecore:EClass ../../org.eclipse.ocl.pivot/model/Pivot.ecore#//VariableExp"
containment="true">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="slotAssignment"/>
</eAnnotations>
</eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="OppositePropertyAssignment" eSuperTypes="#//NavigationAssignment">
<eStructuralFeatures xsi:type="ecore:EReference" name="targetProperty" lowerBound="1"
eType="ecore:EClass ../../org.eclipse.ocl.pivot/model/Pivot.ecore#//Property">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="assignment"/>
</eAnnotations>
</eStructuralFeatures>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="PropertyAssignment" eSuperTypes="#//NavigationAssignment">
- <eStructuralFeatures xsi:type="ecore:EReference" name="targetProperty" lowerBound="1"
- eType="ecore:EClass ../../org.eclipse.ocl.pivot/model/Pivot.ecore#//Property">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="value" lowerBound="1" eType="ecore:EClass ../../org.eclipse.ocl.pivot/model/Pivot.ecore#//OCLExpression"
+ containment="true">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
- <details key="body" value="assignment"/>
+ <details key="body" value="valueAssignment"/>
</eAnnotations>
</eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isOpposite" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ unsettable="true"/>
</eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="RealizedVariable" eSuperTypes="../../org.eclipse.ocl.pivot/model/Pivot.ecore#//Variable"/>
<eClassifiers xsi:type="ecore:EClass" name="Statement" abstract="true" eSuperTypes="../../org.eclipse.ocl.pivot/model/Pivot.ecore#//NamedElement"/>
<eClassifiers xsi:type="ecore:EClass" name="VariableAssignment" eSuperTypes="#//Assignment">
<eStructuralFeatures xsi:type="ecore:EReference" name="targetVariable" lowerBound="1"
diff --git a/plugins/org.eclipse.qvtd.pivot.qvtimperative/model/QVTimperative.genmodel b/plugins/org.eclipse.qvtd.pivot.qvtimperative/model/QVTimperative.genmodel
index f04f5b3f5..6cbb1c143 100644
--- a/plugins/org.eclipse.qvtd.pivot.qvtimperative/model/QVTimperative.genmodel
+++ b/plugins/org.eclipse.qvtd.pivot.qvtimperative/model/QVTimperative.genmodel
@@ -34,8 +34,10 @@
<genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference QVTimperative.ecore#//BottomPattern/assignment"/>
<genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference QVTimperative.ecore#//BottomPattern/realizedVariable"/>
</genClasses>
+ <genClasses image="false" ecoreClass="QVTimperative.ecore#//BottomStatement"/>
<genClasses ecoreClass="QVTimperative.ecore#//ConnectionAssignment">
<genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference QVTimperative.ecore#//ConnectionAssignment/targetVariable"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute QVTimperative.ecore#//ConnectionAssignment/isEnforceadUnqiue"/>
</genClasses>
<genClasses ecoreClass="QVTimperative.ecore#//ConnectionStatement">
<genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference QVTimperative.ecore#//ConnectionStatement/targetVariable"/>
@@ -73,16 +75,13 @@
<genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference QVTimperative.ecore#//MappingLoop/ownedSource"/>
</genClasses>
<genClasses image="false" ecoreClass="QVTimperative.ecore#//MappingStatement"/>
- <genClasses image="false" ecoreClass="QVTimperative.ecore#//NavigationAssignment">
- <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference QVTimperative.ecore#//NavigationAssignment/slotExpression"/>
- </genClasses>
- <genClasses ecoreClass="QVTimperative.ecore#//OppositePropertyAssignment">
- <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference QVTimperative.ecore#//OppositePropertyAssignment/targetProperty"/>
- </genClasses>
- <genClasses ecoreClass="QVTimperative.ecore#//PropertyAssignment">
- <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference QVTimperative.ecore#//PropertyAssignment/targetProperty"/>
- </genClasses>
<genClasses ecoreClass="QVTimperative.ecore#//RealizedVariable"/>
+ <genClasses ecoreClass="QVTimperative.ecore#//SetStatement">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference QVTimperative.ecore#//SetStatement/slotExpression"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference QVTimperative.ecore#//SetStatement/targetProperty"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference QVTimperative.ecore#//SetStatement/value"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute QVTimperative.ecore#//SetStatement/isOpposite"/>
+ </genClasses>
<genClasses image="false" ecoreClass="QVTimperative.ecore#//Statement"/>
<genClasses ecoreClass="QVTimperative.ecore#//VariableAssignment">
<genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference QVTimperative.ecore#//VariableAssignment/targetVariable"/>
diff --git a/plugins/org.eclipse.qvtd.pivot.qvtimperative/model/QVTimperative.ocl b/plugins/org.eclipse.qvtd.pivot.qvtimperative/model/QVTimperative.ocl
index d26c5b468..fe15299fb 100644
--- a/plugins/org.eclipse.qvtd.pivot.qvtimperative/model/QVTimperative.ocl
+++ b/plugins/org.eclipse.qvtd.pivot.qvtimperative/model/QVTimperative.ocl
@@ -52,10 +52,10 @@ def: isTarget : Boolean = oclIsKindOf(ImperativeDomain) and oclAsType(Imperative
context ImperativeDomain
def: mapping : qvtimperative::Mapping = rule.oclAsType(qvtimperative::Mapping)
inv CheckableXorEnforceable: isCheckable xor isEnforceable
-inv NoSideBottomPatternVariables: bottomPattern.variable->isEmpty()
+--inv NoSideBottomPatternVariables: bottomPattern.variable->isEmpty()
inv NoSideBottomPatternAssignments: bottomPattern.assignment->isEmpty()
-context PropertyAssignment
+context SetStatement
inv IsNotReadOnly: not targetProperty.isReadOnly
inv PropertyOfSlot(slotExpression.type.name + ' must conform to ' + targetProperty.owningClass.name): slotExpression.type.conformsTo(targetProperty.owningClass)
inv CompatibleType(value.type.name + ' must conform to ' + targetProperty.type.name): value.type.conformsTo(targetProperty.type)
diff --git a/plugins/org.eclipse.qvtd.xtext.qvtimperative/model/QVTimperativeCS.ecore b/plugins/org.eclipse.qvtd.xtext.qvtimperative/model/QVTimperativeCS.ecore
index 517ff74f1..ddd910d80 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtimperative/model/QVTimperativeCS.ecore
+++ b/plugins/org.eclipse.qvtd.xtext.qvtimperative/model/QVTimperativeCS.ecore
@@ -136,6 +136,15 @@
<eStructuralFeatures xsi:type="ecore:EReference" name="ownedInitExpression" eType="ecore:EClass ../../org.eclipse.ocl.xtext.essentialocl/model/EssentialOCLCS.ecore#//ExpCS"
containment="true"/>
</eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SetStatementCS" eSuperTypes="#//StatementCS">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="referredProperty" lowerBound="1"
+ eType="ecore:EClass ../../org.eclipse.ocl.pivot/model/Pivot.ecore#//Property"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="referredVariable" lowerBound="1"
+ eType="ecore:EClass ../../org.eclipse.ocl.pivot/model/Pivot.ecore#//Variable"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="ownedInitExpression" lowerBound="1"
+ eType="ecore:EClass ../../org.eclipse.ocl.xtext.essentialocl/model/EssentialOCLCS.ecore#//ExpCS"
+ containment="true"/>
+ </eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="StatementCS" abstract="true" eSuperTypes="../../org.eclipse.ocl.xtext.base/model/BaseCS.ecore#//ModelElementCS"/>
<eClassifiers xsi:type="ecore:EClass" name="TopLevelCS" eSuperTypes="../../org.eclipse.ocl.xtext.base/model/BaseCS.ecore#//RootPackageCS">
<eStructuralFeatures xsi:type="ecore:EReference" name="ownedMappings" upperBound="-1"
diff --git a/plugins/org.eclipse.qvtd.xtext.qvtimperative/model/QVTimperativeCS.genmodel b/plugins/org.eclipse.qvtd.xtext.qvtimperative/model/QVTimperativeCS.genmodel
index 52007fcc3..11baa7c0e 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtimperative/model/QVTimperativeCS.genmodel
+++ b/plugins/org.eclipse.qvtd.xtext.qvtimperative/model/QVTimperativeCS.genmodel
@@ -92,6 +92,11 @@
<genClasses ecoreClass="QVTimperativeCS.ecore#//RealizedVariableCS">
<genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference QVTimperativeCS.ecore#//RealizedVariableCS/ownedInitExpression"/>
</genClasses>
+ <genClasses ecoreClass="QVTimperativeCS.ecore#//SetStatementCS">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference QVTimperativeCS.ecore#//SetStatementCS/referredProperty"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference QVTimperativeCS.ecore#//SetStatementCS/referredVariable"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference QVTimperativeCS.ecore#//SetStatementCS/ownedInitExpression"/>
+ </genClasses>
<genClasses image="false" ecoreClass="QVTimperativeCS.ecore#//StatementCS"/>
<genClasses ecoreClass="QVTimperativeCS.ecore#//TopLevelCS">
<genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference QVTimperativeCS.ecore#//TopLevelCS/ownedMappings"/>
diff --git a/plugins/org.eclipse.qvtd.xtext.qvtimperative/src/org/eclipse/qvtd/xtext/qvtimperative/QVTimperative.xtext b/plugins/org.eclipse.qvtd.xtext.qvtimperative/src/org/eclipse/qvtd/xtext/qvtimperative/QVTimperative.xtext
index d446e5489..ad67e2d55 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtimperative/src/org/eclipse/qvtd/xtext/qvtimperative/QVTimperative.xtext
+++ b/plugins/org.eclipse.qvtd.xtext.qvtimperative/src/org/eclipse/qvtd/xtext/qvtimperative/QVTimperative.xtext
@@ -38,9 +38,13 @@ BottomPatternCS: // Bug 466385 explains the redundancy below
{BottomPatternCS} '{' '}'
)
;
+
+BottomStatementCS returns StatementCS: SetStatementCS;
ConnectionStatementCS: targetVariable=[pivot::Variable|UnrestrictedName] '+=' ownedExpression=ExpCS ';';
+ControlStatementCS returns MappingStatementCS: ConnectionStatementCS | MappingCallCS | MappingLoopCS;
+
DirectionCS: {DirectionCS} name=UnrestrictedName?
'imports' imports+=[pivot::Package|UnrestrictedName] (',' imports+=[pivot::Package|UnrestrictedName])*
('uses' uses+=[qvtimperative::ImperativeDomain|UnrestrictedName] (',' uses+=[qvtimperative::ImperativeDomain|UnrestrictedName])*)?
@@ -66,19 +70,18 @@ ImportCS returns base::ImportCS:
MappingCS: {MappingCS} isDefault?='default'? 'map' name=UnrestrictedName ('in' ownedInPathName=PathNameCS)?
('uses' ownedUsesPathNames+=PathNameCS (',' ownedUsesPathNames+=PathNameCS)*)? ('key' ownedKeyExpression=ExpCS ';')?
- '{' ownedDomains+=(SourceDomainCS | TargetDomainCS)* ('where' ownedMiddle=MiddleDomainCS)? ownedStatements+=StatementCS* '}';
+ '{' ownedDomains+=(SourceDomainCS | TargetDomainCS)* ('where' ownedMiddle=MiddleDomainCS)?
+ ownedStatements+=BottomStatementCS* ownedStatements+=ControlStatementCS* '}';
MappingCallCS: {MappingCallCS} isInfinite?='infinite'? 'call' ownedPathName=PathNameCS
'{' ownedBindings+=MappingCallBindingCS* '}';
MappingCallBindingCS: referredVariable=[pivot::Variable|UnrestrictedName] (':='|isPolled?='?=') ownedValue=ExpCS ';';
-MappingLoopCS: 'for' ownedIterator=MappingIteratorCS 'in' ownedInExpression=ExpCS '{' ownedMappingStatements+=MappingStatementCS+ '}';
+MappingLoopCS: 'for' ownedIterator=MappingIteratorCS 'in' ownedInExpression=ExpCS '{' ownedMappingStatements+=ControlStatementCS+ '}';
MappingIteratorCS returns essentialocl::VariableCS: name=UnrestrictedName (':' ownedType=TypeExpCS)?;
-MappingStatementCS: ConnectionStatementCS | MappingCallCS | MappingLoopCS;
-
MiddleDomainCS returns DomainCS:
('{' ('check' checkedProperties+=PathNameCS (',' checkedProperties+=PathNameCS)*)?
('enforce' enforcedProperties+=PathNameCS (',' enforcedProperties+=PathNameCS)*)? '}')?
@@ -137,6 +140,8 @@ RealizedVariableCS:
ScopeNameCS returns base::PathNameCS:
ownedPathElements+=FirstPathElementCS '::' (ownedPathElements+=NextPathElementCS '::')*;
+
+SetStatementCS: 'set' referredVariable=[pivot::Variable|UnrestrictedName] '.' referredProperty=[pivot::Property|UnrestrictedName] ':=' ownedInitExpression=ExpCS ';';
SourceDomainCS returns DomainCS: isCheck?='check' direction=[qvtbase::TypedModel|UnrestrictedName]
('{' ('check' checkedProperties+=PathNameCS (',' checkedProperties+=PathNameCS)*)?
@@ -154,7 +159,7 @@ SourceGuardPatternCS returns GuardPatternCS:
{GuardPatternCS} '(' (ownedUnrealizedVariables+=UnrealizedVariableCS (',' ownedUnrealizedVariables+=UnrealizedVariableCS)*)? ')'
;
-StatementCS: MappingStatementCS;
+StatementCS: ControlStatementCS;
TransformationCS:
'transformation' ownedPathName=ScopeNameCS? name=UnreservedName '{' (ownedDirections+=DirectionCS ';')* '}';
diff --git a/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src/org/eclipse/qvtd/xtext/qvtimperative/tests/ClassesCS2AS/bug457239/ClassesCS2ASv2_AS.qvtias b/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src/org/eclipse/qvtd/xtext/qvtimperative/tests/ClassesCS2AS/bug457239/ClassesCS2ASv2_AS.qvtias
index 83c1e4d59..8e63a8705 100644
--- a/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src/org/eclipse/qvtd/xtext/qvtimperative/tests/ClassesCS2AS/bug457239/ClassesCS2ASv2_AS.qvtias
+++ b/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src/org/eclipse/qvtd/xtext/qvtimperative/tests/ClassesCS2AS/bug457239/ClassesCS2ASv2_AS.qvtias
@@ -51,26 +51,22 @@
<rule xsi:type="qvti:Mapping" xmi:id="m..classescs2as.__root__" name="__root__">
<guardPattern/>
<bottomPattern/>
- <mappingStatement xsi:type="qvti:MappingSequence">
- <mappingStatements xsi:type="qvti:MappingLoop">
+ <ownedStatements xsi:type="qvti:MappingLoop">
<ownedSource xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.0"
referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclElement.allInstances">
<ownedSource xsi:type="pivot:TypeExp" type="pivot:Class http://www.eclipse.org/ocl/2015/Library.oclas#T.ocl.Class"
referredType="pivot:Class ../ClassesCS.ecore.oclas#T.classescs.PackageCS"/>
</ownedSource>
- <ownedBody xsi:type="qvti:MappingSequence">
- <mappingStatements xsi:type="qvti:MappingCall" referredMapping="#m..classescs2as.createPackage">
+ <ownedMappingStatements xsi:type="qvti:MappingCall" referredMapping="#m..classescs2as.createPackage">
<binding boundVariable="#qV..classescs2as.createPackage.leftCS.guard.packageCS">
<value xsi:type="pivot:VariableExp" type="pivot:Class ../ClassesCS.ecore.oclas#T.classescs.PackageCS"
referredVariable="#i..classescs2as.__root__.0.0.packageCS"/>
</binding>
- </mappingStatements>
- </ownedBody>
+ </ownedMappingStatements>
<ownedIterators xmi:id="i..classescs2as.__root__.0.0.packageCS" name="packageCS"
type="pivot:Class ../ClassesCS.ecore.oclas#T.classescs.PackageCS"/>
- </mappingStatements>
- </mappingStatement>
- </rule>
+ </ownedStatements>
+ </rule>
</ownedClasses>
</ownedPackages>
<ownedPackages xmi:id="P.$$" name="$$" URI="http://www.eclipse.org/ocl/2015/Orphanage"
diff --git a/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src/org/eclipse/qvtd/xtext/qvtimperative/tests/Graph2GraphHierarchical/Graph2GraphHierarchical.ref.qvtias b/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src/org/eclipse/qvtd/xtext/qvtimperative/tests/Graph2GraphHierarchical/Graph2GraphHierarchical.ref.qvtias
index 50c7e583c..2783b8c68 100644
--- a/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src/org/eclipse/qvtd/xtext/qvtimperative/tests/Graph2GraphHierarchical/Graph2GraphHierarchical.ref.qvtias
+++ b/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src/org/eclipse/qvtd/xtext/qvtimperative/tests/Graph2GraphHierarchical/Graph2GraphHierarchical.ref.qvtias
@@ -48,8 +48,7 @@
referredVariable="#qV..CopyGraph.Graph2Middle.middle.bottom.middleG2G"/>
</assignment>
</bottomPattern>
- <mappingStatement xsi:type="qvti:MappingSequence">
- <mappingStatements xsi:type="qvti:MappingLoop">
+ <ownedStatements xsi:type="qvti:MappingLoop">
<ownedSource xsi:type="pivot:IteratorExp" type="#//@ownedPackages.1/@ownedClasses.0"
referredIteration="http://www.eclipse.org/ocl/2015/Library.oclas#i.ocl.OrderedSet.select..T">
<ownedSource xsi:type="pivot:PropertyCallExp" type="#//@ownedPackages.1/@ownedClasses.0"
@@ -60,15 +59,14 @@
<ownedBody xsi:type="pivot:OperationCallExp" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#Boolean"
referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.oclIsTypeOf..ocl.OclType">
<ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../Graph2GraphMinimal/SimpleGraph.ecore.oclas#T.simplegraph.Element"
- referredVariable="#//@ownedPackages.0/@ownedClasses.0/@rule.0/@mappingStatement/@mappingStatements.0/@ownedSource/@ownedIterators.0"/>
+ referredVariable="#//@ownedPackages.0/@ownedClasses.0/@rule.0/@ownedStatements.0/@ownedSource/@ownedIterators.0"/>
<ownedArguments xsi:type="pivot:TypeExp" type="pivot:Class http://www.eclipse.org/ocl/2015/Library.oclas#T.ocl.Class"
referredType="pivot:Class ../Graph2GraphMinimal/SimpleGraph.ecore.oclas#T.simplegraph.Node"/>
</ownedBody>
<ownedIterators name="e" isRequired="false" type="pivot:Class ../Graph2GraphMinimal/SimpleGraph.ecore.oclas#T.simplegraph.Element"
representedParameter="http://www.eclipse.org/ocl/2015/Library.oclas#i0i.ocl.OrderedSet.select..T"/>
</ownedSource>
- <ownedBody xsi:type="qvti:MappingSequence">
- <mappingStatements xsi:type="qvti:MappingCall" referredMapping="#m..CopyGraph.Node2Middle">
+ <ownedMappingStatements xsi:type="qvti:MappingCall" referredMapping="#m..CopyGraph.Node2Middle">
<binding boundVariable="#qV..CopyGraph.Node2Middle.upperGraph.guard.n1">
<value xsi:type="pivot:VariableExp" type="pivot:Class ../Graph2GraphMinimal/SimpleGraph.ecore.oclas#T.simplegraph.Element"
referredVariable="#i..CopyGraph.Graph2Middle.0.0.child"/>
@@ -77,18 +75,16 @@
<value xsi:type="pivot:VariableExp" type="pivot:Class ../Graph2GraphMinimal/SimpleGraph2Graph.ecore.oclas#T.simplegraph2graph.Graph2Graph"
referredVariable="#qV..CopyGraph.Graph2Middle.middle.bottom.middleG2G"/>
</binding>
- </mappingStatements>
- </ownedBody>
+ </ownedMappingStatements>
<ownedIterators xmi:id="i..CopyGraph.Graph2Middle.0.0.child" name="child"
type="pivot:Class ../Graph2GraphMinimal/SimpleGraph.ecore.oclas#T.simplegraph.Element"/>
- </mappingStatements>
- <mappingStatements xsi:type="qvti:MappingCall" referredMapping="#m..CopyGraph.Middle2Graph">
+ </ownedStatements>
+ <ownedStatements xsi:type="qvti:MappingCall" referredMapping="#m..CopyGraph.Middle2Graph">
<binding boundVariable="#qV..CopyGraph.Middle2Graph.middle.guard.g2Gmiddle">
<value xsi:type="pivot:VariableExp" type="pivot:Class ../Graph2GraphMinimal/SimpleGraph2Graph.ecore.oclas#T.simplegraph2graph.Graph2Graph"
referredVariable="#qV..CopyGraph.Graph2Middle.middle.bottom.middleG2G"/>
</binding>
- </mappingStatements>
- </mappingStatement>
+ </ownedStatements>
</rule>
<rule xsi:type="qvti:Mapping" xmi:id="m..CopyGraph.Node2Middle" name="Node2Middle">
<domain xsi:type="qvti:ImperativeDomain" isCheckable="true" isEnforceable="false"
@@ -173,8 +169,7 @@
referredVariable="#qV..CopyGraph.Middle2Graph.lowerGraph.bottom.g2"/>
</assignment>
</bottomPattern>
- <mappingStatement xsi:type="qvti:MappingSequence">
- <mappingStatements xsi:type="qvti:MappingLoop">
+ <ownedStatements xsi:type="qvti:MappingLoop">
<ownedSource xsi:type="pivot:IteratorExp" type="#//@ownedPackages.1/@ownedClasses.1"
referredIteration="http://www.eclipse.org/ocl/2015/Library.oclas#i.ocl.OrderedSet.select..T">
<ownedSource xsi:type="pivot:PropertyCallExp" type="#//@ownedPackages.1/@ownedClasses.1"
@@ -185,25 +180,22 @@
<ownedBody xsi:type="pivot:OperationCallExp" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#Boolean"
referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.oclIsTypeOf..ocl.OclType">
<ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../Graph2GraphMinimal/SimpleGraph2Graph.ecore.oclas#T.simplegraph2graph.Element2Element"
- referredVariable="#//@ownedPackages.0/@ownedClasses.0/@rule.2/@mappingStatement/@mappingStatements.0/@ownedSource/@ownedIterators.0"/>
+ referredVariable="#//@ownedPackages.0/@ownedClasses.0/@rule.2/@ownedStatements.0/@ownedSource/@ownedIterators.0"/>
<ownedArguments xsi:type="pivot:TypeExp" type="pivot:Class http://www.eclipse.org/ocl/2015/Library.oclas#T.ocl.Class"
referredType="pivot:Class ../Graph2GraphMinimal/SimpleGraph2Graph.ecore.oclas#T.simplegraph2graph.Node2Node"/>
</ownedBody>
<ownedIterators name="e2e" isRequired="false" type="pivot:Class ../Graph2GraphMinimal/SimpleGraph2Graph.ecore.oclas#T.simplegraph2graph.Element2Element"
representedParameter="http://www.eclipse.org/ocl/2015/Library.oclas#i0i.ocl.OrderedSet.select..T"/>
</ownedSource>
- <ownedBody xsi:type="qvti:MappingSequence">
- <mappingStatements xsi:type="qvti:MappingCall" referredMapping="#m..CopyGraph.Middle2Node">
+ <ownedMappingStatements xsi:type="qvti:MappingCall" referredMapping="#m..CopyGraph.Middle2Node">
<binding boundVariable="#qV..CopyGraph.Middle2Node.middle.guard.n2n">
<value xsi:type="pivot:VariableExp" type="pivot:Class ../Graph2GraphMinimal/SimpleGraph2Graph.ecore.oclas#T.simplegraph2graph.Element2Element"
referredVariable="#i..CopyGraph.Middle2Graph.0.0.child"/>
</binding>
- </mappingStatements>
- </ownedBody>
+ </ownedMappingStatements>
<ownedIterators xmi:id="i..CopyGraph.Middle2Graph.0.0.child" name="child"
type="pivot:Class ../Graph2GraphMinimal/SimpleGraph2Graph.ecore.oclas#T.simplegraph2graph.Element2Element"/>
- </mappingStatements>
- </mappingStatement>
+ </ownedStatements>
</rule>
<rule xsi:type="qvti:Mapping" xmi:id="m..CopyGraph.Middle2Node" name="Middle2Node">
<domain xsi:type="qvti:ImperativeDomain" isCheckable="true" isEnforceable="false"
diff --git a/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src/org/eclipse/qvtd/xtext/qvtimperative/tests/HSV2HLS/HSV2HLSas.qvtias b/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src/org/eclipse/qvtd/xtext/qvtimperative/tests/HSV2HLS/HSV2HLSas.qvtias
index 9de5e9818..f5c53fb2d 100644
--- a/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src/org/eclipse/qvtd/xtext/qvtimperative/tests/HSV2HLS/HSV2HLSas.qvtias
+++ b/tests/org.eclipse.qvtd.xtext.qvtimperative.tests/src/org/eclipse/qvtd/xtext/qvtimperative/tests/HSV2HLS/HSV2HLSas.qvtias
@@ -49,8 +49,7 @@
<slotExpression xsi:type="pivot:VariableExp" type="pivot:Class HSV2HLS.ecore.oclas#T.HSV2HLS.HSVNode2HLSNode" referredVariable="#qV..hsv2hls.HSV2HLSRoot_LM.middle.bottom.middleRoot"/>
</assignment>
</bottomPattern>
- <mappingStatement xsi:type="qvti:MappingSequence">
- <mappingStatements xsi:type="qvti:MappingCall" referredMapping="#m..hsv2hls.HSV2HLSRecursion_LM">
+ <ownedStatements xsi:type="qvti:MappingCall" referredMapping="#m..hsv2hls.HSV2HLSRecursion_LM">
<binding boundVariable="#qV..hsv2hls.HSV2HLSRecursion_LM.hsv.guard.hsvNode">
<value xsi:type="pivot:VariableExp" type="pivot:Class HSVTree.ecore.oclas#T.HSVTree.HSVNode" referredVariable="#qV..hsv2hls.HSV2HLSRoot_LM.hsv.guard.hsvRoot"/>
</binding>
@@ -62,14 +61,13 @@
<ownedSource xsi:type="pivot:VariableExp" type="pivot:Class HSVTree.ecore.oclas#T.HSVTree.HSVNode" referredVariable="#qV..hsv2hls.HSV2HLSRoot_LM.hsv.guard.hsvRoot"/>
</value>
</binding>
- </mappingStatements>
- <mappingStatements xsi:type="qvti:MappingCall" referredMapping="#m..hsv2hls.HSV2HLSRoot_MR">
+ </ownedStatements>
+ <ownedStatements xsi:type="qvti:MappingCall" referredMapping="#m..hsv2hls.HSV2HLSRoot_MR">
<binding boundVariable="#qV..hsv2hls.HSV2HLSRoot_MR.middle.guard.middleRoot">
<value xsi:type="pivot:VariableExp" type="pivot:Class HSV2HLS.ecore.oclas#T.HSV2HLS.HSVNode2HLSNode" referredVariable="#qV..hsv2hls.HSV2HLSRoot_LM.middle.bottom.middleRoot"/>
</binding>
- </mappingStatements>
- </mappingStatement>
- </rule>
+ </ownedStatements>
+ </rule>
<rule xsi:type="qvti:Mapping" xmi:id="m..hsv2hls.HSV2HLSRoot_MR" name="HSV2HLSRoot_MR">
<domain xsi:type="qvti:ImperativeDomain" name="hls" isCheckable="false" isEnforceable="true" typedModel="#qT..hsv2hls.hls">
<guardPattern/>
@@ -101,7 +99,7 @@
<slotExpression xsi:type="pivot:VariableExp" type="pivot:Class HLSTree.ecore.oclas#T.HLSTree.HLSNode" referredVariable="#qV..hsv2hls.HSV2HLSRoot_MR.hls.bottom.hlsRoot"/>
</assignment>
</bottomPattern>
- <mappingStatement xsi:type="qvti:MappingCall" referredMapping="#m..hsv2hls.HSV2HLSRecursion_MR">
+ <ownedStatements xsi:type="qvti:MappingCall" referredMapping="#m..hsv2hls.HSV2HLSRecursion_MR">
<binding boundVariable="#qV..hsv2hls.HSV2HLSRecursion_MR.middle.guard.middleNode">
<value xsi:type="pivot:VariableExp" type="pivot:Class HSV2HLS.ecore.oclas#T.HSV2HLS.HSVNode2HLSNode" referredVariable="#qV..hsv2hls.HSV2HLSRoot_MR.middle.guard.middleRoot"/>
</binding>
@@ -113,7 +111,7 @@
<ownedSource xsi:type="pivot:VariableExp" type="pivot:Class HSV2HLS.ecore.oclas#T.HSV2HLS.HSVNode2HLSNode" referredVariable="#qV..hsv2hls.HSV2HLSRoot_MR.middle.guard.middleRoot"/>
</value>
</binding>
- </mappingStatement>
+ </ownedStatements>
</rule>
<rule xsi:type="qvti:Mapping" xmi:id="m..hsv2hls.HSV2HLSRecursion_LM" name="HSV2HLSRecursion_LM">
<domain xsi:type="qvti:ImperativeDomain" name="hsv" isCheckable="true" isEnforceable="false" typedModel="#qT..hsv2hls.hsv">
@@ -168,7 +166,7 @@
<slotExpression xsi:type="pivot:VariableExp" type="pivot:Class HSV2HLS.ecore.oclas#T.HSV2HLS.HSVNode2HLSNode" referredVariable="#qV..hsv2hls.HSV2HLSRecursion_LM.middle.bottom.middleNode"/>
</assignment>
</bottomPattern>
- <mappingStatement xsi:type="qvti:MappingCall" referredMapping="#m..hsv2hls.HSV2HLSRecursion_LM">
+ <ownedStatements xsi:type="qvti:MappingCall" referredMapping="#m..hsv2hls.HSV2HLSRecursion_LM">
<binding boundVariable="#qV..hsv2hls.HSV2HLSRecursion_LM.hsv.guard.hsvNode">
<value xsi:type="pivot:VariableExp" type="pivot:Class HSVTree.ecore.oclas#T.HSVTree.HSVNode" referredVariable="#qV..hsv2hls.HSV2HLSRecursion_LM.hsv.guard.hsvNode"/>
</binding>
@@ -180,7 +178,7 @@
<ownedSource xsi:type="pivot:VariableExp" type="pivot:Class HSVTree.ecore.oclas#T.HSVTree.HSVNode" referredVariable="#qV..hsv2hls.HSV2HLSRecursion_LM.hsv.guard.hsvNode"/>
</value>
</binding>
- </mappingStatement>
+ </ownedStatements>
</rule>
<rule xsi:type="qvti:Mapping" xmi:id="m..hsv2hls.HSV2HLSRecursion_MR" name="HSV2HLSRecursion_MR">
<domain xsi:type="qvti:ImperativeDomain" name="hls" isCheckable="false" isEnforceable="true" typedModel="#qT..hsv2hls.hls">
@@ -235,7 +233,7 @@
<slotExpression xsi:type="pivot:VariableExp" type="pivot:Class HLSTree.ecore.oclas#T.HLSTree.HLSNode" referredVariable="#qV..hsv2hls.HSV2HLSRecursion_MR.hls.bottom.hlsNode"/>
</assignment>
</bottomPattern>
- <mappingStatement xsi:type="qvti:MappingCall" referredMapping="#m..hsv2hls.HSV2HLSRecursion_MR">
+ <ownedStatements xsi:type="qvti:MappingCall" referredMapping="#m..hsv2hls.HSV2HLSRecursion_MR">
<binding boundVariable="#qV..hsv2hls.HSV2HLSRecursion_MR.middle.guard.middleNode">
<value xsi:type="pivot:VariableExp" type="pivot:Class HSV2HLS.ecore.oclas#T.HSV2HLS.HSVNode2HLSNode" referredVariable="#qV..hsv2hls.HSV2HLSRecursion_MR.middle.guard.middleParent"/>
</binding>
@@ -247,24 +245,22 @@
<ownedSource xsi:type="pivot:VariableExp" type="pivot:Class HSV2HLS.ecore.oclas#T.HSV2HLS.HSVNode2HLSNode" referredVariable="#qV..hsv2hls.HSV2HLSRecursion_MR.middle.guard.middleParent"/>
</value>
</binding>
- </mappingStatement>
+ </ownedStatements>
</rule>
<rule xsi:type="qvti:Mapping" xmi:id="m..hsv2hls.__root__" name="__root__">
<guardPattern/>
<bottomPattern xsi:type="qvti:BottomPattern"/>
- <mappingStatement xsi:type="qvti:MappingLoop">
+ <ownedStatements xsi:type="qvti:MappingLoop">
<ownedSource xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.0" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclElement.allInstances">
<ownedSource xsi:type="pivot:TypeExp" type="pivot:Class http://www.eclipse.org/ocl/2015/Library.oclas#T.ocl.Class" referredType="pivot:Class HSVTree.ecore.oclas#T.HSVTree.HSVNode"/>
</ownedSource>
- <ownedBody xsi:type="qvti:MappingSequence">
- <mappingStatements xsi:type="qvti:MappingCall" referredMapping="#m..hsv2hls.HSV2HLSRoot_LM">
+ <ownedMappingStatements xsi:type="qvti:MappingCall" referredMapping="#m..hsv2hls.HSV2HLSRoot_LM">
<binding boundVariable="#qV..hsv2hls.HSV2HLSRoot_LM.hsv.guard.hsvRoot">
<value xsi:type="pivot:VariableExp" type="pivot:Class HSVTree.ecore.oclas#T.HSVTree.HSVNode" referredVariable="#i..hsv2hls.__root__.0._hsvRoot_HSVNode"/>
</binding>
- </mappingStatements>
- </ownedBody>
+ </ownedMappingStatements>
<ownedIterators xmi:id="i..hsv2hls.__root__.0._hsvRoot_HSVNode" name="_hsvRoot_HSVNode" type="pivot:Class HSVTree.ecore.oclas#T.HSVTree.HSVNode"/>
- </mappingStatement>
+ </ownedStatements>
</rule>
</ownedClasses>
</ownedPackages>

Back to the top