Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdolfo SBH2015-05-01 10:46:45 +0000
committerAdolfo SBH2015-08-09 13:46:48 +0000
commiteb6562a608a805de81c388bb2bb0856896f47d42 (patch)
tree14430706af88c3c49720db1a0ada8ccf355815b7
parent0b814948bffc71f5523f61add6434764fff05e79 (diff)
downloadorg.eclipse.qvtd-asanchez/pathElementCSLookups.tar.gz
org.eclipse.qvtd-asanchez/pathElementCSLookups.tar.xz
org.eclipse.qvtd-asanchez/pathElementCSLookups.zip
[ocl2qvti] - oclContainer opcall analysis in context X, will alsoasanchez/pathElementCSLookups
consider containment properties whose type is the subtype of X. - Defining AST ops for PathNameCS and PathElementCS Conflicts: plugins/org.eclipse.qvtd.cs2as.compiler/src/org/eclipse/qvtd/cs2as/compiler/internal/etl/ocl2qvtp_v2.etl tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example1/Source2TargetSchedule.xmi tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example1/TargetLookup.ocl tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/cg/Source2Target_qvtp_qvtias.java
-rw-r--r--plugins/org.eclipse.qvtd.cs2as.compiler/src/org/eclipse/qvtd/cs2as/compiler/internal/etl/ocl2qvtiUtils.eol20
-rw-r--r--plugins/org.eclipse.qvtd.cs2as.compiler/src/org/eclipse/qvtd/cs2as/compiler/internal/etl/ocl2qvtp_v2.etl163
-rw-r--r--tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example1/Source2Target.ocl51
-rw-r--r--tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example1/Source2Target.qvtias466
-rw-r--r--tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example1/Source2Target.qvtp.qvtias322
-rw-r--r--tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example1/Source2TargetSchedule.xmi129
-rw-r--r--tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example1/SourceMM1.ecore7
-rw-r--r--tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example1/TargetLookup.ocl121
-rw-r--r--tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example1/debug/Source2TargetDependencies.graphml537
-rw-r--r--tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example1/debug/Source2TargetSchedule_complete.graphml163
-rw-r--r--tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example1/debug/Source2TargetSchedule_pruned.graphml259
-rw-r--r--tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example1/samples/model2_output_Interpreted.xmi2
-rw-r--r--tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example1/samples/model3_output_CG.xmi28
-rw-r--r--tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/cg/_Source2Target_qvtp_qvtias/Source2Target_qvtp_qvtias.java468
-rw-r--r--tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/example1/source/PathElementCS.java29
-rw-r--r--tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/example1/source/PathNameCS.java31
-rw-r--r--tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/example1/source/SElement.java2
-rw-r--r--tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/example1/source/SourceFactory.java9
-rw-r--r--tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/example1/source/SourcePackage.java60
-rw-r--r--tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/example1/source/impl/PathElementCSImpl.java100
-rw-r--r--tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/example1/source/impl/PathNameCSImpl.java82
-rw-r--r--tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/example1/source/impl/SElementImpl.java2
-rw-r--r--tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/example1/source/impl/SourceFactoryImpl.java11
-rw-r--r--tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/example1/source/impl/SourcePackageImpl.java26
24 files changed, 2221 insertions, 867 deletions
diff --git a/plugins/org.eclipse.qvtd.cs2as.compiler/src/org/eclipse/qvtd/cs2as/compiler/internal/etl/ocl2qvtiUtils.eol b/plugins/org.eclipse.qvtd.cs2as.compiler/src/org/eclipse/qvtd/cs2as/compiler/internal/etl/ocl2qvtiUtils.eol
index 9df8e252f..8ab06d34a 100644
--- a/plugins/org.eclipse.qvtd.cs2as.compiler/src/org/eclipse/qvtd/cs2as/compiler/internal/etl/ocl2qvtiUtils.eol
+++ b/plugins/org.eclipse.qvtd.cs2as.compiler/src/org/eclipse/qvtd/cs2as/compiler/internal/etl/ocl2qvtiUtils.eol
@@ -1,8 +1,16 @@
-
+-- globalVars: traceabilityPropName
+--
+-- in order to use getTraceabilityProperty() helper operation a traceabilityPropName should have been defined
+--
+--
operation OCL!ShadowExp getExpressionContextType () : OCL!Class {
return self.getContainingExpressionInOCL().ownedContext.type;
}
+operation OCL!Operation getContextType () : OCL!Class {
+ return self.bodyExpression.ownedContext.type;
+}
+
operation OCL!OCLExpression getContainingExpressionInOCL() {
var container = self.eContainer();
while (not container.isKindOf(OCL!ExpressionInOCL)) {
@@ -32,6 +40,16 @@ operation OCL!ShadowPart getUpdateMappingName() : String {
return 'u' + ShadowExp.getShadowTypeName() + '_' + refProp.name;
}
+operation OCL!Operation getUpdateMappingName() : String {
+ var opType = self.bodyExpression.ownedContext.type;
+ return 'u' + opType.name + '_' + opType.getTraceabilityProperty().name;
+}
+
+operation OCL!Type getTraceabilityProperty() : OCL!Property {
+ // return self.ownedAttribute.selectOne(x | x.name = 'ast'); // FIXME can we parameterize the traceability property name ?
+ return self.asSequence().closure(x | x.superClasses).including(self).ownedProperties.flatten().selectOne(x | x.name = traceabilityPropName);
+}
+
// FIXME clash naming
// Remove if the traceMM-based transformation is discarded
operation OCL!ShadowExp getTraceElementName() : String {
diff --git a/plugins/org.eclipse.qvtd.cs2as.compiler/src/org/eclipse/qvtd/cs2as/compiler/internal/etl/ocl2qvtp_v2.etl b/plugins/org.eclipse.qvtd.cs2as.compiler/src/org/eclipse/qvtd/cs2as/compiler/internal/etl/ocl2qvtp_v2.etl
index 2bf55378a..2d301ae35 100644
--- a/plugins/org.eclipse.qvtd.cs2as.compiler/src/org/eclipse/qvtd/cs2as/compiler/internal/etl/ocl2qvtp_v2.etl
+++ b/plugins/org.eclipse.qvtd.cs2as.compiler/src/org/eclipse/qvtd/cs2as/compiler/internal/etl/ocl2qvtp_v2.etl
@@ -160,7 +160,7 @@ rule ShadowPart2UpdateMapping
var pAssignment = new QVTi!PropertyAssignment;
pAssignment.targetProperty = refProp;
- pAssignment.value = s.createPropertyAssignmentValue(leftVar);
+ pAssignment.value = s.ownedInit.createPropertyAssignmentValue(leftVar);
pAssignment.slotExpression = asTypeOpCallExp;
var guardPattern = new QVTi!GuardPattern;
@@ -173,77 +173,131 @@ rule ShadowPart2UpdateMapping
t.bottomPattern = bottomPattern;
}
-operation OCL!ShadowExp createCreationMapping_LeftDomain ( ) : QVTi!CoreDomain {
- var contextType = self.getExpressionContextType();
- var domain = new QVTi!CoreDomain;
- domain.typedModel = QVTi!TypedModel.all.selectOne(x | x.name= LEFT);
- domain.isCheckable = true;
+rule AstOpWithNoShadowExps2UpdateMapping
+ transform s : OCL!Operation
+ to t : QVTi!Mapping {
- var guardPattern = new QVTi!GuardPattern;
- var bottomPattern = new QVTi!BottomPattern;
+ guard {
+ // FIXME this is hazardy. Rework
+ // Ideally lazy transformation on the content of the OCL Model should avoid calling
+ // this rule on undesired elemenets (imported from other ocl files)
+ return s.closure(x|x.eContainer()).contains(LEFTCS_PACKAGE) and
+ s.isAstOp() and
+ not s.isInvalidOp() and
+ not s.getAllContents().exists(x | x.isKindOf(OCL!ShadowExp));
+ }
- var variable = new QVTi!Variable;
- variable.name = contextType.name.firstToLowerCase();
- variable.type = contextType;
+ t.name = s.getUpdateMappingName();
+
+ var rightDomain = s.createUpdateMapping_RightDomain();
+ var leftDomain = s.createUpdateMapping_LeftDomain();
+
+ t.domain.add(leftDomain);
+ t.domain.add(rightDomain);
+
+ // Bottom pattern expression : AssignmentExp
+ var leftVar = leftDomain.guardPattern.variable.first();
+
+ var varExpression = new QVTi!VariableExp;
+ varExpression.referredVariable = leftVar;
+ varExpression.type = varExpression.referredVariable.type;
+ var traceabilityProperty = varExpression.type.getTraceabilityProperty();
+
+ var pAssignment = new QVTi!PropertyAssignment;
+ pAssignment.targetProperty = traceabilityProperty;
+ pAssignment.value = s.bodyExpression.ownedBody.createPropertyAssignmentValue(leftVar);
+ pAssignment.slotExpression = varExpression;
+
+ var guardPattern = new QVTi!GuardPattern;
+ var bottomPattern = new QVTi!BottomPattern;
+ bottomPattern.assignment.add(pAssignment);
- guardPattern.variable.add(variable);
+ t.guardPattern = guardPattern;
+ t.bottomPattern = bottomPattern;
+}
+
+operation createDomain() : QVTi!CoreDomain {
+
+ var domain = new QVTi!CoreDomain;
+ var guardPattern = new QVTi!GuardPattern;
+ var bottomPattern = new QVTi!BottomPattern;
domain.guardPattern = guardPattern;
domain.bottomPattern = bottomPattern;
return domain;
}
-operation OCL!ShadowExp createCreationMapping_RightDomain () : QVTi!CoreDomain {
- var constructedType = self.type;
+operation OCL!Type create_LeftDomain() : QVTi!CoreDomain {
+
+ var domain = createDomain();
+ domain.typedModel = QVTi!TypedModel.all.selectOne(x | x.name= LEFT);
+ domain.isCheckable = true;
- var domain = new QVTi!CoreDomain;
+ var variable = new QVTi!Variable;
+ variable.name = self.name.firstToLowerCase();
+ variable.type = self;
+
+ domain.guardPattern.variable.add(variable);
+ return domain;
+}
+
+operation OCL!Type create_RightDomain() : QVTi!CoreDomain {
+
+ var domain = createDomain();
domain.typedModel = QVTi!TypedModel.all.selectOne(x | x.name= RIGHT);
domain.isEnforceable = true;
- var guardPattern = new QVTi!GuardPattern;
- var bottomPattern = new QVTi!BottomPattern;
-
var variable = new QVTi!RealizedVariable;
- variable.name = constructedType.name.firstToLowerCase();
- variable.type = constructedType;
-
- bottomPattern.realizedVariable.add(variable);
+ variable.name = self.name.firstToLowerCase();
+ variable.type = self;
- domain.guardPattern = guardPattern;
- domain.bottomPattern = bottomPattern;
+ domain.bottomPattern.realizedVariable.add(variable);
return domain;
}
-operation OCL!ShadowExp createUpdateMapping_LeftDomain ( ) : QVTi!CoreDomain {
- // It's exactly the same domain as we have for the creation mappings
- return self.createCreationMapping_LeftDomain();
+operation OCL!ShadowExp createCreationMapping_LeftDomain ( ) : QVTi!CoreDomain {
+ var contextType = self.getExpressionContextType();
+ return contextType.create_LeftDomain();
}
-operation OCL!ShadowExp createUpdateMapping_RightDomain () : QVTi!CoreDomain {
+operation OCL!ShadowExp createCreationMapping_RightDomain () : QVTi!CoreDomain {
var constructedType = self.type;
-
- var domain = new QVTi!CoreDomain;
+ return constructedType.create_RightDomain();
+}
+
+operation OCL!ShadowExp createUpdateMapping_LeftDomain ( ) : QVTi!CoreDomain {
+ var contextType = self.getExpressionContextType();
+ return contextType.create_LeftDomain();
+}
+
+operation OCL!ShadowExp createUpdateMapping_RightDomain () : QVTi!CoreDomain {
+ var domain = createDomain();
+ domain.typedModel = QVTi!TypedModel.all.selectOne(x | x.name= RIGHT);
+ domain.isEnforceable = true;
+ return domain;
+}
+
+operation OCL!Operation createUpdateMapping_LeftDomain ( ) : QVTi!CoreDomain {
+ var contextType = self.getContextType();
+ return contextType.create_LeftDomain();
+}
+
+
+operation OCL!Operation createUpdateMapping_RightDomain () : QVTi!CoreDomain {
+ var domain = createDomain();
domain.typedModel = QVTi!TypedModel.all.selectOne(x | x.name= RIGHT);
domain.isEnforceable = true;
-
- var guardPattern = new QVTi!GuardPattern;
- var bottomPattern = new QVTi!BottomPattern;
-
- domain.guardPattern = guardPattern;
- domain.bottomPattern = bottomPattern;
return domain;
}
-operation OCL!ShadowPart createPropertyAssignmentValue(leftVar : QVTi!Variable) : OCL!OCLExpression {
+operation OCL!OCLExpression createPropertyAssignmentValue(leftVar : QVTi!Variable) : OCL!OCLExpression {
-- FIXME what happens with synthetised types ????
- var initExp = self.ownedInit;
var eUtil = emfTool.getEcoreUtil();
- var newInitExp = eUtil.copy(initExp);
+ var newExp = eUtil.copy(self);
-- We need to replace the OCL refered "self" varible by the QVTi domain "leftVar" and ast op calls
- return newInitExp.doReplacements(leftVar);
-
+ return newExp.doReplacements(leftVar);
}
operation OCL!OCLExpression doReplacements(leftVar : QVTi!Variable) : OCL!OCLExpression {
@@ -334,39 +388,54 @@ operation OCL!Element isSelfVarExp() : Boolean {
}
operation OCL!Element isAstOpCallExp() : Boolean {
- return self.isKindOf(OCL!OperationCallExp) and self.referredOperation.name = 'ast';
+ return self.isKindOf(OCL!OperationCallExp) and self.referredOperation.isAstOp();
}
+operation OCL!Operation isAstOp() : Boolean {
+ return self.name = 'ast';
+}
+
+operation OCL!Operation isInvalidOp () : Boolean {
+ // return not self.bodyExpression.ownedContext.type.isIsAbstract;
+ return self.bodyExpression.isDefined() and
+ self.bodyExpression.ownedBody.type = getOclInvalid();
+}
operation OCL!ShadowPart getAstCalls() : Collection(OCL!OperationCallExpression) {
return self.ownedInit.getAllContents().including(self.ownedInit)
- .select(x | x.isKindOf(OCL!OperationCallExp) and x.referredOperation.name = 'ast' );
+ .select(x | x.isAstOpCallExp());
}
-operation OCL!Type getTraceabilityProperty() : OCL!Property {
- // return self.ownedAttribute.selectOne(x | x.name = 'ast'); // FIXME can we parameterize the traceability property name ?
- return self.asSequence().closure(x | x.superClasses).ownedProperties.flatten().selectOne(x | x.name = traceabilityPropName);
-}
+@cached
operation getOclAnyEqualsOp() : OCL!Operation {
return OclStdLib!Class.all.selectOne(x | x.name = 'OclAny').ownedOperations
.selectOne(x | x.name = '=');
}
+@cached
operation getOclMetaClass() : OCL!Class {
return OclStdLib!Class.all.selectOne(x | x.name = 'Class');
}
+@cached
+operation getOclInvalid() : OCL!Class {
+ return OclStdLib!Class.all.selectOne(x | x.name = 'OclInvalid');
+}
+
+@cached
operation getOclAnyOclAsTypeOp() : OCL!Operation {
return OclStdLib!Class.all.selectOne(x | x.name = 'OclAny').ownedOperations
.selectOne(x | x.name = 'oclAsType');
}
+@cached
operation getBooleanPrimitiveType() : OCL!PrimitiveType {
return OclStdLib!PrimitiveType.all.selectOne(x | x.name = 'Boolean');
}
+@cached
operation getBooleanNotOp() : OCL!Operation {
return OclStdLib!Class.all.selectOne(x | x.name = 'Boolean').ownedOperations
.selectOne(x | x.name = 'not');
diff --git a/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example1/Source2Target.ocl b/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example1/Source2Target.ocl
index ac4d46694..2cdd9057c 100644
--- a/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example1/Source2Target.ocl
+++ b/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example1/Source2Target.ocl
@@ -3,18 +3,19 @@ import 'TargetMM1.ecore'
import 'SourceDisambiguation.ocl'
import 'TargetLookup.ocl'
-
package source
+context SElement
+def : ast() : target::Visitable =
+ invalid -- To be overriden by subtypes
+
context SRoot
def : ast() : target::TRoot =
target::TRoot {
ownedA = ownedX.ast()
}
-context X
-def : ast() : target::A =
- invalid -- To be overriden
+
context X
def : ast() : target::A =
@@ -47,22 +48,46 @@ def : ast() : target::C =
ownsD = ownsZ.ast(),
name = name
}
-
-context Z
-def : ast() : target::D =
- invalid -- To be overriden
context Z
def : ast() : target::D =
- if toY.oclIsKindOf(source::Y1)
+ if toY.oclIsKindOf(Y1)
then target::D {
- toA = toY.oclAsType(source::Y1).ast().toA1,
- refsB = ast().lookupB(self)
+ toA = toY.oclAsType(Y1).ast().toA1,
+ refsB = if refers = null
+ then null
+ else refers.ast().oclAsType(target::B)
+ endif
}
else target::D {
- toA = toY.oclAsType(source::Y2).ast().toA2,
- refsC = ast().lookupC(self)
+ toA = toY.oclAsType(Y2).ast().toA2,
+ refsC = if refers = null
+ then null
+ else refers.ast().oclAsType(target::C)
+ endif
}
endif
+
+context PathNameCS
+def : ast() : target::NamedElement =
+ path->at(path->size()).ast()
+context PathElementCS
+def : ast() : target::NamedElement =
+ let path = pathName.path,
+ lookupContext = pathName.oclContainer().oclAsType(SElement).ast(),
+ first = path->at(1),
+ last = path->at(path->size())
+ in if self = first -- A lookup for the first path element, will be non local lookup
+ then if self = last
+ then lookupContext._lookupNamedElement(self, false)
+ else lookupContext._lookupNamespace(self, false)
+ endif
+ else -- else, we will perform a local lookup in the referred element of the previous PathElementCS
+ let prevPathElement = path->at(path->indexOf(self)-1)
+ in if self = last
+ then prevPathElement.ast()._lookupNamedElement(self, true)
+ else prevPathElement.ast()._lookupNamespace(self, true)
+ endif
+ endif
endpackage
diff --git a/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example1/Source2Target.qvtias b/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example1/Source2Target.qvtias
index 4d0c803f2..693328d38 100644
--- a/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example1/Source2Target.qvtias
+++ b/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example1/Source2Target.qvtias
@@ -915,16 +915,32 @@
</value>
</assignment>
<assignment xsi:type="qvtcb:VariableAssignment" targetVariable="#qV..Source2Target_qvtp_qvtias.uD_0_refsC.bottom._1">
- <value xsi:type="pivot:OperationCallExp" isRequired="false" type="pivot:Class TargetMM1.ecore.oclas#T.target.C" referredOperation="TargetLookup.ocl.oclas#o.target.D.lookupC..source.Z">
- <ownedSource xsi:type="pivot:OperationCallExp" type="pivot:Class TargetMM1.ecore.oclas#T.target.D" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.oclAsType..TT">
- <ownedSource xsi:type="pivot:PropertyCallExp" type="pivot:Class http://www.eclipse.org/emf/2002/Ecore.oclas#T.ecore.EObject"
- referredProperty="SourceMM1.ecore.oclas#p.source.SElement.ast">
+ <value xsi:type="pivot:IfExp" isRequired="false" type="pivot:Class TargetMM1.ecore.oclas#T.target.C">
+ <ownedCondition xsi:type="pivot:OperationCallExp" name="=" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#Boolean"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.%61%..ocl.OclSelf">
+ <ownedSource xsi:type="pivot:PropertyCallExp" isRequired="false" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathNameCS"
+ referredProperty="SourceMM1.ecore.oclas#p.source.Z.refers">
<ownedSource xsi:type="pivot:VariableExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.Z" isImplicit="true" referredVariable="#qV..Source2Target_qvtp_qvtias.uD_0_refsC.leftCS.guard.z"/>
</ownedSource>
+ <ownedArguments xsi:type="pivot:NullLiteralExp" isRequired="false" type="pivot:VoidType http://www.eclipse.org/ocl/2015/Library.oclas#T.ocl.OclVoid"/>
+ </ownedCondition>
+ <ownedElse xsi:type="pivot:OperationCallExp" type="pivot:Class TargetMM1.ecore.oclas#T.target.C" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.oclAsType..TT">
+ <ownedSource xsi:type="pivot:OperationCallExp" type="pivot:Class TargetMM1.ecore.oclas#T.target.NamedElement" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.oclAsType..TT">
+ <ownedSource xsi:type="pivot:PropertyCallExp" type="pivot:Class http://www.eclipse.org/emf/2002/Ecore.oclas#T.ecore.EObject"
+ referredProperty="SourceMM1.ecore.oclas#p.source.SElement.ast">
+ <ownedSource xsi:type="pivot:PropertyCallExp" isRequired="false" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathNameCS"
+ referredProperty="SourceMM1.ecore.oclas#p.source.Z.refers">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.Z" isImplicit="true"
+ referredVariable="#qV..Source2Target_qvtp_qvtias.uD_0_refsC.leftCS.guard.z"/>
+ </ownedSource>
+ </ownedSource>
+ <ownedArguments xsi:type="pivot:TypeExp" type="pivot:Class http://www.eclipse.org/ocl/2015/Library.oclas#T.ocl.Class"
+ referredType="pivot:Class TargetMM1.ecore.oclas#T.target.NamedElement"/>
+ </ownedSource>
<ownedArguments xsi:type="pivot:TypeExp" type="pivot:Class http://www.eclipse.org/ocl/2015/Library.oclas#T.ocl.Class"
- referredType="pivot:Class TargetMM1.ecore.oclas#T.target.D"/>
- </ownedSource>
- <ownedArguments xsi:type="pivot:VariableExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.Z" referredVariable="#qV..Source2Target_qvtp_qvtias.uD_0_refsC.leftCS.guard.z"/>
+ referredType="pivot:Class TargetMM1.ecore.oclas#T.target.C"/>
+ </ownedElse>
+ <ownedThen xsi:type="pivot:NullLiteralExp" isRequired="false" type="pivot:VoidType http://www.eclipse.org/ocl/2015/Library.oclas#T.ocl.OclVoid"/>
</value>
</assignment>
<assignment xsi:type="qvtcb:PropertyAssignment" isDefault="false" targetProperty="TargetMM1.ecore.oclas#p.target.D.refsC">
@@ -1028,16 +1044,32 @@
</value>
</assignment>
<assignment xsi:type="qvtcb:VariableAssignment" targetVariable="#qV..Source2Target_qvtp_qvtias.uD_1_refsB.bottom._1">
- <value xsi:type="pivot:OperationCallExp" isRequired="false" type="pivot:Class TargetMM1.ecore.oclas#T.target.B" referredOperation="TargetLookup.ocl.oclas#o.target.D.lookupB..source.Z">
- <ownedSource xsi:type="pivot:OperationCallExp" type="pivot:Class TargetMM1.ecore.oclas#T.target.D" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.oclAsType..TT">
- <ownedSource xsi:type="pivot:PropertyCallExp" type="pivot:Class http://www.eclipse.org/emf/2002/Ecore.oclas#T.ecore.EObject"
- referredProperty="SourceMM1.ecore.oclas#p.source.SElement.ast">
+ <value xsi:type="pivot:IfExp" isRequired="false" type="pivot:Class TargetMM1.ecore.oclas#T.target.B">
+ <ownedCondition xsi:type="pivot:OperationCallExp" name="=" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#Boolean"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.%61%..ocl.OclSelf">
+ <ownedSource xsi:type="pivot:PropertyCallExp" isRequired="false" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathNameCS"
+ referredProperty="SourceMM1.ecore.oclas#p.source.Z.refers">
<ownedSource xsi:type="pivot:VariableExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.Z" isImplicit="true" referredVariable="#qV..Source2Target_qvtp_qvtias.uD_1_refsB.leftCS.guard.z"/>
</ownedSource>
+ <ownedArguments xsi:type="pivot:NullLiteralExp" isRequired="false" type="pivot:VoidType http://www.eclipse.org/ocl/2015/Library.oclas#T.ocl.OclVoid"/>
+ </ownedCondition>
+ <ownedElse xsi:type="pivot:OperationCallExp" type="pivot:Class TargetMM1.ecore.oclas#T.target.B" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.oclAsType..TT">
+ <ownedSource xsi:type="pivot:OperationCallExp" type="pivot:Class TargetMM1.ecore.oclas#T.target.NamedElement" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.oclAsType..TT">
+ <ownedSource xsi:type="pivot:PropertyCallExp" type="pivot:Class http://www.eclipse.org/emf/2002/Ecore.oclas#T.ecore.EObject"
+ referredProperty="SourceMM1.ecore.oclas#p.source.SElement.ast">
+ <ownedSource xsi:type="pivot:PropertyCallExp" isRequired="false" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathNameCS"
+ referredProperty="SourceMM1.ecore.oclas#p.source.Z.refers">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.Z" isImplicit="true"
+ referredVariable="#qV..Source2Target_qvtp_qvtias.uD_1_refsB.leftCS.guard.z"/>
+ </ownedSource>
+ </ownedSource>
+ <ownedArguments xsi:type="pivot:TypeExp" type="pivot:Class http://www.eclipse.org/ocl/2015/Library.oclas#T.ocl.Class"
+ referredType="pivot:Class TargetMM1.ecore.oclas#T.target.NamedElement"/>
+ </ownedSource>
<ownedArguments xsi:type="pivot:TypeExp" type="pivot:Class http://www.eclipse.org/ocl/2015/Library.oclas#T.ocl.Class"
- referredType="pivot:Class TargetMM1.ecore.oclas#T.target.D"/>
- </ownedSource>
- <ownedArguments xsi:type="pivot:VariableExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.Z" referredVariable="#qV..Source2Target_qvtp_qvtias.uD_1_refsB.leftCS.guard.z"/>
+ referredType="pivot:Class TargetMM1.ecore.oclas#T.target.B"/>
+ </ownedElse>
+ <ownedThen xsi:type="pivot:NullLiteralExp" isRequired="false" type="pivot:VoidType http://www.eclipse.org/ocl/2015/Library.oclas#T.ocl.OclVoid"/>
</value>
</assignment>
<assignment xsi:type="qvtcb:PropertyAssignment" isDefault="false" targetProperty="TargetMM1.ecore.oclas#p.target.D.refsB">
@@ -1046,12 +1078,228 @@
</assignment>
</bottomPattern>
</rule>
+ <rule xsi:type="qvti:Mapping" xmi:id="m..Source2Target_qvtp_qvtias.uPathElementCS_ast" name="uPathElementCS_ast">
+ <domain xsi:type="qvtcb:CoreDomain" name="leftCS" isCheckable="true" isEnforceable="false" typedModel="#qT..Source2Target_qvtp_qvtias.leftCS">
+ <guardPattern>
+ <variable xmi:id="qV..Source2Target_qvtp_qvtias.uPathElementCS_ast.leftCS.guard.pathElementCS" name="pathElementCS" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS"/>
+ </guardPattern>
+ <bottomPattern/>
+ </domain>
+ <domain xsi:type="qvtcb:CoreDomain" name="rightAS" isCheckable="false" isEnforceable="true" typedModel="#qT..Source2Target_qvtp_qvtias.rightAS">
+ <guardPattern/>
+ <bottomPattern/>
+ </domain>
+ <guardPattern/>
+ <bottomPattern>
+ <variable xmi:id="qV..Source2Target_qvtp_qvtias.uPathElementCS_ast.bottom._0" name="_0" isRequired="false" type="pivot:Class TargetMM1.ecore.oclas#T.target.NamedElement"/>
+ <assignment xsi:type="qvtcb:VariableAssignment" targetVariable="#qV..Source2Target_qvtp_qvtias.uPathElementCS_ast.bottom._0">
+ <value xsi:type="pivot:LetExp" isRequired="false" type="pivot:Class TargetMM1.ecore.oclas#T.target.NamedElement">
+ <ownedIn xsi:type="pivot:LetExp" isRequired="false" type="pivot:Class TargetMM1.ecore.oclas#T.target.NamedElement">
+ <ownedIn xsi:type="pivot:LetExp" isRequired="false" type="pivot:Class TargetMM1.ecore.oclas#T.target.NamedElement">
+ <ownedIn xsi:type="pivot:LetExp" isRequired="false" type="pivot:Class TargetMM1.ecore.oclas#T.target.NamedElement">
+ <ownedIn xsi:type="pivot:IfExp" isRequired="false" type="pivot:Class TargetMM1.ecore.oclas#T.target.NamedElement">
+ <ownedCondition xsi:type="pivot:OperationCallExp" name="=" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#Boolean"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.%61%..ocl.OclSelf">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS" referredVariable="#qV..Source2Target_qvtp_qvtias.uPathElementCS_ast.leftCS.guard.pathElementCS"/>
+ <ownedArguments xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS"
+ referredVariable="#//@ownedPackages.0/@ownedClasses.0/@rule.23/@bottomPattern/@assignment.0/@value/@ownedIn/@ownedIn/@ownedVariable"/>
+ </ownedCondition>
+ <ownedElse xsi:type="pivot:LetExp" isRequired="false" type="pivot:Class TargetMM1.ecore.oclas#T.target.NamedElement">
+ <ownedIn xsi:type="pivot:IfExp" isRequired="false" type="pivot:Class TargetMM1.ecore.oclas#T.target.NamedElement">
+ <ownedCondition xsi:type="pivot:OperationCallExp" name="=" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#Boolean"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.%61%..ocl.OclSelf">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS"
+ referredVariable="#qV..Source2Target_qvtp_qvtias.uPathElementCS_ast.leftCS.guard.pathElementCS"/>
+ <ownedArguments xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS"
+ referredVariable="#//@ownedPackages.0/@ownedClasses.0/@rule.23/@bottomPattern/@assignment.0/@value/@ownedIn/@ownedIn/@ownedIn/@ownedVariable"/>
+ </ownedCondition>
+ <ownedElse xsi:type="pivot:OperationCallExp" isRequired="false" type="pivot:Class TargetMM1.ecore.oclas#T.target.Namespace"
+ referredOperation="TargetLookup.ocl.oclas#o.target.Visitable._lookupNamespace..source.PathElementCS..ocl.Boolean">
+ <ownedSource xsi:type="pivot:OperationCallExp" type="pivot:Class TargetMM1.ecore.oclas#T.target.NamedElement"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.oclAsType..TT">
+ <ownedSource xsi:type="pivot:PropertyCallExp" type="pivot:Class http://www.eclipse.org/emf/2002/Ecore.oclas#T.ecore.EObject"
+ referredProperty="SourceMM1.ecore.oclas#p.source.SElement.ast">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS"
+ referredVariable="#//@ownedPackages.0/@ownedClasses.0/@rule.23/@bottomPattern/@assignment.0/@value/@ownedIn/@ownedIn/@ownedIn/@ownedIn/@ownedElse/@ownedVariable"/>
+ </ownedSource>
+ <ownedArguments xsi:type="pivot:TypeExp" type="pivot:Class http://www.eclipse.org/ocl/2015/Library.oclas#T.ocl.Class"
+ referredType="pivot:Class TargetMM1.ecore.oclas#T.target.NamedElement"/>
+ </ownedSource>
+ <ownedArguments xsi:type="pivot:VariableExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS"
+ referredVariable="#qV..Source2Target_qvtp_qvtias.uPathElementCS_ast.leftCS.guard.pathElementCS"/>
+ <ownedArguments xsi:type="pivot:BooleanLiteralExp" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#Boolean"
+ booleanSymbol="true"/>
+ </ownedElse>
+ <ownedThen xsi:type="pivot:OperationCallExp" isRequired="false" type="pivot:Class TargetMM1.ecore.oclas#T.target.NamedElement"
+ referredOperation="TargetLookup.ocl.oclas#o.target.Visitable._lookupNamedElement..source.PathElementCS..ocl.Boolean">
+ <ownedSource xsi:type="pivot:OperationCallExp" type="pivot:Class TargetMM1.ecore.oclas#T.target.NamedElement"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.oclAsType..TT">
+ <ownedSource xsi:type="pivot:PropertyCallExp" type="pivot:Class http://www.eclipse.org/emf/2002/Ecore.oclas#T.ecore.EObject"
+ referredProperty="SourceMM1.ecore.oclas#p.source.SElement.ast">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS"
+ referredVariable="#//@ownedPackages.0/@ownedClasses.0/@rule.23/@bottomPattern/@assignment.0/@value/@ownedIn/@ownedIn/@ownedIn/@ownedIn/@ownedElse/@ownedVariable"/>
+ </ownedSource>
+ <ownedArguments xsi:type="pivot:TypeExp" type="pivot:Class http://www.eclipse.org/ocl/2015/Library.oclas#T.ocl.Class"
+ referredType="pivot:Class TargetMM1.ecore.oclas#T.target.NamedElement"/>
+ </ownedSource>
+ <ownedArguments xsi:type="pivot:VariableExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS"
+ referredVariable="#qV..Source2Target_qvtp_qvtias.uPathElementCS_ast.leftCS.guard.pathElementCS"/>
+ <ownedArguments xsi:type="pivot:BooleanLiteralExp" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#Boolean"
+ booleanSymbol="true"/>
+ </ownedThen>
+ </ownedIn>
+ <ownedVariable name="prevPathElement" isRequired="false" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS">
+ <ownedInit xsi:type="pivot:OperationCallExp" isRequired="false" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OrderedCollection.at..ocl.Integer">
+ <ownedSource xsi:type="pivot:VariableExp" type="#//@ownedPackages.1/@ownedClasses.7" referredVariable="#//@ownedPackages.0/@ownedClasses.0/@rule.23/@bottomPattern/@assignment.0/@value/@ownedVariable"/>
+ <ownedArguments xsi:type="pivot:OperationCallExp" name="-" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#Integer"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Integer.%45%..ocl.OclSelf">
+ <ownedSource xsi:type="pivot:OperationCallExp" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#Integer"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OrderedCollection.indexOf..ocl.OclAny">
+ <ownedSource xsi:type="pivot:VariableExp" type="#//@ownedPackages.1/@ownedClasses.7" referredVariable="#//@ownedPackages.0/@ownedClasses.0/@rule.23/@bottomPattern/@assignment.0/@value/@ownedVariable"/>
+ <ownedArguments xsi:type="pivot:VariableExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS"
+ referredVariable="#qV..Source2Target_qvtp_qvtias.uPathElementCS_ast.leftCS.guard.pathElementCS"/>
+ </ownedSource>
+ <ownedArguments xsi:type="pivot:IntegerLiteralExp" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#Integer"
+ integerSymbol="1"/>
+ </ownedArguments>
+ </ownedInit>
+ </ownedVariable>
+ </ownedElse>
+ <ownedThen xsi:type="pivot:IfExp" isRequired="false" type="pivot:Class TargetMM1.ecore.oclas#T.target.NamedElement">
+ <ownedCondition xsi:type="pivot:OperationCallExp" name="=" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#Boolean"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.%61%..ocl.OclSelf">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS" referredVariable="#qV..Source2Target_qvtp_qvtias.uPathElementCS_ast.leftCS.guard.pathElementCS"/>
+ <ownedArguments xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS"
+ referredVariable="#//@ownedPackages.0/@ownedClasses.0/@rule.23/@bottomPattern/@assignment.0/@value/@ownedIn/@ownedIn/@ownedIn/@ownedVariable"/>
+ </ownedCondition>
+ <ownedElse xsi:type="pivot:OperationCallExp" isRequired="false" type="pivot:Class TargetMM1.ecore.oclas#T.target.Namespace"
+ referredOperation="TargetLookup.ocl.oclas#o.target.Visitable._lookupNamespace..source.PathElementCS..ocl.Boolean">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class TargetMM1.ecore.oclas#T.target.Visitable"
+ referredVariable="#//@ownedPackages.0/@ownedClasses.0/@rule.23/@bottomPattern/@assignment.0/@value/@ownedIn/@ownedVariable"/>
+ <ownedArguments xsi:type="pivot:VariableExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS"
+ referredVariable="#qV..Source2Target_qvtp_qvtias.uPathElementCS_ast.leftCS.guard.pathElementCS"/>
+ <ownedArguments xsi:type="pivot:BooleanLiteralExp" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#Boolean"
+ booleanSymbol="false"/>
+ </ownedElse>
+ <ownedThen xsi:type="pivot:OperationCallExp" isRequired="false" type="pivot:Class TargetMM1.ecore.oclas#T.target.NamedElement"
+ referredOperation="TargetLookup.ocl.oclas#o.target.Visitable._lookupNamedElement..source.PathElementCS..ocl.Boolean">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class TargetMM1.ecore.oclas#T.target.Visitable"
+ referredVariable="#//@ownedPackages.0/@ownedClasses.0/@rule.23/@bottomPattern/@assignment.0/@value/@ownedIn/@ownedVariable"/>
+ <ownedArguments xsi:type="pivot:VariableExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS"
+ referredVariable="#qV..Source2Target_qvtp_qvtias.uPathElementCS_ast.leftCS.guard.pathElementCS"/>
+ <ownedArguments xsi:type="pivot:BooleanLiteralExp" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#Boolean"
+ booleanSymbol="false"/>
+ </ownedThen>
+ </ownedThen>
+ </ownedIn>
+ <ownedVariable name="last" isRequired="false" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS">
+ <ownedInit xsi:type="pivot:OperationCallExp" isRequired="false" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OrderedCollection.at..ocl.Integer">
+ <ownedSource xsi:type="pivot:VariableExp" type="#//@ownedPackages.1/@ownedClasses.7" referredVariable="#//@ownedPackages.0/@ownedClasses.0/@rule.23/@bottomPattern/@assignment.0/@value/@ownedVariable"/>
+ <ownedArguments xsi:type="pivot:OperationCallExp" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#Integer"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Collection.size">
+ <ownedSource xsi:type="pivot:VariableExp" type="#//@ownedPackages.1/@ownedClasses.7" referredVariable="#//@ownedPackages.0/@ownedClasses.0/@rule.23/@bottomPattern/@assignment.0/@value/@ownedVariable"/>
+ </ownedArguments>
+ </ownedInit>
+ </ownedVariable>
+ </ownedIn>
+ <ownedVariable name="first" isRequired="false" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS">
+ <ownedInit xsi:type="pivot:OperationCallExp" isRequired="false" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OrderedCollection.at..ocl.Integer">
+ <ownedSource xsi:type="pivot:VariableExp" type="#//@ownedPackages.1/@ownedClasses.7" referredVariable="#//@ownedPackages.0/@ownedClasses.0/@rule.23/@bottomPattern/@assignment.0/@value/@ownedVariable"/>
+ <ownedArguments xsi:type="pivot:IntegerLiteralExp" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#Integer"
+ integerSymbol="1"/>
+ </ownedInit>
+ </ownedVariable>
+ </ownedIn>
+ <ownedVariable name="lookupContext" isRequired="false" type="pivot:Class TargetMM1.ecore.oclas#T.target.Visitable">
+ <ownedInit xsi:type="pivot:OperationCallExp" type="pivot:Class TargetMM1.ecore.oclas#T.target.Visitable" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.oclAsType..TT">
+ <ownedSource xsi:type="pivot:PropertyCallExp" type="pivot:Class http://www.eclipse.org/emf/2002/Ecore.oclas#T.ecore.EObject"
+ referredProperty="SourceMM1.ecore.oclas#p.source.SElement.ast">
+ <ownedSource xsi:type="pivot:OperationCallExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.SElement" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.oclAsType..TT">
+ <ownedSource xsi:type="pivot:OperationCallExp" isRequired="false" type="pivot:Class http://www.eclipse.org/ocl/2015/Library.oclas#T.ocl.OclElement"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclElement.oclContainer">
+ <ownedSource xsi:type="pivot:PropertyCallExp" isRequired="false" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathNameCS"
+ referredProperty="SourceMM1.ecore.oclas#p.source.PathElementCS.pathName">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS"
+ isImplicit="true" referredVariable="#qV..Source2Target_qvtp_qvtias.uPathElementCS_ast.leftCS.guard.pathElementCS"/>
+ </ownedSource>
+ </ownedSource>
+ <ownedArguments xsi:type="pivot:TypeExp" type="pivot:Class http://www.eclipse.org/ocl/2015/Library.oclas#T.ocl.Class"
+ referredType="pivot:Class SourceMM1.ecore.oclas#T.source.SElement"/>
+ </ownedSource>
+ </ownedSource>
+ <ownedArguments xsi:type="pivot:TypeExp" type="pivot:Class http://www.eclipse.org/ocl/2015/Library.oclas#T.ocl.Class"
+ referredType="pivot:Class TargetMM1.ecore.oclas#T.target.Visitable"/>
+ </ownedInit>
+ </ownedVariable>
+ </ownedIn>
+ <ownedVariable name="path" type="#//@ownedPackages.1/@ownedClasses.7">
+ <ownedInit xsi:type="pivot:PropertyCallExp" type="#//@ownedPackages.1/@ownedClasses.7" referredProperty="SourceMM1.ecore.oclas#p.source.PathNameCS.path">
+ <ownedSource xsi:type="pivot:PropertyCallExp" isRequired="false" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathNameCS"
+ referredProperty="SourceMM1.ecore.oclas#p.source.PathElementCS.pathName">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS" isImplicit="true"
+ referredVariable="#qV..Source2Target_qvtp_qvtias.uPathElementCS_ast.leftCS.guard.pathElementCS"/>
+ </ownedSource>
+ </ownedInit>
+ </ownedVariable>
+ </value>
+ </assignment>
+ <assignment xsi:type="qvtcb:PropertyAssignment" isDefault="false" targetProperty="SourceMM1.ecore.oclas#p.source.SElement.ast">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class TargetMM1.ecore.oclas#T.target.NamedElement" referredVariable="#qV..Source2Target_qvtp_qvtias.uPathElementCS_ast.bottom._0"/>
+ <slotExpression xsi:type="pivot:VariableExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS" referredVariable="#qV..Source2Target_qvtp_qvtias.uPathElementCS_ast.leftCS.guard.pathElementCS"/>
+ </assignment>
+ </bottomPattern>
+ </rule>
+ <rule xsi:type="qvti:Mapping" xmi:id="m..Source2Target_qvtp_qvtias.uPathNameCS_ast" name="uPathNameCS_ast">
+ <domain xsi:type="qvtcb:CoreDomain" name="leftCS" isCheckable="true" isEnforceable="false" typedModel="#qT..Source2Target_qvtp_qvtias.leftCS">
+ <guardPattern>
+ <variable xmi:id="qV..Source2Target_qvtp_qvtias.uPathNameCS_ast.leftCS.guard.pathNameCS" name="pathNameCS" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathNameCS"/>
+ </guardPattern>
+ <bottomPattern/>
+ </domain>
+ <domain xsi:type="qvtcb:CoreDomain" name="rightAS" isCheckable="false" isEnforceable="true" typedModel="#qT..Source2Target_qvtp_qvtias.rightAS">
+ <guardPattern/>
+ <bottomPattern/>
+ </domain>
+ <guardPattern/>
+ <bottomPattern>
+ <variable xmi:id="qV..Source2Target_qvtp_qvtias.uPathNameCS_ast.bottom._0" name="_0" type="pivot:Class TargetMM1.ecore.oclas#T.target.NamedElement"/>
+ <assignment xsi:type="qvtcb:VariableAssignment" targetVariable="#qV..Source2Target_qvtp_qvtias.uPathNameCS_ast.bottom._0">
+ <value xsi:type="pivot:OperationCallExp" type="pivot:Class TargetMM1.ecore.oclas#T.target.NamedElement" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.oclAsType..TT">
+ <ownedSource xsi:type="pivot:PropertyCallExp" type="pivot:Class http://www.eclipse.org/emf/2002/Ecore.oclas#T.ecore.EObject"
+ referredProperty="SourceMM1.ecore.oclas#p.source.SElement.ast">
+ <ownedSource xsi:type="pivot:OperationCallExp" isRequired="false" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OrderedCollection.at..ocl.Integer">
+ <ownedSource xsi:type="pivot:PropertyCallExp" type="#//@ownedPackages.1/@ownedClasses.7" referredProperty="SourceMM1.ecore.oclas#p.source.PathNameCS.path">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathNameCS" isImplicit="true"
+ referredVariable="#qV..Source2Target_qvtp_qvtias.uPathNameCS_ast.leftCS.guard.pathNameCS"/>
+ </ownedSource>
+ <ownedArguments xsi:type="pivot:OperationCallExp" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#Integer"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Collection.size">
+ <ownedSource xsi:type="pivot:PropertyCallExp" type="#//@ownedPackages.1/@ownedClasses.7" referredProperty="SourceMM1.ecore.oclas#p.source.PathNameCS.path">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathNameCS" isImplicit="true"
+ referredVariable="#qV..Source2Target_qvtp_qvtias.uPathNameCS_ast.leftCS.guard.pathNameCS"/>
+ </ownedSource>
+ </ownedArguments>
+ </ownedSource>
+ </ownedSource>
+ <ownedArguments xsi:type="pivot:TypeExp" type="pivot:Class http://www.eclipse.org/ocl/2015/Library.oclas#T.ocl.Class" referredType="pivot:Class TargetMM1.ecore.oclas#T.target.NamedElement"/>
+ </value>
+ </assignment>
+ <assignment xsi:type="qvtcb:PropertyAssignment" isDefault="false" targetProperty="SourceMM1.ecore.oclas#p.source.SElement.ast">
+ <value xsi:type="pivot:VariableExp" type="pivot:Class TargetMM1.ecore.oclas#T.target.NamedElement" referredVariable="#qV..Source2Target_qvtp_qvtias.uPathNameCS_ast.bottom._0"/>
+ <slotExpression xsi:type="pivot:VariableExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathNameCS" referredVariable="#qV..Source2Target_qvtp_qvtias.uPathNameCS_ast.leftCS.guard.pathNameCS"/>
+ </assignment>
+ </bottomPattern>
+ </rule>
<rule xsi:type="qvti:Mapping" xmi:id="m..Source2Target_qvtp_qvtias.__root__" name="__root__">
<guardPattern/>
<bottomPattern/>
<mappingStatement xsi:type="qvti:MappingSequence">
<mappingStatements xsi:type="qvti:MappingLoop">
- <ownedSource xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.7" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclElement.allInstances">
+ <ownedSource xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.8" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclElement.allInstances">
<ownedSource xsi:type="pivot:TypeExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.SRoot" referredType="pivot:Class SourceMM1.ecore.oclas#T.source.SRoot"/>
</ownedSource>
<ownedBody xsi:type="qvti:MappingSequence">
@@ -1064,7 +1312,7 @@
<ownedIterators xmi:id="i..Source2Target_qvtp_qvtias.__root__.0.0.sRoot" name="sRoot" type="pivot:Class SourceMM1.ecore.oclas#T.source.SRoot"/>
</mappingStatements>
<mappingStatements xsi:type="qvti:MappingLoop">
- <ownedSource xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.8" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclElement.allInstances">
+ <ownedSource xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.9" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclElement.allInstances">
<ownedSource xsi:type="pivot:TypeExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.X" referredType="pivot:Class SourceMM1.ecore.oclas#T.source.X"/>
</ownedSource>
<ownedBody xsi:type="qvti:MappingSequence">
@@ -1077,7 +1325,7 @@
<ownedIterators xmi:id="i..Source2Target_qvtp_qvtias.__root__.0.1.x" name="x" type="pivot:Class SourceMM1.ecore.oclas#T.source.X"/>
</mappingStatements>
<mappingStatements xsi:type="qvti:MappingLoop">
- <ownedSource xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.8" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclElement.allInstances">
+ <ownedSource xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.9" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclElement.allInstances">
<ownedSource xsi:type="pivot:TypeExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.X" referredType="pivot:Class SourceMM1.ecore.oclas#T.source.X"/>
</ownedSource>
<ownedBody xsi:type="qvti:MappingSequence">
@@ -1090,7 +1338,7 @@
<ownedIterators xmi:id="i..Source2Target_qvtp_qvtias.__root__.0.2.x" name="x" type="pivot:Class SourceMM1.ecore.oclas#T.source.X"/>
</mappingStatements>
<mappingStatements xsi:type="qvti:MappingLoop">
- <ownedSource xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.8" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclElement.allInstances">
+ <ownedSource xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.9" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclElement.allInstances">
<ownedSource xsi:type="pivot:TypeExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.X" referredType="pivot:Class SourceMM1.ecore.oclas#T.source.X"/>
</ownedSource>
<ownedBody xsi:type="qvti:MappingSequence">
@@ -1103,7 +1351,7 @@
<ownedIterators xmi:id="i..Source2Target_qvtp_qvtias.__root__.0.3.x" name="x" type="pivot:Class SourceMM1.ecore.oclas#T.source.X"/>
</mappingStatements>
<mappingStatements xsi:type="qvti:MappingLoop">
- <ownedSource xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.7" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclElement.allInstances">
+ <ownedSource xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.8" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclElement.allInstances">
<ownedSource xsi:type="pivot:TypeExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.SRoot" referredType="pivot:Class SourceMM1.ecore.oclas#T.source.SRoot"/>
</ownedSource>
<ownedBody xsi:type="qvti:MappingSequence">
@@ -1116,7 +1364,7 @@
<ownedIterators xmi:id="i..Source2Target_qvtp_qvtias.__root__.0.4.sRoot" name="sRoot" type="pivot:Class SourceMM1.ecore.oclas#T.source.SRoot"/>
</mappingStatements>
<mappingStatements xsi:type="qvti:MappingLoop">
- <ownedSource xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.9" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclElement.allInstances">
+ <ownedSource xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.10" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclElement.allInstances">
<ownedSource xsi:type="pivot:TypeExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.Y1" referredType="pivot:Class SourceMM1.ecore.oclas#T.source.Y1"/>
</ownedSource>
<ownedBody xsi:type="qvti:MappingSequence">
@@ -1129,7 +1377,7 @@
<ownedIterators xmi:id="i..Source2Target_qvtp_qvtias.__root__.0.5.y1" name="y1" type="pivot:Class SourceMM1.ecore.oclas#T.source.Y1"/>
</mappingStatements>
<mappingStatements xsi:type="qvti:MappingLoop">
- <ownedSource xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.10" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclElement.allInstances">
+ <ownedSource xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.11" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclElement.allInstances">
<ownedSource xsi:type="pivot:TypeExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.Y2" referredType="pivot:Class SourceMM1.ecore.oclas#T.source.Y2"/>
</ownedSource>
<ownedBody xsi:type="qvti:MappingSequence">
@@ -1142,7 +1390,7 @@
<ownedIterators xmi:id="i..Source2Target_qvtp_qvtias.__root__.0.6.y2" name="y2" type="pivot:Class SourceMM1.ecore.oclas#T.source.Y2"/>
</mappingStatements>
<mappingStatements xsi:type="qvti:MappingLoop">
- <ownedSource xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.11" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclElement.allInstances">
+ <ownedSource xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.12" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclElement.allInstances">
<ownedSource xsi:type="pivot:TypeExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.Z" referredType="pivot:Class SourceMM1.ecore.oclas#T.source.Z"/>
</ownedSource>
<ownedBody xsi:type="qvti:MappingSequence">
@@ -1155,7 +1403,7 @@
<ownedIterators xmi:id="i..Source2Target_qvtp_qvtias.__root__.0.7.z" name="z" type="pivot:Class SourceMM1.ecore.oclas#T.source.Z"/>
</mappingStatements>
<mappingStatements xsi:type="qvti:MappingLoop">
- <ownedSource xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.11" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclElement.allInstances">
+ <ownedSource xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.12" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclElement.allInstances">
<ownedSource xsi:type="pivot:TypeExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.Z" referredType="pivot:Class SourceMM1.ecore.oclas#T.source.Z"/>
</ownedSource>
<ownedBody xsi:type="qvti:MappingSequence">
@@ -1168,7 +1416,7 @@
<ownedIterators xmi:id="i..Source2Target_qvtp_qvtias.__root__.0.8.z" name="z" type="pivot:Class SourceMM1.ecore.oclas#T.source.Z"/>
</mappingStatements>
<mappingStatements xsi:type="qvti:MappingLoop">
- <ownedSource xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.8" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclElement.allInstances">
+ <ownedSource xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.9" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclElement.allInstances">
<ownedSource xsi:type="pivot:TypeExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.X" referredType="pivot:Class SourceMM1.ecore.oclas#T.source.X"/>
</ownedSource>
<ownedBody xsi:type="qvti:MappingSequence">
@@ -1181,7 +1429,7 @@
<ownedIterators xmi:id="i..Source2Target_qvtp_qvtias.__root__.0.9.x" name="x" type="pivot:Class SourceMM1.ecore.oclas#T.source.X"/>
</mappingStatements>
<mappingStatements xsi:type="qvti:MappingLoop">
- <ownedSource xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.8" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclElement.allInstances">
+ <ownedSource xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.9" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclElement.allInstances">
<ownedSource xsi:type="pivot:TypeExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.X" referredType="pivot:Class SourceMM1.ecore.oclas#T.source.X"/>
</ownedSource>
<ownedBody xsi:type="qvti:MappingSequence">
@@ -1194,7 +1442,7 @@
<ownedIterators xmi:id="i..Source2Target_qvtp_qvtias.__root__.0.10.x" name="x" type="pivot:Class SourceMM1.ecore.oclas#T.source.X"/>
</mappingStatements>
<mappingStatements xsi:type="qvti:MappingLoop">
- <ownedSource xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.11" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclElement.allInstances">
+ <ownedSource xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.12" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclElement.allInstances">
<ownedSource xsi:type="pivot:TypeExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.Z" referredType="pivot:Class SourceMM1.ecore.oclas#T.source.Z"/>
</ownedSource>
<ownedBody xsi:type="qvti:MappingSequence">
@@ -1207,7 +1455,7 @@
<ownedIterators xmi:id="i..Source2Target_qvtp_qvtias.__root__.0.11.z" name="z" type="pivot:Class SourceMM1.ecore.oclas#T.source.Z"/>
</mappingStatements>
<mappingStatements xsi:type="qvti:MappingLoop">
- <ownedSource xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.8" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclElement.allInstances">
+ <ownedSource xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.9" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclElement.allInstances">
<ownedSource xsi:type="pivot:TypeExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.X" referredType="pivot:Class SourceMM1.ecore.oclas#T.source.X"/>
</ownedSource>
<ownedBody xsi:type="qvti:MappingSequence">
@@ -1220,7 +1468,7 @@
<ownedIterators xmi:id="i..Source2Target_qvtp_qvtias.__root__.0.12.x" name="x" type="pivot:Class SourceMM1.ecore.oclas#T.source.X"/>
</mappingStatements>
<mappingStatements xsi:type="qvti:MappingLoop">
- <ownedSource xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.8" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclElement.allInstances">
+ <ownedSource xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.9" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclElement.allInstances">
<ownedSource xsi:type="pivot:TypeExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.X" referredType="pivot:Class SourceMM1.ecore.oclas#T.source.X"/>
</ownedSource>
<ownedBody xsi:type="qvti:MappingSequence">
@@ -1233,7 +1481,7 @@
<ownedIterators xmi:id="i..Source2Target_qvtp_qvtias.__root__.0.13.x" name="x" type="pivot:Class SourceMM1.ecore.oclas#T.source.X"/>
</mappingStatements>
<mappingStatements xsi:type="qvti:MappingLoop">
- <ownedSource xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.8" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclElement.allInstances">
+ <ownedSource xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.9" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclElement.allInstances">
<ownedSource xsi:type="pivot:TypeExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.X" referredType="pivot:Class SourceMM1.ecore.oclas#T.source.X"/>
</ownedSource>
<ownedBody xsi:type="qvti:MappingSequence">
@@ -1246,7 +1494,7 @@
<ownedIterators xmi:id="i..Source2Target_qvtp_qvtias.__root__.0.14.x" name="x" type="pivot:Class SourceMM1.ecore.oclas#T.source.X"/>
</mappingStatements>
<mappingStatements xsi:type="qvti:MappingLoop">
- <ownedSource xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.8" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclElement.allInstances">
+ <ownedSource xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.9" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclElement.allInstances">
<ownedSource xsi:type="pivot:TypeExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.X" referredType="pivot:Class SourceMM1.ecore.oclas#T.source.X"/>
</ownedSource>
<ownedBody xsi:type="qvti:MappingSequence">
@@ -1259,7 +1507,7 @@
<ownedIterators xmi:id="i..Source2Target_qvtp_qvtias.__root__.0.15.x" name="x" type="pivot:Class SourceMM1.ecore.oclas#T.source.X"/>
</mappingStatements>
<mappingStatements xsi:type="qvti:MappingLoop">
- <ownedSource xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.9" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclElement.allInstances">
+ <ownedSource xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.10" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclElement.allInstances">
<ownedSource xsi:type="pivot:TypeExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.Y1" referredType="pivot:Class SourceMM1.ecore.oclas#T.source.Y1"/>
</ownedSource>
<ownedBody xsi:type="qvti:MappingSequence">
@@ -1272,7 +1520,7 @@
<ownedIterators xmi:id="i..Source2Target_qvtp_qvtias.__root__.0.16.y1" name="y1" type="pivot:Class SourceMM1.ecore.oclas#T.source.Y1"/>
</mappingStatements>
<mappingStatements xsi:type="qvti:MappingLoop">
- <ownedSource xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.9" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclElement.allInstances">
+ <ownedSource xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.10" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclElement.allInstances">
<ownedSource xsi:type="pivot:TypeExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.Y1" referredType="pivot:Class SourceMM1.ecore.oclas#T.source.Y1"/>
</ownedSource>
<ownedBody xsi:type="qvti:MappingSequence">
@@ -1285,7 +1533,7 @@
<ownedIterators xmi:id="i..Source2Target_qvtp_qvtias.__root__.0.17.y1" name="y1" type="pivot:Class SourceMM1.ecore.oclas#T.source.Y1"/>
</mappingStatements>
<mappingStatements xsi:type="qvti:MappingLoop">
- <ownedSource xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.10" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclElement.allInstances">
+ <ownedSource xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.11" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclElement.allInstances">
<ownedSource xsi:type="pivot:TypeExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.Y2" referredType="pivot:Class SourceMM1.ecore.oclas#T.source.Y2"/>
</ownedSource>
<ownedBody xsi:type="qvti:MappingSequence">
@@ -1298,7 +1546,7 @@
<ownedIterators xmi:id="i..Source2Target_qvtp_qvtias.__root__.0.18.y2" name="y2" type="pivot:Class SourceMM1.ecore.oclas#T.source.Y2"/>
</mappingStatements>
<mappingStatements xsi:type="qvti:MappingLoop">
- <ownedSource xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.10" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclElement.allInstances">
+ <ownedSource xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.11" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclElement.allInstances">
<ownedSource xsi:type="pivot:TypeExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.Y2" referredType="pivot:Class SourceMM1.ecore.oclas#T.source.Y2"/>
</ownedSource>
<ownedBody xsi:type="qvti:MappingSequence">
@@ -1311,43 +1559,69 @@
<ownedIterators xmi:id="i..Source2Target_qvtp_qvtias.__root__.0.19.y2" name="y2" type="pivot:Class SourceMM1.ecore.oclas#T.source.Y2"/>
</mappingStatements>
<mappingStatements xsi:type="qvti:MappingLoop">
- <ownedSource xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.11" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclElement.allInstances">
+ <ownedSource xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.13" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclElement.allInstances">
+ <ownedSource xsi:type="pivot:TypeExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS" referredType="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS"/>
+ </ownedSource>
+ <ownedBody xsi:type="qvti:MappingSequence">
+ <mappingStatements xsi:type="qvti:MappingCall" referredMapping="#m..Source2Target_qvtp_qvtias.uPathElementCS_ast">
+ <binding boundVariable="#qV..Source2Target_qvtp_qvtias.uPathElementCS_ast.leftCS.guard.pathElementCS">
+ <value xsi:type="pivot:VariableExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS" referredVariable="#i..Source2Target_qvtp_qvtias.__root__.0.20.pathElementCS"/>
+ </binding>
+ </mappingStatements>
+ </ownedBody>
+ <ownedIterators xmi:id="i..Source2Target_qvtp_qvtias.__root__.0.20.pathElementCS" name="pathElementCS" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS"/>
+ </mappingStatements>
+ <mappingStatements xsi:type="qvti:MappingLoop">
+ <ownedSource xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.14" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclElement.allInstances">
+ <ownedSource xsi:type="pivot:TypeExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathNameCS" referredType="pivot:Class SourceMM1.ecore.oclas#T.source.PathNameCS"/>
+ </ownedSource>
+ <ownedBody xsi:type="qvti:MappingSequence">
+ <mappingStatements xsi:type="qvti:MappingCall" referredMapping="#m..Source2Target_qvtp_qvtias.uPathNameCS_ast">
+ <binding boundVariable="#qV..Source2Target_qvtp_qvtias.uPathNameCS_ast.leftCS.guard.pathNameCS">
+ <value xsi:type="pivot:VariableExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathNameCS" referredVariable="#i..Source2Target_qvtp_qvtias.__root__.0.21.pathNameCS"/>
+ </binding>
+ </mappingStatements>
+ </ownedBody>
+ <ownedIterators xmi:id="i..Source2Target_qvtp_qvtias.__root__.0.21.pathNameCS" name="pathNameCS" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathNameCS"/>
+ </mappingStatements>
+ <mappingStatements xsi:type="qvti:MappingLoop">
+ <ownedSource xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.12" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclElement.allInstances">
<ownedSource xsi:type="pivot:TypeExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.Z" referredType="pivot:Class SourceMM1.ecore.oclas#T.source.Z"/>
</ownedSource>
<ownedBody xsi:type="qvti:MappingSequence">
<mappingStatements xsi:type="qvti:MappingCall" referredMapping="#m..Source2Target_qvtp_qvtias.uD_1_refsB">
<binding boundVariable="#qV..Source2Target_qvtp_qvtias.uD_1_refsB.leftCS.guard.z">
- <value xsi:type="pivot:VariableExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.Z" referredVariable="#i..Source2Target_qvtp_qvtias.__root__.0.20.z"/>
+ <value xsi:type="pivot:VariableExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.Z" referredVariable="#i..Source2Target_qvtp_qvtias.__root__.0.22.z"/>
</binding>
</mappingStatements>
</ownedBody>
- <ownedIterators xmi:id="i..Source2Target_qvtp_qvtias.__root__.0.20.z" name="z" type="pivot:Class SourceMM1.ecore.oclas#T.source.Z"/>
+ <ownedIterators xmi:id="i..Source2Target_qvtp_qvtias.__root__.0.22.z" name="z" type="pivot:Class SourceMM1.ecore.oclas#T.source.Z"/>
</mappingStatements>
<mappingStatements xsi:type="qvti:MappingLoop">
- <ownedSource xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.11" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclElement.allInstances">
+ <ownedSource xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.12" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclElement.allInstances">
<ownedSource xsi:type="pivot:TypeExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.Z" referredType="pivot:Class SourceMM1.ecore.oclas#T.source.Z"/>
</ownedSource>
<ownedBody xsi:type="qvti:MappingSequence">
<mappingStatements xsi:type="qvti:MappingCall" referredMapping="#m..Source2Target_qvtp_qvtias.uD_0_refsC">
<binding boundVariable="#qV..Source2Target_qvtp_qvtias.uD_0_refsC.leftCS.guard.z">
- <value xsi:type="pivot:VariableExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.Z" referredVariable="#i..Source2Target_qvtp_qvtias.__root__.0.21.z"/>
+ <value xsi:type="pivot:VariableExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.Z" referredVariable="#i..Source2Target_qvtp_qvtias.__root__.0.23.z"/>
</binding>
</mappingStatements>
</ownedBody>
- <ownedIterators xmi:id="i..Source2Target_qvtp_qvtias.__root__.0.21.z" name="z" type="pivot:Class SourceMM1.ecore.oclas#T.source.Z"/>
+ <ownedIterators xmi:id="i..Source2Target_qvtp_qvtias.__root__.0.23.z" name="z" type="pivot:Class SourceMM1.ecore.oclas#T.source.Z"/>
</mappingStatements>
<mappingStatements xsi:type="qvti:MappingLoop">
- <ownedSource xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.11" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclElement.allInstances">
+ <ownedSource xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.12" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclElement.allInstances">
<ownedSource xsi:type="pivot:TypeExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.Z" referredType="pivot:Class SourceMM1.ecore.oclas#T.source.Z"/>
</ownedSource>
<ownedBody xsi:type="qvti:MappingSequence">
<mappingStatements xsi:type="qvti:MappingCall" referredMapping="#m..Source2Target_qvtp_qvtias.uD_1_toA">
<binding boundVariable="#qV..Source2Target_qvtp_qvtias.uD_1_toA.leftCS.guard.z">
- <value xsi:type="pivot:VariableExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.Z" referredVariable="#i..Source2Target_qvtp_qvtias.__root__.0.22.z"/>
+ <value xsi:type="pivot:VariableExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.Z" referredVariable="#i..Source2Target_qvtp_qvtias.__root__.0.24.z"/>
</binding>
</mappingStatements>
</ownedBody>
- <ownedIterators xmi:id="i..Source2Target_qvtp_qvtias.__root__.0.22.z" name="z" type="pivot:Class SourceMM1.ecore.oclas#T.source.Z"/>
+ <ownedIterators xmi:id="i..Source2Target_qvtp_qvtias.__root__.0.24.z" name="z" type="pivot:Class SourceMM1.ecore.oclas#T.source.Z"/>
</mappingStatements>
</mappingStatement>
</rule>
@@ -1355,140 +1629,176 @@
</ownedClasses>
</ownedPackages>
<ownedPackages xmi:id="P.$$" name="$$" URI="http://www.eclipse.org/ocl/2015/Orphanage" nsPrefix="orphanage">
- <ownedClasses xsi:type="pivot:SequenceType" name="Sequence" superClasses="#//@ownedPackages.1/@ownedClasses.12" elementType="pivot:Class TargetMM1.ecore.oclas#T.target.A">
+ <ownedClasses xsi:type="pivot:SequenceType" name="Sequence" superClasses="#//@ownedPackages.1/@ownedClasses.15" elementType="pivot:Class TargetMM1.ecore.oclas#T.target.A">
<ownedBindings>
<ownedSubstitutions actual="pivot:Class TargetMM1.ecore.oclas#T.target.A" formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..SequenceT"/>
</ownedBindings>
</ownedClasses>
- <ownedClasses xsi:type="pivot:OrderedSetType" name="OrderedSet" superClasses="#//@ownedPackages.1/@ownedClasses.13 #//@ownedPackages.1/@ownedClasses.14"
+ <ownedClasses xsi:type="pivot:OrderedSetType" name="OrderedSet" superClasses="#//@ownedPackages.1/@ownedClasses.16 #//@ownedPackages.1/@ownedClasses.17"
elementType="pivot:Class SourceMM1.ecore.oclas#T.source.X">
<ownedBindings>
<ownedSubstitutions actual="pivot:Class SourceMM1.ecore.oclas#T.source.X" formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..OrderedSetT"/>
</ownedBindings>
</ownedClasses>
- <ownedClasses xsi:type="pivot:SequenceType" name="Sequence" superClasses="#//@ownedPackages.1/@ownedClasses.15" elementType="pivot:Class TargetMM1.ecore.oclas#T.target.C">
+ <ownedClasses xsi:type="pivot:SequenceType" name="Sequence" superClasses="#//@ownedPackages.1/@ownedClasses.18" elementType="pivot:Class TargetMM1.ecore.oclas#T.target.C">
<ownedBindings>
<ownedSubstitutions actual="pivot:Class TargetMM1.ecore.oclas#T.target.C" formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..SequenceT"/>
</ownedBindings>
</ownedClasses>
- <ownedClasses xsi:type="pivot:SequenceType" name="Sequence" superClasses="#//@ownedPackages.1/@ownedClasses.16" elementType="pivot:Class SourceMM1.ecore.oclas#T.source.Y2"
+ <ownedClasses xsi:type="pivot:SequenceType" name="Sequence" superClasses="#//@ownedPackages.1/@ownedClasses.19" elementType="pivot:Class SourceMM1.ecore.oclas#T.source.Y2"
isNullFree="true">
<ownedBindings>
<ownedSubstitutions actual="pivot:Class SourceMM1.ecore.oclas#T.source.Y2" formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..SequenceT"/>
</ownedBindings>
</ownedClasses>
- <ownedClasses xsi:type="pivot:OrderedSetType" name="OrderedSet" superClasses="#//@ownedPackages.1/@ownedClasses.17 #//@ownedPackages.1/@ownedClasses.18"
+ <ownedClasses xsi:type="pivot:OrderedSetType" name="OrderedSet" superClasses="#//@ownedPackages.1/@ownedClasses.20 #//@ownedPackages.1/@ownedClasses.21"
elementType="pivot:Class SourceMM1.ecore.oclas#T.source.Y">
<ownedBindings>
<ownedSubstitutions actual="pivot:Class SourceMM1.ecore.oclas#T.source.Y" formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..OrderedSetT"/>
</ownedBindings>
</ownedClasses>
- <ownedClasses xsi:type="pivot:SequenceType" name="Sequence" superClasses="#//@ownedPackages.1/@ownedClasses.19" elementType="pivot:Class TargetMM1.ecore.oclas#T.target.B">
+ <ownedClasses xsi:type="pivot:SequenceType" name="Sequence" superClasses="#//@ownedPackages.1/@ownedClasses.22" elementType="pivot:Class TargetMM1.ecore.oclas#T.target.B">
<ownedBindings>
<ownedSubstitutions actual="pivot:Class TargetMM1.ecore.oclas#T.target.B" formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..SequenceT"/>
</ownedBindings>
</ownedClasses>
- <ownedClasses xsi:type="pivot:SequenceType" name="Sequence" superClasses="#//@ownedPackages.1/@ownedClasses.20" elementType="pivot:Class SourceMM1.ecore.oclas#T.source.Y1"
+ <ownedClasses xsi:type="pivot:SequenceType" name="Sequence" superClasses="#//@ownedPackages.1/@ownedClasses.23" elementType="pivot:Class SourceMM1.ecore.oclas#T.source.Y1"
isNullFree="true">
<ownedBindings>
<ownedSubstitutions actual="pivot:Class SourceMM1.ecore.oclas#T.source.Y1" formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..SequenceT"/>
</ownedBindings>
</ownedClasses>
- <ownedClasses xsi:type="pivot:SetType" name="Set" superClasses="#//@ownedPackages.1/@ownedClasses.21" elementType="pivot:Class SourceMM1.ecore.oclas#T.source.SRoot">
+ <ownedClasses xsi:type="pivot:OrderedSetType" name="OrderedSet" superClasses="#//@ownedPackages.1/@ownedClasses.24 #//@ownedPackages.1/@ownedClasses.25"
+ elementType="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS">
+ <ownedBindings>
+ <ownedSubstitutions actual="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS" formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..OrderedSetT"/>
+ </ownedBindings>
+ </ownedClasses>
+ <ownedClasses xsi:type="pivot:SetType" name="Set" superClasses="#//@ownedPackages.1/@ownedClasses.26" elementType="pivot:Class SourceMM1.ecore.oclas#T.source.SRoot">
<ownedBindings>
<ownedSubstitutions actual="pivot:Class SourceMM1.ecore.oclas#T.source.SRoot" formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..SetT"/>
</ownedBindings>
</ownedClasses>
- <ownedClasses xsi:type="pivot:SetType" name="Set" superClasses="#//@ownedPackages.1/@ownedClasses.22" elementType="pivot:Class SourceMM1.ecore.oclas#T.source.X">
+ <ownedClasses xsi:type="pivot:SetType" name="Set" superClasses="#//@ownedPackages.1/@ownedClasses.27" elementType="pivot:Class SourceMM1.ecore.oclas#T.source.X">
<ownedBindings>
<ownedSubstitutions actual="pivot:Class SourceMM1.ecore.oclas#T.source.X" formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..SetT"/>
</ownedBindings>
</ownedClasses>
- <ownedClasses xsi:type="pivot:SetType" name="Set" superClasses="#//@ownedPackages.1/@ownedClasses.23" elementType="pivot:Class SourceMM1.ecore.oclas#T.source.Y1">
+ <ownedClasses xsi:type="pivot:SetType" name="Set" superClasses="#//@ownedPackages.1/@ownedClasses.28" elementType="pivot:Class SourceMM1.ecore.oclas#T.source.Y1">
<ownedBindings>
<ownedSubstitutions actual="pivot:Class SourceMM1.ecore.oclas#T.source.Y1" formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..SetT"/>
</ownedBindings>
</ownedClasses>
- <ownedClasses xsi:type="pivot:SetType" name="Set" superClasses="#//@ownedPackages.1/@ownedClasses.24" elementType="pivot:Class SourceMM1.ecore.oclas#T.source.Y2">
+ <ownedClasses xsi:type="pivot:SetType" name="Set" superClasses="#//@ownedPackages.1/@ownedClasses.29" elementType="pivot:Class SourceMM1.ecore.oclas#T.source.Y2">
<ownedBindings>
<ownedSubstitutions actual="pivot:Class SourceMM1.ecore.oclas#T.source.Y2" formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..SetT"/>
</ownedBindings>
</ownedClasses>
- <ownedClasses xsi:type="pivot:SetType" name="Set" superClasses="#//@ownedPackages.1/@ownedClasses.25" elementType="pivot:Class SourceMM1.ecore.oclas#T.source.Z">
+ <ownedClasses xsi:type="pivot:SetType" name="Set" superClasses="#//@ownedPackages.1/@ownedClasses.30" elementType="pivot:Class SourceMM1.ecore.oclas#T.source.Z">
<ownedBindings>
<ownedSubstitutions actual="pivot:Class SourceMM1.ecore.oclas#T.source.Z" formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..SetT"/>
</ownedBindings>
</ownedClasses>
- <ownedClasses xsi:type="pivot:CollectionType" name="OrderedCollection" superClasses="#//@ownedPackages.1/@ownedClasses.26" elementType="pivot:Class TargetMM1.ecore.oclas#T.target.A">
+ <ownedClasses xsi:type="pivot:SetType" name="Set" superClasses="#//@ownedPackages.1/@ownedClasses.31" elementType="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS">
+ <ownedBindings>
+ <ownedSubstitutions actual="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS" formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..SetT"/>
+ </ownedBindings>
+ </ownedClasses>
+ <ownedClasses xsi:type="pivot:SetType" name="Set" superClasses="#//@ownedPackages.1/@ownedClasses.32" elementType="pivot:Class SourceMM1.ecore.oclas#T.source.PathNameCS">
+ <ownedBindings>
+ <ownedSubstitutions actual="pivot:Class SourceMM1.ecore.oclas#T.source.PathNameCS" formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..SetT"/>
+ </ownedBindings>
+ </ownedClasses>
+ <ownedClasses xsi:type="pivot:CollectionType" name="OrderedCollection" superClasses="#//@ownedPackages.1/@ownedClasses.33" elementType="pivot:Class TargetMM1.ecore.oclas#T.target.A">
<ownedBindings>
<ownedSubstitutions actual="pivot:Class TargetMM1.ecore.oclas#T.target.A" formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..OrderedCollectionT"/>
</ownedBindings>
</ownedClasses>
- <ownedClasses xsi:type="pivot:CollectionType" name="OrderedCollection" superClasses="#//@ownedPackages.1/@ownedClasses.27" elementType="pivot:Class SourceMM1.ecore.oclas#T.source.X">
+ <ownedClasses xsi:type="pivot:CollectionType" name="OrderedCollection" superClasses="#//@ownedPackages.1/@ownedClasses.34" elementType="pivot:Class SourceMM1.ecore.oclas#T.source.X">
<ownedBindings>
<ownedSubstitutions actual="pivot:Class SourceMM1.ecore.oclas#T.source.X" formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..OrderedCollectionT"/>
</ownedBindings>
</ownedClasses>
- <ownedClasses xsi:type="pivot:CollectionType" name="UniqueCollection" superClasses="#//@ownedPackages.1/@ownedClasses.27" elementType="pivot:Class SourceMM1.ecore.oclas#T.source.X">
+ <ownedClasses xsi:type="pivot:CollectionType" name="UniqueCollection" superClasses="#//@ownedPackages.1/@ownedClasses.34" elementType="pivot:Class SourceMM1.ecore.oclas#T.source.X">
<ownedBindings>
<ownedSubstitutions actual="pivot:Class SourceMM1.ecore.oclas#T.source.X" formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..UniqueCollectionT"/>
</ownedBindings>
</ownedClasses>
- <ownedClasses xsi:type="pivot:CollectionType" name="OrderedCollection" superClasses="#//@ownedPackages.1/@ownedClasses.28" elementType="pivot:Class TargetMM1.ecore.oclas#T.target.C">
+ <ownedClasses xsi:type="pivot:CollectionType" name="OrderedCollection" superClasses="#//@ownedPackages.1/@ownedClasses.35" elementType="pivot:Class TargetMM1.ecore.oclas#T.target.C">
<ownedBindings>
<ownedSubstitutions actual="pivot:Class TargetMM1.ecore.oclas#T.target.C" formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..OrderedCollectionT"/>
</ownedBindings>
</ownedClasses>
- <ownedClasses xsi:type="pivot:CollectionType" name="OrderedCollection" superClasses="#//@ownedPackages.1/@ownedClasses.29" elementType="pivot:Class SourceMM1.ecore.oclas#T.source.Y2">
+ <ownedClasses xsi:type="pivot:CollectionType" name="OrderedCollection" superClasses="#//@ownedPackages.1/@ownedClasses.36" elementType="pivot:Class SourceMM1.ecore.oclas#T.source.Y2">
<ownedBindings>
<ownedSubstitutions actual="pivot:Class SourceMM1.ecore.oclas#T.source.Y2" formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..OrderedCollectionT"/>
</ownedBindings>
</ownedClasses>
- <ownedClasses xsi:type="pivot:CollectionType" name="OrderedCollection" superClasses="#//@ownedPackages.1/@ownedClasses.30" elementType="pivot:Class SourceMM1.ecore.oclas#T.source.Y">
+ <ownedClasses xsi:type="pivot:CollectionType" name="OrderedCollection" superClasses="#//@ownedPackages.1/@ownedClasses.37" elementType="pivot:Class SourceMM1.ecore.oclas#T.source.Y">
<ownedBindings>
<ownedSubstitutions actual="pivot:Class SourceMM1.ecore.oclas#T.source.Y" formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..OrderedCollectionT"/>
</ownedBindings>
</ownedClasses>
- <ownedClasses xsi:type="pivot:CollectionType" name="UniqueCollection" superClasses="#//@ownedPackages.1/@ownedClasses.30" elementType="pivot:Class SourceMM1.ecore.oclas#T.source.Y">
+ <ownedClasses xsi:type="pivot:CollectionType" name="UniqueCollection" superClasses="#//@ownedPackages.1/@ownedClasses.37" elementType="pivot:Class SourceMM1.ecore.oclas#T.source.Y">
<ownedBindings>
<ownedSubstitutions actual="pivot:Class SourceMM1.ecore.oclas#T.source.Y" formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..UniqueCollectionT"/>
</ownedBindings>
</ownedClasses>
- <ownedClasses xsi:type="pivot:CollectionType" name="OrderedCollection" superClasses="#//@ownedPackages.1/@ownedClasses.31" elementType="pivot:Class TargetMM1.ecore.oclas#T.target.B">
+ <ownedClasses xsi:type="pivot:CollectionType" name="OrderedCollection" superClasses="#//@ownedPackages.1/@ownedClasses.38" elementType="pivot:Class TargetMM1.ecore.oclas#T.target.B">
<ownedBindings>
<ownedSubstitutions actual="pivot:Class TargetMM1.ecore.oclas#T.target.B" formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..OrderedCollectionT"/>
</ownedBindings>
</ownedClasses>
- <ownedClasses xsi:type="pivot:CollectionType" name="OrderedCollection" superClasses="#//@ownedPackages.1/@ownedClasses.32" elementType="pivot:Class SourceMM1.ecore.oclas#T.source.Y1">
+ <ownedClasses xsi:type="pivot:CollectionType" name="OrderedCollection" superClasses="#//@ownedPackages.1/@ownedClasses.39" elementType="pivot:Class SourceMM1.ecore.oclas#T.source.Y1">
<ownedBindings>
<ownedSubstitutions actual="pivot:Class SourceMM1.ecore.oclas#T.source.Y1" formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..OrderedCollectionT"/>
</ownedBindings>
</ownedClasses>
- <ownedClasses xsi:type="pivot:CollectionType" name="UniqueCollection" superClasses="#//@ownedPackages.1/@ownedClasses.33" elementType="pivot:Class SourceMM1.ecore.oclas#T.source.SRoot">
+ <ownedClasses xsi:type="pivot:CollectionType" name="OrderedCollection" superClasses="#//@ownedPackages.1/@ownedClasses.40" elementType="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS">
+ <ownedBindings>
+ <ownedSubstitutions actual="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS" formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..OrderedCollectionT"/>
+ </ownedBindings>
+ </ownedClasses>
+ <ownedClasses xsi:type="pivot:CollectionType" name="UniqueCollection" superClasses="#//@ownedPackages.1/@ownedClasses.40" elementType="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS">
+ <ownedBindings>
+ <ownedSubstitutions actual="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS" formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..UniqueCollectionT"/>
+ </ownedBindings>
+ </ownedClasses>
+ <ownedClasses xsi:type="pivot:CollectionType" name="UniqueCollection" superClasses="#//@ownedPackages.1/@ownedClasses.41" elementType="pivot:Class SourceMM1.ecore.oclas#T.source.SRoot">
<ownedBindings>
<ownedSubstitutions actual="pivot:Class SourceMM1.ecore.oclas#T.source.SRoot" formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..UniqueCollectionT"/>
</ownedBindings>
</ownedClasses>
- <ownedClasses xsi:type="pivot:CollectionType" name="UniqueCollection" superClasses="#//@ownedPackages.1/@ownedClasses.34" elementType="pivot:Class SourceMM1.ecore.oclas#T.source.X">
+ <ownedClasses xsi:type="pivot:CollectionType" name="UniqueCollection" superClasses="#//@ownedPackages.1/@ownedClasses.42" elementType="pivot:Class SourceMM1.ecore.oclas#T.source.X">
<ownedBindings>
<ownedSubstitutions actual="pivot:Class SourceMM1.ecore.oclas#T.source.X" formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..UniqueCollectionT"/>
</ownedBindings>
</ownedClasses>
- <ownedClasses xsi:type="pivot:CollectionType" name="UniqueCollection" superClasses="#//@ownedPackages.1/@ownedClasses.35" elementType="pivot:Class SourceMM1.ecore.oclas#T.source.Y1">
+ <ownedClasses xsi:type="pivot:CollectionType" name="UniqueCollection" superClasses="#//@ownedPackages.1/@ownedClasses.43" elementType="pivot:Class SourceMM1.ecore.oclas#T.source.Y1">
<ownedBindings>
<ownedSubstitutions actual="pivot:Class SourceMM1.ecore.oclas#T.source.Y1" formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..UniqueCollectionT"/>
</ownedBindings>
</ownedClasses>
- <ownedClasses xsi:type="pivot:CollectionType" name="UniqueCollection" superClasses="#//@ownedPackages.1/@ownedClasses.36" elementType="pivot:Class SourceMM1.ecore.oclas#T.source.Y2">
+ <ownedClasses xsi:type="pivot:CollectionType" name="UniqueCollection" superClasses="#//@ownedPackages.1/@ownedClasses.44" elementType="pivot:Class SourceMM1.ecore.oclas#T.source.Y2">
<ownedBindings>
<ownedSubstitutions actual="pivot:Class SourceMM1.ecore.oclas#T.source.Y2" formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..UniqueCollectionT"/>
</ownedBindings>
</ownedClasses>
- <ownedClasses xsi:type="pivot:CollectionType" name="UniqueCollection" superClasses="#//@ownedPackages.1/@ownedClasses.37" elementType="pivot:Class SourceMM1.ecore.oclas#T.source.Z">
+ <ownedClasses xsi:type="pivot:CollectionType" name="UniqueCollection" superClasses="#//@ownedPackages.1/@ownedClasses.45" elementType="pivot:Class SourceMM1.ecore.oclas#T.source.Z">
<ownedBindings>
<ownedSubstitutions actual="pivot:Class SourceMM1.ecore.oclas#T.source.Z" formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..UniqueCollectionT"/>
</ownedBindings>
</ownedClasses>
+ <ownedClasses xsi:type="pivot:CollectionType" name="UniqueCollection" superClasses="#//@ownedPackages.1/@ownedClasses.46" elementType="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS">
+ <ownedBindings>
+ <ownedSubstitutions actual="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS" formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..UniqueCollectionT"/>
+ </ownedBindings>
+ </ownedClasses>
+ <ownedClasses xsi:type="pivot:CollectionType" name="UniqueCollection" superClasses="#//@ownedPackages.1/@ownedClasses.47" elementType="pivot:Class SourceMM1.ecore.oclas#T.source.PathNameCS">
+ <ownedBindings>
+ <ownedSubstitutions actual="pivot:Class SourceMM1.ecore.oclas#T.source.PathNameCS" formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..UniqueCollectionT"/>
+ </ownedBindings>
+ </ownedClasses>
<ownedClasses xsi:type="pivot:CollectionType" name="Collection" superClasses="http://www.eclipse.org/ocl/2015/Library.oclas#T.ocl.OclAny"
elementType="pivot:Class TargetMM1.ecore.oclas#T.target.A">
<ownedBindings>
@@ -1532,6 +1842,12 @@
</ownedBindings>
</ownedClasses>
<ownedClasses xsi:type="pivot:CollectionType" name="Collection" superClasses="http://www.eclipse.org/ocl/2015/Library.oclas#T.ocl.OclAny"
+ elementType="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS">
+ <ownedBindings>
+ <ownedSubstitutions actual="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS" formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..CollectionT"/>
+ </ownedBindings>
+ </ownedClasses>
+ <ownedClasses xsi:type="pivot:CollectionType" name="Collection" superClasses="http://www.eclipse.org/ocl/2015/Library.oclas#T.ocl.OclAny"
elementType="pivot:Class SourceMM1.ecore.oclas#T.source.SRoot">
<ownedBindings>
<ownedSubstitutions actual="pivot:Class SourceMM1.ecore.oclas#T.source.SRoot" formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..CollectionT"/>
@@ -1561,5 +1877,17 @@
<ownedSubstitutions actual="pivot:Class SourceMM1.ecore.oclas#T.source.Z" formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..CollectionT"/>
</ownedBindings>
</ownedClasses>
+ <ownedClasses xsi:type="pivot:CollectionType" name="Collection" superClasses="http://www.eclipse.org/ocl/2015/Library.oclas#T.ocl.OclAny"
+ elementType="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS">
+ <ownedBindings>
+ <ownedSubstitutions actual="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS" formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..CollectionT"/>
+ </ownedBindings>
+ </ownedClasses>
+ <ownedClasses xsi:type="pivot:CollectionType" name="Collection" superClasses="http://www.eclipse.org/ocl/2015/Library.oclas#T.ocl.OclAny"
+ elementType="pivot:Class SourceMM1.ecore.oclas#T.source.PathNameCS">
+ <ownedBindings>
+ <ownedSubstitutions actual="pivot:Class SourceMM1.ecore.oclas#T.source.PathNameCS" formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..CollectionT"/>
+ </ownedBindings>
+ </ownedClasses>
</ownedPackages>
</qvti:ImperativeModel>
diff --git a/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example1/Source2Target.qvtp.qvtias b/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example1/Source2Target.qvtp.qvtias
index c24ce1ee3..4c660dde8 100644
--- a/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example1/Source2Target.qvtp.qvtias
+++ b/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example1/Source2Target.qvtp.qvtias
@@ -799,16 +799,32 @@
</guardPattern>
<bottomPattern>
<assignment xsi:type="qvtcb:PropertyAssignment" targetProperty="TargetMM1.ecore.oclas#p.target.D.refsC">
- <value xsi:type="pivot:OperationCallExp" isRequired="false" type="pivot:Class TargetMM1.ecore.oclas#T.target.C" referredOperation="TargetLookup.ocl.oclas#o.target.D.lookupC..source.Z">
- <ownedSource xsi:type="pivot:OperationCallExp" type="pivot:Class TargetMM1.ecore.oclas#T.target.D" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.oclAsType..TT">
- <ownedSource xsi:type="pivot:PropertyCallExp" type="pivot:Class http://www.eclipse.org/emf/2002/Ecore.oclas#T.ecore.EObject"
- referredProperty="SourceMM1.ecore.oclas#p.source.SElement.ast">
+ <value xsi:type="pivot:IfExp" isRequired="false" type="pivot:Class TargetMM1.ecore.oclas#T.target.C">
+ <ownedCondition xsi:type="pivot:OperationCallExp" name="=" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#Boolean"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.%61%..ocl.OclSelf">
+ <ownedSource xsi:type="pivot:PropertyCallExp" isRequired="false" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathNameCS"
+ referredProperty="SourceMM1.ecore.oclas#p.source.Z.refers">
<ownedSource xsi:type="pivot:VariableExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.Z" isImplicit="true" referredVariable="#qV..Source2Target_qvtp_qvtias.uD_0_refsC.leftCS.guard.z"/>
</ownedSource>
+ <ownedArguments xsi:type="pivot:NullLiteralExp" isRequired="false" type="pivot:VoidType http://www.eclipse.org/ocl/2015/Library.oclas#T.ocl.OclVoid"/>
+ </ownedCondition>
+ <ownedElse xsi:type="pivot:OperationCallExp" type="pivot:Class TargetMM1.ecore.oclas#T.target.C" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.oclAsType..TT">
+ <ownedSource xsi:type="pivot:OperationCallExp" type="pivot:Class TargetMM1.ecore.oclas#T.target.NamedElement" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.oclAsType..TT">
+ <ownedSource xsi:type="pivot:PropertyCallExp" type="pivot:Class http://www.eclipse.org/emf/2002/Ecore.oclas#T.ecore.EObject"
+ referredProperty="SourceMM1.ecore.oclas#p.source.SElement.ast">
+ <ownedSource xsi:type="pivot:PropertyCallExp" isRequired="false" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathNameCS"
+ referredProperty="SourceMM1.ecore.oclas#p.source.Z.refers">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.Z" isImplicit="true"
+ referredVariable="#qV..Source2Target_qvtp_qvtias.uD_0_refsC.leftCS.guard.z"/>
+ </ownedSource>
+ </ownedSource>
+ <ownedArguments xsi:type="pivot:TypeExp" type="pivot:Class http://www.eclipse.org/ocl/2015/Library.oclas#T.ocl.Class"
+ referredType="pivot:Class TargetMM1.ecore.oclas#T.target.NamedElement"/>
+ </ownedSource>
<ownedArguments xsi:type="pivot:TypeExp" type="pivot:Class http://www.eclipse.org/ocl/2015/Library.oclas#T.ocl.Class"
- referredType="pivot:Class TargetMM1.ecore.oclas#T.target.D"/>
- </ownedSource>
- <ownedArguments xsi:type="pivot:VariableExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.Z" referredVariable="#qV..Source2Target_qvtp_qvtias.uD_0_refsC.leftCS.guard.z"/>
+ referredType="pivot:Class TargetMM1.ecore.oclas#T.target.C"/>
+ </ownedElse>
+ <ownedThen xsi:type="pivot:NullLiteralExp" isRequired="false" type="pivot:VoidType http://www.eclipse.org/ocl/2015/Library.oclas#T.ocl.OclVoid"/>
</value>
<slotExpression xsi:type="pivot:OperationCallExp" type="pivot:Class TargetMM1.ecore.oclas#T.target.D" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.oclAsType..TT">
<ownedSource xsi:type="pivot:PropertyCallExp" type="pivot:Class http://www.eclipse.org/emf/2002/Ecore.oclas#T.ecore.EObject"
@@ -896,16 +912,32 @@
</guardPattern>
<bottomPattern>
<assignment xsi:type="qvtcb:PropertyAssignment" targetProperty="TargetMM1.ecore.oclas#p.target.D.refsB">
- <value xsi:type="pivot:OperationCallExp" isRequired="false" type="pivot:Class TargetMM1.ecore.oclas#T.target.B" referredOperation="TargetLookup.ocl.oclas#o.target.D.lookupB..source.Z">
- <ownedSource xsi:type="pivot:OperationCallExp" type="pivot:Class TargetMM1.ecore.oclas#T.target.D" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.oclAsType..TT">
- <ownedSource xsi:type="pivot:PropertyCallExp" type="pivot:Class http://www.eclipse.org/emf/2002/Ecore.oclas#T.ecore.EObject"
- referredProperty="SourceMM1.ecore.oclas#p.source.SElement.ast">
+ <value xsi:type="pivot:IfExp" isRequired="false" type="pivot:Class TargetMM1.ecore.oclas#T.target.B">
+ <ownedCondition xsi:type="pivot:OperationCallExp" name="=" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#Boolean"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.%61%..ocl.OclSelf">
+ <ownedSource xsi:type="pivot:PropertyCallExp" isRequired="false" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathNameCS"
+ referredProperty="SourceMM1.ecore.oclas#p.source.Z.refers">
<ownedSource xsi:type="pivot:VariableExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.Z" isImplicit="true" referredVariable="#qV..Source2Target_qvtp_qvtias.uD_1_refsB.leftCS.guard.z"/>
</ownedSource>
+ <ownedArguments xsi:type="pivot:NullLiteralExp" isRequired="false" type="pivot:VoidType http://www.eclipse.org/ocl/2015/Library.oclas#T.ocl.OclVoid"/>
+ </ownedCondition>
+ <ownedElse xsi:type="pivot:OperationCallExp" type="pivot:Class TargetMM1.ecore.oclas#T.target.B" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.oclAsType..TT">
+ <ownedSource xsi:type="pivot:OperationCallExp" type="pivot:Class TargetMM1.ecore.oclas#T.target.NamedElement" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.oclAsType..TT">
+ <ownedSource xsi:type="pivot:PropertyCallExp" type="pivot:Class http://www.eclipse.org/emf/2002/Ecore.oclas#T.ecore.EObject"
+ referredProperty="SourceMM1.ecore.oclas#p.source.SElement.ast">
+ <ownedSource xsi:type="pivot:PropertyCallExp" isRequired="false" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathNameCS"
+ referredProperty="SourceMM1.ecore.oclas#p.source.Z.refers">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.Z" isImplicit="true"
+ referredVariable="#qV..Source2Target_qvtp_qvtias.uD_1_refsB.leftCS.guard.z"/>
+ </ownedSource>
+ </ownedSource>
+ <ownedArguments xsi:type="pivot:TypeExp" type="pivot:Class http://www.eclipse.org/ocl/2015/Library.oclas#T.ocl.Class"
+ referredType="pivot:Class TargetMM1.ecore.oclas#T.target.NamedElement"/>
+ </ownedSource>
<ownedArguments xsi:type="pivot:TypeExp" type="pivot:Class http://www.eclipse.org/ocl/2015/Library.oclas#T.ocl.Class"
- referredType="pivot:Class TargetMM1.ecore.oclas#T.target.D"/>
- </ownedSource>
- <ownedArguments xsi:type="pivot:VariableExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.Z" referredVariable="#qV..Source2Target_qvtp_qvtias.uD_1_refsB.leftCS.guard.z"/>
+ referredType="pivot:Class TargetMM1.ecore.oclas#T.target.B"/>
+ </ownedElse>
+ <ownedThen xsi:type="pivot:NullLiteralExp" isRequired="false" type="pivot:VoidType http://www.eclipse.org/ocl/2015/Library.oclas#T.ocl.OclVoid"/>
</value>
<slotExpression xsi:type="pivot:OperationCallExp" type="pivot:Class TargetMM1.ecore.oclas#T.target.D" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.oclAsType..TT">
<ownedSource xsi:type="pivot:PropertyCallExp" type="pivot:Class http://www.eclipse.org/emf/2002/Ecore.oclas#T.ecore.EObject"
@@ -917,93 +949,317 @@
</assignment>
</bottomPattern>
</rule>
+ <rule xsi:type="qvti:Mapping" xmi:id="m..Source2Target_qvtp_qvtias.uPathElementCS_ast" name="uPathElementCS_ast">
+ <domain xsi:type="qvtcb:CoreDomain" isCheckable="true" typedModel="#qT..Source2Target_qvtp_qvtias.leftCS">
+ <guardPattern>
+ <variable xmi:id="qV..Source2Target_qvtp_qvtias.uPathElementCS_ast.leftCS.guard.pathElementCS" name="pathElementCS" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS"/>
+ </guardPattern>
+ <bottomPattern/>
+ </domain>
+ <domain xsi:type="qvtcb:CoreDomain" isEnforceable="true" typedModel="#qT..Source2Target_qvtp_qvtias.rightAS">
+ <guardPattern/>
+ <bottomPattern/>
+ </domain>
+ <guardPattern/>
+ <bottomPattern>
+ <assignment xsi:type="qvtcb:PropertyAssignment" targetProperty="SourceMM1.ecore.oclas#p.source.SElement.ast">
+ <value xsi:type="pivot:LetExp" isRequired="false" type="pivot:Class TargetMM1.ecore.oclas#T.target.NamedElement">
+ <ownedIn xsi:type="pivot:LetExp" isRequired="false" type="pivot:Class TargetMM1.ecore.oclas#T.target.NamedElement">
+ <ownedIn xsi:type="pivot:LetExp" isRequired="false" type="pivot:Class TargetMM1.ecore.oclas#T.target.NamedElement">
+ <ownedIn xsi:type="pivot:LetExp" isRequired="false" type="pivot:Class TargetMM1.ecore.oclas#T.target.NamedElement">
+ <ownedIn xsi:type="pivot:IfExp" isRequired="false" type="pivot:Class TargetMM1.ecore.oclas#T.target.NamedElement">
+ <ownedCondition xsi:type="pivot:OperationCallExp" name="=" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#Boolean"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.%61%..ocl.OclSelf">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS" referredVariable="#qV..Source2Target_qvtp_qvtias.uPathElementCS_ast.leftCS.guard.pathElementCS"/>
+ <ownedArguments xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS"
+ referredVariable="#//@ownedPackages.0/@ownedClasses.0/@rule.23/@bottomPattern/@assignment.0/@value/@ownedIn/@ownedIn/@ownedVariable"/>
+ </ownedCondition>
+ <ownedElse xsi:type="pivot:LetExp" isRequired="false" type="pivot:Class TargetMM1.ecore.oclas#T.target.NamedElement">
+ <ownedIn xsi:type="pivot:IfExp" isRequired="false" type="pivot:Class TargetMM1.ecore.oclas#T.target.NamedElement">
+ <ownedCondition xsi:type="pivot:OperationCallExp" name="=" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#Boolean"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.%61%..ocl.OclSelf">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS"
+ referredVariable="#qV..Source2Target_qvtp_qvtias.uPathElementCS_ast.leftCS.guard.pathElementCS"/>
+ <ownedArguments xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS"
+ referredVariable="#//@ownedPackages.0/@ownedClasses.0/@rule.23/@bottomPattern/@assignment.0/@value/@ownedIn/@ownedIn/@ownedIn/@ownedVariable"/>
+ </ownedCondition>
+ <ownedElse xsi:type="pivot:OperationCallExp" isRequired="false" type="pivot:Class TargetMM1.ecore.oclas#T.target.Namespace"
+ referredOperation="TargetLookup.ocl.oclas#o.target.Visitable._lookupNamespace..source.PathElementCS..ocl.Boolean">
+ <ownedSource xsi:type="pivot:OperationCallExp" type="pivot:Class TargetMM1.ecore.oclas#T.target.NamedElement"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.oclAsType..TT">
+ <ownedSource xsi:type="pivot:PropertyCallExp" type="pivot:Class http://www.eclipse.org/emf/2002/Ecore.oclas#T.ecore.EObject"
+ referredProperty="SourceMM1.ecore.oclas#p.source.SElement.ast">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS"
+ referredVariable="#//@ownedPackages.0/@ownedClasses.0/@rule.23/@bottomPattern/@assignment.0/@value/@ownedIn/@ownedIn/@ownedIn/@ownedIn/@ownedElse/@ownedVariable"/>
+ </ownedSource>
+ <ownedArguments xsi:type="pivot:TypeExp" type="pivot:Class http://www.eclipse.org/ocl/2015/Library.oclas#T.ocl.Class"
+ referredType="pivot:Class TargetMM1.ecore.oclas#T.target.NamedElement"/>
+ </ownedSource>
+ <ownedArguments xsi:type="pivot:VariableExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS"
+ referredVariable="#qV..Source2Target_qvtp_qvtias.uPathElementCS_ast.leftCS.guard.pathElementCS"/>
+ <ownedArguments xsi:type="pivot:BooleanLiteralExp" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#Boolean"
+ booleanSymbol="true"/>
+ </ownedElse>
+ <ownedThen xsi:type="pivot:OperationCallExp" isRequired="false" type="pivot:Class TargetMM1.ecore.oclas#T.target.NamedElement"
+ referredOperation="TargetLookup.ocl.oclas#o.target.Visitable._lookupNamedElement..source.PathElementCS..ocl.Boolean">
+ <ownedSource xsi:type="pivot:OperationCallExp" type="pivot:Class TargetMM1.ecore.oclas#T.target.NamedElement"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.oclAsType..TT">
+ <ownedSource xsi:type="pivot:PropertyCallExp" type="pivot:Class http://www.eclipse.org/emf/2002/Ecore.oclas#T.ecore.EObject"
+ referredProperty="SourceMM1.ecore.oclas#p.source.SElement.ast">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS"
+ referredVariable="#//@ownedPackages.0/@ownedClasses.0/@rule.23/@bottomPattern/@assignment.0/@value/@ownedIn/@ownedIn/@ownedIn/@ownedIn/@ownedElse/@ownedVariable"/>
+ </ownedSource>
+ <ownedArguments xsi:type="pivot:TypeExp" type="pivot:Class http://www.eclipse.org/ocl/2015/Library.oclas#T.ocl.Class"
+ referredType="pivot:Class TargetMM1.ecore.oclas#T.target.NamedElement"/>
+ </ownedSource>
+ <ownedArguments xsi:type="pivot:VariableExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS"
+ referredVariable="#qV..Source2Target_qvtp_qvtias.uPathElementCS_ast.leftCS.guard.pathElementCS"/>
+ <ownedArguments xsi:type="pivot:BooleanLiteralExp" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#Boolean"
+ booleanSymbol="true"/>
+ </ownedThen>
+ </ownedIn>
+ <ownedVariable name="prevPathElement" isRequired="false" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS">
+ <ownedInit xsi:type="pivot:OperationCallExp" isRequired="false" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OrderedCollection.at..ocl.Integer">
+ <ownedSource xsi:type="pivot:VariableExp" type="#//@ownedPackages.1/@ownedClasses.7" referredVariable="#//@ownedPackages.0/@ownedClasses.0/@rule.23/@bottomPattern/@assignment.0/@value/@ownedVariable"/>
+ <ownedArguments xsi:type="pivot:OperationCallExp" name="-" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#Integer"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Integer.%45%..ocl.OclSelf">
+ <ownedSource xsi:type="pivot:OperationCallExp" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#Integer"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OrderedCollection.indexOf..ocl.OclAny">
+ <ownedSource xsi:type="pivot:VariableExp" type="#//@ownedPackages.1/@ownedClasses.7" referredVariable="#//@ownedPackages.0/@ownedClasses.0/@rule.23/@bottomPattern/@assignment.0/@value/@ownedVariable"/>
+ <ownedArguments xsi:type="pivot:VariableExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS"
+ referredVariable="#qV..Source2Target_qvtp_qvtias.uPathElementCS_ast.leftCS.guard.pathElementCS"/>
+ </ownedSource>
+ <ownedArguments xsi:type="pivot:IntegerLiteralExp" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#Integer"
+ integerSymbol="1"/>
+ </ownedArguments>
+ </ownedInit>
+ </ownedVariable>
+ </ownedElse>
+ <ownedThen xsi:type="pivot:IfExp" isRequired="false" type="pivot:Class TargetMM1.ecore.oclas#T.target.NamedElement">
+ <ownedCondition xsi:type="pivot:OperationCallExp" name="=" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#Boolean"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.%61%..ocl.OclSelf">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS" referredVariable="#qV..Source2Target_qvtp_qvtias.uPathElementCS_ast.leftCS.guard.pathElementCS"/>
+ <ownedArguments xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS"
+ referredVariable="#//@ownedPackages.0/@ownedClasses.0/@rule.23/@bottomPattern/@assignment.0/@value/@ownedIn/@ownedIn/@ownedIn/@ownedVariable"/>
+ </ownedCondition>
+ <ownedElse xsi:type="pivot:OperationCallExp" isRequired="false" type="pivot:Class TargetMM1.ecore.oclas#T.target.Namespace"
+ referredOperation="TargetLookup.ocl.oclas#o.target.Visitable._lookupNamespace..source.PathElementCS..ocl.Boolean">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class TargetMM1.ecore.oclas#T.target.Visitable"
+ referredVariable="#//@ownedPackages.0/@ownedClasses.0/@rule.23/@bottomPattern/@assignment.0/@value/@ownedIn/@ownedVariable"/>
+ <ownedArguments xsi:type="pivot:VariableExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS"
+ referredVariable="#qV..Source2Target_qvtp_qvtias.uPathElementCS_ast.leftCS.guard.pathElementCS"/>
+ <ownedArguments xsi:type="pivot:BooleanLiteralExp" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#Boolean"
+ booleanSymbol="false"/>
+ </ownedElse>
+ <ownedThen xsi:type="pivot:OperationCallExp" isRequired="false" type="pivot:Class TargetMM1.ecore.oclas#T.target.NamedElement"
+ referredOperation="TargetLookup.ocl.oclas#o.target.Visitable._lookupNamedElement..source.PathElementCS..ocl.Boolean">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class TargetMM1.ecore.oclas#T.target.Visitable"
+ referredVariable="#//@ownedPackages.0/@ownedClasses.0/@rule.23/@bottomPattern/@assignment.0/@value/@ownedIn/@ownedVariable"/>
+ <ownedArguments xsi:type="pivot:VariableExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS"
+ referredVariable="#qV..Source2Target_qvtp_qvtias.uPathElementCS_ast.leftCS.guard.pathElementCS"/>
+ <ownedArguments xsi:type="pivot:BooleanLiteralExp" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#Boolean"
+ booleanSymbol="false"/>
+ </ownedThen>
+ </ownedThen>
+ </ownedIn>
+ <ownedVariable name="last" isRequired="false" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS">
+ <ownedInit xsi:type="pivot:OperationCallExp" isRequired="false" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OrderedCollection.at..ocl.Integer">
+ <ownedSource xsi:type="pivot:VariableExp" type="#//@ownedPackages.1/@ownedClasses.7" referredVariable="#//@ownedPackages.0/@ownedClasses.0/@rule.23/@bottomPattern/@assignment.0/@value/@ownedVariable"/>
+ <ownedArguments xsi:type="pivot:OperationCallExp" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#Integer"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Collection.size">
+ <ownedSource xsi:type="pivot:VariableExp" type="#//@ownedPackages.1/@ownedClasses.7" referredVariable="#//@ownedPackages.0/@ownedClasses.0/@rule.23/@bottomPattern/@assignment.0/@value/@ownedVariable"/>
+ </ownedArguments>
+ </ownedInit>
+ </ownedVariable>
+ </ownedIn>
+ <ownedVariable name="first" isRequired="false" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS">
+ <ownedInit xsi:type="pivot:OperationCallExp" isRequired="false" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OrderedCollection.at..ocl.Integer">
+ <ownedSource xsi:type="pivot:VariableExp" type="#//@ownedPackages.1/@ownedClasses.7" referredVariable="#//@ownedPackages.0/@ownedClasses.0/@rule.23/@bottomPattern/@assignment.0/@value/@ownedVariable"/>
+ <ownedArguments xsi:type="pivot:IntegerLiteralExp" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#Integer"
+ integerSymbol="1"/>
+ </ownedInit>
+ </ownedVariable>
+ </ownedIn>
+ <ownedVariable name="lookupContext" isRequired="false" type="pivot:Class TargetMM1.ecore.oclas#T.target.Visitable">
+ <ownedInit xsi:type="pivot:OperationCallExp" type="pivot:Class TargetMM1.ecore.oclas#T.target.Visitable" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.oclAsType..TT">
+ <ownedSource xsi:type="pivot:PropertyCallExp" type="pivot:Class http://www.eclipse.org/emf/2002/Ecore.oclas#T.ecore.EObject"
+ referredProperty="SourceMM1.ecore.oclas#p.source.SElement.ast">
+ <ownedSource xsi:type="pivot:OperationCallExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.SElement" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.oclAsType..TT">
+ <ownedSource xsi:type="pivot:OperationCallExp" isRequired="false" type="pivot:Class http://www.eclipse.org/ocl/2015/Library.oclas#T.ocl.OclElement"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclElement.oclContainer">
+ <ownedSource xsi:type="pivot:PropertyCallExp" isRequired="false" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathNameCS"
+ referredProperty="SourceMM1.ecore.oclas#p.source.PathElementCS.pathName">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS"
+ isImplicit="true" referredVariable="#qV..Source2Target_qvtp_qvtias.uPathElementCS_ast.leftCS.guard.pathElementCS"/>
+ </ownedSource>
+ </ownedSource>
+ <ownedArguments xsi:type="pivot:TypeExp" type="pivot:Class http://www.eclipse.org/ocl/2015/Library.oclas#T.ocl.Class"
+ referredType="pivot:Class SourceMM1.ecore.oclas#T.source.SElement"/>
+ </ownedSource>
+ </ownedSource>
+ <ownedArguments xsi:type="pivot:TypeExp" type="pivot:Class http://www.eclipse.org/ocl/2015/Library.oclas#T.ocl.Class"
+ referredType="pivot:Class TargetMM1.ecore.oclas#T.target.Visitable"/>
+ </ownedInit>
+ </ownedVariable>
+ </ownedIn>
+ <ownedVariable name="path" type="#//@ownedPackages.1/@ownedClasses.7">
+ <ownedInit xsi:type="pivot:PropertyCallExp" type="#//@ownedPackages.1/@ownedClasses.7" referredProperty="SourceMM1.ecore.oclas#p.source.PathNameCS.path">
+ <ownedSource xsi:type="pivot:PropertyCallExp" isRequired="false" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathNameCS"
+ referredProperty="SourceMM1.ecore.oclas#p.source.PathElementCS.pathName">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS" isImplicit="true"
+ referredVariable="#qV..Source2Target_qvtp_qvtias.uPathElementCS_ast.leftCS.guard.pathElementCS"/>
+ </ownedSource>
+ </ownedInit>
+ </ownedVariable>
+ </value>
+ <slotExpression xsi:type="pivot:VariableExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS" referredVariable="#qV..Source2Target_qvtp_qvtias.uPathElementCS_ast.leftCS.guard.pathElementCS"/>
+ </assignment>
+ </bottomPattern>
+ </rule>
+ <rule xsi:type="qvti:Mapping" xmi:id="m..Source2Target_qvtp_qvtias.uPathNameCS_ast" name="uPathNameCS_ast">
+ <domain xsi:type="qvtcb:CoreDomain" isCheckable="true" typedModel="#qT..Source2Target_qvtp_qvtias.leftCS">
+ <guardPattern>
+ <variable xmi:id="qV..Source2Target_qvtp_qvtias.uPathNameCS_ast.leftCS.guard.pathNameCS" name="pathNameCS" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathNameCS"/>
+ </guardPattern>
+ <bottomPattern/>
+ </domain>
+ <domain xsi:type="qvtcb:CoreDomain" isEnforceable="true" typedModel="#qT..Source2Target_qvtp_qvtias.rightAS">
+ <guardPattern/>
+ <bottomPattern/>
+ </domain>
+ <guardPattern/>
+ <bottomPattern>
+ <assignment xsi:type="qvtcb:PropertyAssignment" targetProperty="SourceMM1.ecore.oclas#p.source.SElement.ast">
+ <value xsi:type="pivot:OperationCallExp" type="pivot:Class TargetMM1.ecore.oclas#T.target.NamedElement" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.oclAsType..TT">
+ <ownedSource xsi:type="pivot:PropertyCallExp" type="pivot:Class http://www.eclipse.org/emf/2002/Ecore.oclas#T.ecore.EObject"
+ referredProperty="SourceMM1.ecore.oclas#p.source.SElement.ast">
+ <ownedSource xsi:type="pivot:OperationCallExp" isRequired="false" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OrderedCollection.at..ocl.Integer">
+ <ownedSource xsi:type="pivot:PropertyCallExp" type="#//@ownedPackages.1/@ownedClasses.7" referredProperty="SourceMM1.ecore.oclas#p.source.PathNameCS.path">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathNameCS" isImplicit="true"
+ referredVariable="#qV..Source2Target_qvtp_qvtias.uPathNameCS_ast.leftCS.guard.pathNameCS"/>
+ </ownedSource>
+ <ownedArguments xsi:type="pivot:OperationCallExp" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#Integer"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Collection.size">
+ <ownedSource xsi:type="pivot:PropertyCallExp" type="#//@ownedPackages.1/@ownedClasses.7" referredProperty="SourceMM1.ecore.oclas#p.source.PathNameCS.path">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathNameCS" isImplicit="true"
+ referredVariable="#qV..Source2Target_qvtp_qvtias.uPathNameCS_ast.leftCS.guard.pathNameCS"/>
+ </ownedSource>
+ </ownedArguments>
+ </ownedSource>
+ </ownedSource>
+ <ownedArguments xsi:type="pivot:TypeExp" type="pivot:Class http://www.eclipse.org/ocl/2015/Library.oclas#T.ocl.Class" referredType="pivot:Class TargetMM1.ecore.oclas#T.target.NamedElement"/>
+ </value>
+ <slotExpression xsi:type="pivot:VariableExp" type="pivot:Class SourceMM1.ecore.oclas#T.source.PathNameCS" referredVariable="#qV..Source2Target_qvtp_qvtias.uPathNameCS_ast.leftCS.guard.pathNameCS"/>
+ </assignment>
+ </bottomPattern>
+ </rule>
</ownedClasses>
</ownedPackages>
<ownedPackages xmi:id="P.$$" name="$$" URI="http://www.eclipse.org/ocl/2015/Orphanage" nsPrefix="orphanage">
- <ownedClasses xsi:type="pivot:SequenceType" name="Sequence" superClasses="#//@ownedPackages.1/@ownedClasses.7" elementType="pivot:Class TargetMM1.ecore.oclas#T.target.A">
+ <ownedClasses xsi:type="pivot:SequenceType" name="Sequence" superClasses="#//@ownedPackages.1/@ownedClasses.8" elementType="pivot:Class TargetMM1.ecore.oclas#T.target.A">
<ownedBindings>
<ownedSubstitutions actual="pivot:Class TargetMM1.ecore.oclas#T.target.A" formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..SequenceT"/>
</ownedBindings>
</ownedClasses>
- <ownedClasses xsi:type="pivot:OrderedSetType" name="OrderedSet" superClasses="#//@ownedPackages.1/@ownedClasses.8 #//@ownedPackages.1/@ownedClasses.9"
+ <ownedClasses xsi:type="pivot:OrderedSetType" name="OrderedSet" superClasses="#//@ownedPackages.1/@ownedClasses.9 #//@ownedPackages.1/@ownedClasses.10"
elementType="pivot:Class SourceMM1.ecore.oclas#T.source.X">
<ownedBindings>
<ownedSubstitutions actual="pivot:Class SourceMM1.ecore.oclas#T.source.X" formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..OrderedSetT"/>
</ownedBindings>
</ownedClasses>
- <ownedClasses xsi:type="pivot:SequenceType" name="Sequence" superClasses="#//@ownedPackages.1/@ownedClasses.10" elementType="pivot:Class TargetMM1.ecore.oclas#T.target.C">
+ <ownedClasses xsi:type="pivot:SequenceType" name="Sequence" superClasses="#//@ownedPackages.1/@ownedClasses.11" elementType="pivot:Class TargetMM1.ecore.oclas#T.target.C">
<ownedBindings>
<ownedSubstitutions actual="pivot:Class TargetMM1.ecore.oclas#T.target.C" formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..SequenceT"/>
</ownedBindings>
</ownedClasses>
- <ownedClasses xsi:type="pivot:SequenceType" name="Sequence" superClasses="#//@ownedPackages.1/@ownedClasses.11" elementType="pivot:Class SourceMM1.ecore.oclas#T.source.Y2"
+ <ownedClasses xsi:type="pivot:SequenceType" name="Sequence" superClasses="#//@ownedPackages.1/@ownedClasses.12" elementType="pivot:Class SourceMM1.ecore.oclas#T.source.Y2"
isNullFree="true">
<ownedBindings>
<ownedSubstitutions actual="pivot:Class SourceMM1.ecore.oclas#T.source.Y2" formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..SequenceT"/>
</ownedBindings>
</ownedClasses>
- <ownedClasses xsi:type="pivot:OrderedSetType" name="OrderedSet" superClasses="#//@ownedPackages.1/@ownedClasses.12 #//@ownedPackages.1/@ownedClasses.13"
+ <ownedClasses xsi:type="pivot:OrderedSetType" name="OrderedSet" superClasses="#//@ownedPackages.1/@ownedClasses.13 #//@ownedPackages.1/@ownedClasses.14"
elementType="pivot:Class SourceMM1.ecore.oclas#T.source.Y">
<ownedBindings>
<ownedSubstitutions actual="pivot:Class SourceMM1.ecore.oclas#T.source.Y" formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..OrderedSetT"/>
</ownedBindings>
</ownedClasses>
- <ownedClasses xsi:type="pivot:SequenceType" name="Sequence" superClasses="#//@ownedPackages.1/@ownedClasses.14" elementType="pivot:Class TargetMM1.ecore.oclas#T.target.B">
+ <ownedClasses xsi:type="pivot:SequenceType" name="Sequence" superClasses="#//@ownedPackages.1/@ownedClasses.15" elementType="pivot:Class TargetMM1.ecore.oclas#T.target.B">
<ownedBindings>
<ownedSubstitutions actual="pivot:Class TargetMM1.ecore.oclas#T.target.B" formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..SequenceT"/>
</ownedBindings>
</ownedClasses>
- <ownedClasses xsi:type="pivot:SequenceType" name="Sequence" superClasses="#//@ownedPackages.1/@ownedClasses.15" elementType="pivot:Class SourceMM1.ecore.oclas#T.source.Y1"
+ <ownedClasses xsi:type="pivot:SequenceType" name="Sequence" superClasses="#//@ownedPackages.1/@ownedClasses.16" elementType="pivot:Class SourceMM1.ecore.oclas#T.source.Y1"
isNullFree="true">
<ownedBindings>
<ownedSubstitutions actual="pivot:Class SourceMM1.ecore.oclas#T.source.Y1" formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..SequenceT"/>
</ownedBindings>
</ownedClasses>
- <ownedClasses xsi:type="pivot:CollectionType" name="OrderedCollection" superClasses="#//@ownedPackages.1/@ownedClasses.16" elementType="pivot:Class TargetMM1.ecore.oclas#T.target.A">
+ <ownedClasses xsi:type="pivot:OrderedSetType" name="OrderedSet" superClasses="#//@ownedPackages.1/@ownedClasses.17 #//@ownedPackages.1/@ownedClasses.18"
+ elementType="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS">
+ <ownedBindings>
+ <ownedSubstitutions actual="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS" formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..OrderedSetT"/>
+ </ownedBindings>
+ </ownedClasses>
+ <ownedClasses xsi:type="pivot:CollectionType" name="OrderedCollection" superClasses="#//@ownedPackages.1/@ownedClasses.19" elementType="pivot:Class TargetMM1.ecore.oclas#T.target.A">
<ownedBindings>
<ownedSubstitutions actual="pivot:Class TargetMM1.ecore.oclas#T.target.A" formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..OrderedCollectionT"/>
</ownedBindings>
</ownedClasses>
- <ownedClasses xsi:type="pivot:CollectionType" name="OrderedCollection" superClasses="#//@ownedPackages.1/@ownedClasses.17" elementType="pivot:Class SourceMM1.ecore.oclas#T.source.X">
+ <ownedClasses xsi:type="pivot:CollectionType" name="OrderedCollection" superClasses="#//@ownedPackages.1/@ownedClasses.20" elementType="pivot:Class SourceMM1.ecore.oclas#T.source.X">
<ownedBindings>
<ownedSubstitutions actual="pivot:Class SourceMM1.ecore.oclas#T.source.X" formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..OrderedCollectionT"/>
</ownedBindings>
</ownedClasses>
- <ownedClasses xsi:type="pivot:CollectionType" name="UniqueCollection" superClasses="#//@ownedPackages.1/@ownedClasses.17" elementType="pivot:Class SourceMM1.ecore.oclas#T.source.X">
+ <ownedClasses xsi:type="pivot:CollectionType" name="UniqueCollection" superClasses="#//@ownedPackages.1/@ownedClasses.20" elementType="pivot:Class SourceMM1.ecore.oclas#T.source.X">
<ownedBindings>
<ownedSubstitutions actual="pivot:Class SourceMM1.ecore.oclas#T.source.X" formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..UniqueCollectionT"/>
</ownedBindings>
</ownedClasses>
- <ownedClasses xsi:type="pivot:CollectionType" name="OrderedCollection" superClasses="#//@ownedPackages.1/@ownedClasses.18" elementType="pivot:Class TargetMM1.ecore.oclas#T.target.C">
+ <ownedClasses xsi:type="pivot:CollectionType" name="OrderedCollection" superClasses="#//@ownedPackages.1/@ownedClasses.21" elementType="pivot:Class TargetMM1.ecore.oclas#T.target.C">
<ownedBindings>
<ownedSubstitutions actual="pivot:Class TargetMM1.ecore.oclas#T.target.C" formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..OrderedCollectionT"/>
</ownedBindings>
</ownedClasses>
- <ownedClasses xsi:type="pivot:CollectionType" name="OrderedCollection" superClasses="#//@ownedPackages.1/@ownedClasses.19" elementType="pivot:Class SourceMM1.ecore.oclas#T.source.Y2">
+ <ownedClasses xsi:type="pivot:CollectionType" name="OrderedCollection" superClasses="#//@ownedPackages.1/@ownedClasses.22" elementType="pivot:Class SourceMM1.ecore.oclas#T.source.Y2">
<ownedBindings>
<ownedSubstitutions actual="pivot:Class SourceMM1.ecore.oclas#T.source.Y2" formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..OrderedCollectionT"/>
</ownedBindings>
</ownedClasses>
- <ownedClasses xsi:type="pivot:CollectionType" name="OrderedCollection" superClasses="#//@ownedPackages.1/@ownedClasses.20" elementType="pivot:Class SourceMM1.ecore.oclas#T.source.Y">
+ <ownedClasses xsi:type="pivot:CollectionType" name="OrderedCollection" superClasses="#//@ownedPackages.1/@ownedClasses.23" elementType="pivot:Class SourceMM1.ecore.oclas#T.source.Y">
<ownedBindings>
<ownedSubstitutions actual="pivot:Class SourceMM1.ecore.oclas#T.source.Y" formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..OrderedCollectionT"/>
</ownedBindings>
</ownedClasses>
- <ownedClasses xsi:type="pivot:CollectionType" name="UniqueCollection" superClasses="#//@ownedPackages.1/@ownedClasses.20" elementType="pivot:Class SourceMM1.ecore.oclas#T.source.Y">
+ <ownedClasses xsi:type="pivot:CollectionType" name="UniqueCollection" superClasses="#//@ownedPackages.1/@ownedClasses.23" elementType="pivot:Class SourceMM1.ecore.oclas#T.source.Y">
<ownedBindings>
<ownedSubstitutions actual="pivot:Class SourceMM1.ecore.oclas#T.source.Y" formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..UniqueCollectionT"/>
</ownedBindings>
</ownedClasses>
- <ownedClasses xsi:type="pivot:CollectionType" name="OrderedCollection" superClasses="#//@ownedPackages.1/@ownedClasses.21" elementType="pivot:Class TargetMM1.ecore.oclas#T.target.B">
+ <ownedClasses xsi:type="pivot:CollectionType" name="OrderedCollection" superClasses="#//@ownedPackages.1/@ownedClasses.24" elementType="pivot:Class TargetMM1.ecore.oclas#T.target.B">
<ownedBindings>
<ownedSubstitutions actual="pivot:Class TargetMM1.ecore.oclas#T.target.B" formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..OrderedCollectionT"/>
</ownedBindings>
</ownedClasses>
- <ownedClasses xsi:type="pivot:CollectionType" name="OrderedCollection" superClasses="#//@ownedPackages.1/@ownedClasses.22" elementType="pivot:Class SourceMM1.ecore.oclas#T.source.Y1">
+ <ownedClasses xsi:type="pivot:CollectionType" name="OrderedCollection" superClasses="#//@ownedPackages.1/@ownedClasses.25" elementType="pivot:Class SourceMM1.ecore.oclas#T.source.Y1">
<ownedBindings>
<ownedSubstitutions actual="pivot:Class SourceMM1.ecore.oclas#T.source.Y1" formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..OrderedCollectionT"/>
</ownedBindings>
</ownedClasses>
+ <ownedClasses xsi:type="pivot:CollectionType" name="OrderedCollection" superClasses="#//@ownedPackages.1/@ownedClasses.26" elementType="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS">
+ <ownedBindings>
+ <ownedSubstitutions actual="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS" formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..OrderedCollectionT"/>
+ </ownedBindings>
+ </ownedClasses>
+ <ownedClasses xsi:type="pivot:CollectionType" name="UniqueCollection" superClasses="#//@ownedPackages.1/@ownedClasses.26" elementType="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS">
+ <ownedBindings>
+ <ownedSubstitutions actual="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS" formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..UniqueCollectionT"/>
+ </ownedBindings>
+ </ownedClasses>
<ownedClasses xsi:type="pivot:CollectionType" name="Collection" superClasses="http://www.eclipse.org/ocl/2015/Library.oclas#T.ocl.OclAny"
elementType="pivot:Class TargetMM1.ecore.oclas#T.target.A">
<ownedBindings>
@@ -1046,5 +1302,11 @@
<ownedSubstitutions actual="pivot:Class SourceMM1.ecore.oclas#T.source.Y1" formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..CollectionT"/>
</ownedBindings>
</ownedClasses>
+ <ownedClasses xsi:type="pivot:CollectionType" name="Collection" superClasses="http://www.eclipse.org/ocl/2015/Library.oclas#T.ocl.OclAny"
+ elementType="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS">
+ <ownedBindings>
+ <ownedSubstitutions actual="pivot:Class SourceMM1.ecore.oclas#T.source.PathElementCS" formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..CollectionT"/>
+ </ownedBindings>
+ </ownedClasses>
</ownedPackages>
</qvti:ImperativeModel>
diff --git a/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example1/Source2TargetSchedule.xmi b/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example1/Source2TargetSchedule.xmi
index fd4bcfac9..a369acc44 100644
--- a/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example1/Source2TargetSchedule.xmi
+++ b/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example1/Source2TargetSchedule.xmi
@@ -1,9 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<qvts:Schedule xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:qvts="http://www.eclipse.org/qvt/2015/Schedule"
xsi:schemaLocation="http://www.eclipse.org/qvt/2015/Schedule java://org.eclipse.qvtd.pivot.schedule.SchedulePackage">
- <datums xsi:type="qvts:ClassDatum" sub="//@datums.1 //@datums.3 //@datums.10 //@datums.15 //@datums.17 //@datums.19">
+ <datums xsi:type="qvts:ClassDatum" sub="//@datums.1 //@datums.3 //@datums.10 //@datums.15 //@datums.17 //@datums.18">
<type href="SourceMM1.ecore.oclas#T.source.SElement"/>
- <propertyDatums sub="//@datums.3/@propertyDatums.0 //@datums.1/@propertyDatums.1 //@datums.10/@propertyDatums.0 //@datums.15/@propertyDatums.1">
+ <propertyDatums sub="//@datums.3/@propertyDatums.0 //@datums.1/@propertyDatums.1 //@datums.10/@propertyDatums.0 //@datums.15/@propertyDatums.1 //@datums.18/@propertyDatums.0 //@datums.17/@propertyDatums.0"
+ requiredBy="//@actions.23">
<property href="SourceMM1.ecore.oclas#p.source.SElement.ast"/>
</propertyDatums>
</datums>
@@ -22,7 +23,7 @@
<datums xsi:type="qvts:ClassDatum" producedBy="//@actions.0" dataParameter="//@actions.0/@results.0">
<domain href="Source2Target.qvtp.qvtias#//@ownedPackages.0/@ownedClasses.0/@rule.0/@domain.1"/>
<type href="TargetMM1.ecore.oclas#T.target.TRoot"/>
- <propertyDatums producedBy="//@actions.8" requiredBy="//@actions.20 //@actions.22" opposite="//@datums.6/@propertyDatums.1">
+ <propertyDatums producedBy="//@actions.8" requiredBy="//@actions.23" opposite="//@datums.6/@propertyDatums.1">
<domain href="Source2Target.qvtp.qvtias#//@ownedPackages.0/@ownedClasses.0/@rule.0/@domain.1"/>
<property href="TargetMM1.ecore.oclas#p.target.TRoot.ownedA"/>
</propertyDatums>
@@ -61,7 +62,7 @@
<datums xsi:type="qvts:ClassDatum" super="//@datums.4" sub="//@datums.6 //@datums.12 //@datums.14">
<type href="TargetMM1.ecore.oclas#T.target.Namespace"/>
<propertyDatums super="//@datums.4/@propertyDatums.0" sub="//@datums.6/@propertyDatums.0 //@datums.12/@propertyDatums.2 //@datums.14/@propertyDatums.2"
- requiredBy="//@actions.20 //@actions.22">
+ requiredBy="//@actions.23">
<property href="TargetMM1.ecore.oclas#p.target.NamedElement.name"/>
</propertyDatums>
</datums>
@@ -84,7 +85,7 @@
<domain href="Source2Target.qvtp.qvtias#//@ownedPackages.0/@ownedClasses.0/@rule.2/@domain.1"/>
<property href="TargetMM1.ecore.oclas#p.target.NamedElement.name"/>
</propertyDatums>
- <propertyDatums sub="//@datums.8/@propertyDatums.1" producedBy="//@actions.12" requiredBy="//@actions.20 //@actions.22" opposite="//@datums.14/@propertyDatums.0">
+ <propertyDatums sub="//@datums.8/@propertyDatums.1" producedBy="//@actions.12" requiredBy="//@actions.23" opposite="//@datums.14/@propertyDatums.0">
<domain href="Source2Target.qvtp.qvtias#//@ownedPackages.0/@ownedClasses.0/@rule.2/@domain.1"/>
<property href="TargetMM1.ecore.oclas#p.target.A2.ownsC"/>
</propertyDatums>
@@ -108,7 +109,7 @@
<domain href="Source2Target.qvtp.qvtias#//@ownedPackages.0/@ownedClasses.0/@rule.3/@domain.1"/>
<property href="TargetMM1.ecore.oclas#p.target.NamedElement.name"/>
</propertyDatums>
- <propertyDatums producedBy="//@actions.14" requiredBy="//@actions.20 //@actions.22" opposite="//@datums.12/@propertyDatums.0">
+ <propertyDatums producedBy="//@actions.14" requiredBy="//@actions.23" opposite="//@datums.12/@propertyDatums.0">
<domain href="Source2Target.qvtp.qvtias#//@ownedPackages.0/@ownedClasses.0/@rule.3/@domain.1"/>
<property href="TargetMM1.ecore.oclas#p.target.A1.ownsB"/>
</propertyDatums>
@@ -148,11 +149,11 @@
<domain href="Source2Target.qvtp.qvtias#//@ownedPackages.0/@ownedClasses.0/@rule.4/@domain.1"/>
<property href="TargetMM1.ecore.oclas#p.target.B.toA1"/>
</propertyDatums>
- <propertyDatums producedBy="//@actions.15" requiredBy="//@actions.20 //@actions.22" opposite="//@datums.16/@propertyDatums.3">
+ <propertyDatums producedBy="//@actions.15" requiredBy="//@actions.23" opposite="//@datums.16/@propertyDatums.3">
<domain href="Source2Target.qvtp.qvtias#//@ownedPackages.0/@ownedClasses.0/@rule.4/@domain.1"/>
<property href="TargetMM1.ecore.oclas#p.target.B.ownsD"/>
</propertyDatums>
- <propertyDatums super="//@datums.5/@propertyDatums.0" producedBy="//@actions.16" requiredBy="//@actions.22">
+ <propertyDatums super="//@datums.5/@propertyDatums.0" producedBy="//@actions.16" requiredBy="//@actions.23">
<domain href="Source2Target.qvtp.qvtias#//@ownedPackages.0/@ownedClasses.0/@rule.4/@domain.1"/>
<property href="TargetMM1.ecore.oclas#p.target.NamedElement.name"/>
</propertyDatums>
@@ -184,11 +185,11 @@
<domain href="Source2Target.qvtp.qvtias#//@ownedPackages.0/@ownedClasses.0/@rule.5/@domain.1"/>
<property href="TargetMM1.ecore.oclas#p.target.C.toA2"/>
</propertyDatums>
- <propertyDatums producedBy="//@actions.17" requiredBy="//@actions.20 //@actions.22" opposite="//@datums.16/@propertyDatums.4">
+ <propertyDatums producedBy="//@actions.17" requiredBy="//@actions.23" opposite="//@datums.16/@propertyDatums.4">
<domain href="Source2Target.qvtp.qvtias#//@ownedPackages.0/@ownedClasses.0/@rule.5/@domain.1"/>
<property href="TargetMM1.ecore.oclas#p.target.C.ownsD"/>
</propertyDatums>
- <propertyDatums super="//@datums.5/@propertyDatums.0" producedBy="//@actions.18" requiredBy="//@actions.20">
+ <propertyDatums super="//@datums.5/@propertyDatums.0" producedBy="//@actions.18">
<domain href="Source2Target.qvtp.qvtias#//@ownedPackages.0/@ownedClasses.0/@rule.5/@domain.1"/>
<property href="TargetMM1.ecore.oclas#p.target.NamedElement.name"/>
</propertyDatums>
@@ -238,28 +239,44 @@
<property href="TargetMM1.ecore.oclas#p.target.D.toC"/>
</propertyDatums>
</datums>
- <datums xsi:type="qvts:ClassDatum" super="//@datums.0">
+ <datums xsi:type="qvts:ClassDatum" super="//@datums.0" requiredBy="//@actions.23" dataParameter="//@actions.23/@parameters.0">
+ <domain href="Source2Target.qvtp.qvtias#//@ownedPackages.0/@ownedClasses.0/@rule.23/@domain.0"/>
+ <type href="SourceMM1.ecore.oclas#T.source.PathElementCS"/>
+ <propertyDatums super="//@datums.0/@propertyDatums.0" producedBy="//@actions.23" requiredBy="//@actions.23 //@actions.24">
+ <domain href="Source2Target.qvtp.qvtias#//@ownedPackages.0/@ownedClasses.0/@rule.23/@domain.0"/>
+ <property href="SourceMM1.ecore.oclas#p.source.SElement.ast"/>
+ </propertyDatums>
+ <propertyDatums requiredBy="//@actions.23">
+ <domain href="Source2Target.qvtp.qvtias#//@ownedPackages.0/@ownedClasses.0/@rule.23/@domain.0"/>
+ <property href="SourceMM1.ecore.oclas#p.source.PathElementCS.pathName"/>
+ </propertyDatums>
+ <propertyDatums requiredBy="//@actions.23">
+ <domain href="Source2Target.qvtp.qvtias#//@ownedPackages.0/@ownedClasses.0/@rule.23/@domain.0"/>
+ <property href="SourceMM1.ecore.oclas#p.source.PathElementCS.name"/>
+ </propertyDatums>
+ </datums>
+ <datums xsi:type="qvts:ClassDatum" super="//@datums.0" requiredBy="//@actions.24" dataParameter="//@actions.24/@parameters.0">
+ <domain href="Source2Target.qvtp.qvtias#//@ownedPackages.0/@ownedClasses.0/@rule.24/@domain.0"/>
<type href="SourceMM1.ecore.oclas#T.source.PathNameCS"/>
- <propertyDatums requiredBy="//@actions.20 //@actions.22">
+ <propertyDatums super="//@datums.0/@propertyDatums.0" producedBy="//@actions.24" requiredBy="//@actions.20 //@actions.22">
+ <domain href="Source2Target.qvtp.qvtias#//@ownedPackages.0/@ownedClasses.0/@rule.24/@domain.0"/>
+ <property href="SourceMM1.ecore.oclas#p.source.SElement.ast"/>
+ </propertyDatums>
+ <propertyDatums requiredBy="//@actions.23 //@actions.24">
+ <domain href="Source2Target.qvtp.qvtias#//@ownedPackages.0/@ownedClasses.0/@rule.24/@domain.0"/>
<property href="SourceMM1.ecore.oclas#p.source.PathNameCS.path"/>
</propertyDatums>
</datums>
<datums xsi:type="qvts:ClassDatum">
<type href="EnvExample1.ecore.oclas#T.env.Environment"/>
- <propertyDatums requiredBy="//@actions.20 //@actions.22">
+ <propertyDatums requiredBy="//@actions.23">
<property href="EnvExample1.ecore.oclas#p.env.Environment.parentEnv"/>
</propertyDatums>
- <propertyDatums requiredBy="//@actions.20 //@actions.22">
+ <propertyDatums requiredBy="//@actions.23">
<property href="EnvExample1.ecore.oclas#p.env.Environment.namedElements"/>
</propertyDatums>
</datums>
- <datums xsi:type="qvts:ClassDatum" super="//@datums.0">
- <type href="SourceMM1.ecore.oclas#T.source.PathElementCS"/>
- <propertyDatums requiredBy="//@actions.20 //@actions.22">
- <property href="SourceMM1.ecore.oclas#p.source.PathElementCS.name"/>
- </propertyDatums>
- </datums>
- <actions xsi:type="qvts:MappingAction" productions="//@datums.2 //@datums.1/@propertyDatums.1" requisites="//@datums.1" order="1" parent="//@actions.23">
+ <actions xsi:type="qvts:MappingAction" productions="//@datums.2 //@datums.1/@propertyDatums.1" requisites="//@datums.1" order="1" parent="//@actions.25">
<parameterDerivations>
<secondaryParameter isLoop="true" dataParameter="//@actions.0/@parameters.0"/>
</parameterDerivations>
@@ -272,7 +289,7 @@
<mapping href="Source2Target.qvtp.qvtias#m..Source2Target_qvtp_qvtias.cSRoot_2_TRoot"/>
</actions>
<actions xsi:type="qvts:MappingAction" productions="//@datums.8 //@datums.3/@propertyDatums.0" requisites="//@datums.3 //@datums.3/@propertyDatums.3 //@datums.3/@propertyDatums.4"
- order="4" parent="//@actions.23">
+ order="4" parent="//@actions.25">
<parameterDerivations>
<secondaryParameter isLoop="true" dataParameter="//@actions.1/@parameters.0"/>
</parameterDerivations>
@@ -285,7 +302,7 @@
<mapping href="Source2Target.qvtp.qvtias#m..Source2Target_qvtp_qvtias.cX_2_A3"/>
</actions>
<actions xsi:type="qvts:MappingAction" productions="//@datums.7 //@datums.3/@propertyDatums.0" requisites="//@datums.3 //@datums.3/@propertyDatums.3 //@datums.3/@propertyDatums.4"
- order="3" parent="//@actions.23">
+ order="3" parent="//@actions.25">
<parameterDerivations>
<secondaryParameter isLoop="true" dataParameter="//@actions.2/@parameters.0"/>
</parameterDerivations>
@@ -298,7 +315,7 @@
<mapping href="Source2Target.qvtp.qvtias#m..Source2Target_qvtp_qvtias.cX_2_A2"/>
</actions>
<actions xsi:type="qvts:MappingAction" productions="//@datums.9 //@datums.3/@propertyDatums.0" requisites="//@datums.3 //@datums.3/@propertyDatums.3"
- order="2" parent="//@actions.23">
+ order="2" parent="//@actions.25">
<parameterDerivations>
<secondaryParameter isLoop="true" dataParameter="//@actions.3/@parameters.0"/>
</parameterDerivations>
@@ -311,7 +328,7 @@
<mapping href="Source2Target.qvtp.qvtias#m..Source2Target_qvtp_qvtias.cX_2_A1"/>
</actions>
<actions xsi:type="qvts:MappingAction" productions="//@datums.12 //@datums.11/@propertyDatums.0" requisites="//@datums.11" order="6"
- parent="//@actions.23">
+ parent="//@actions.25">
<parameterDerivations>
<secondaryParameter isLoop="true" dataParameter="//@actions.4/@parameters.0"/>
</parameterDerivations>
@@ -324,7 +341,7 @@
<mapping href="Source2Target.qvtp.qvtias#m..Source2Target_qvtp_qvtias.cY1_2_B"/>
</actions>
<actions xsi:type="qvts:MappingAction" productions="//@datums.14 //@datums.13/@propertyDatums.0" requisites="//@datums.13" order="7"
- parent="//@actions.23">
+ parent="//@actions.25">
<parameterDerivations>
<secondaryParameter isLoop="true" dataParameter="//@actions.5/@parameters.0"/>
</parameterDerivations>
@@ -337,7 +354,7 @@
<mapping href="Source2Target.qvtp.qvtias#m..Source2Target_qvtp_qvtias.cY2_2_C"/>
</actions>
<actions xsi:type="qvts:MappingAction" productions="//@datums.16 //@datums.15/@propertyDatums.1" requisites="//@datums.15 //@datums.15/@propertyDatums.0"
- order="8" parent="//@actions.23">
+ order="8" parent="//@actions.25">
<parameterDerivations>
<secondaryParameter isLoop="true" dataParameter="//@actions.6/@parameters.0"/>
</parameterDerivations>
@@ -350,7 +367,7 @@
<mapping href="Source2Target.qvtp.qvtias#m..Source2Target_qvtp_qvtias.cZ_2_D_0"/>
</actions>
<actions xsi:type="qvts:MappingAction" productions="//@datums.16 //@datums.15/@propertyDatums.1" requisites="//@datums.15 //@datums.15/@propertyDatums.0"
- order="9" parent="//@actions.23">
+ order="9" parent="//@actions.25">
<parameterDerivations>
<secondaryParameter isLoop="true" dataParameter="//@actions.7/@parameters.0"/>
</parameterDerivations>
@@ -363,7 +380,7 @@
<mapping href="Source2Target.qvtp.qvtias#m..Source2Target_qvtp_qvtias.cZ_2_D_1"/>
</actions>
<actions xsi:type="qvts:MappingAction" productions="//@datums.2/@propertyDatums.0 //@datums.6/@propertyDatums.1" requisites="//@datums.1 //@datums.1/@propertyDatums.0 //@datums.3/@propertyDatums.0 //@datums.1/@propertyDatums.1"
- order="5" parent="//@actions.23">
+ order="5" parent="//@actions.25">
<parameterDerivations>
<secondaryParameter isLoop="true" dataParameter="//@actions.8/@parameters.0"/>
</parameterDerivations>
@@ -373,7 +390,7 @@
<mapping href="Source2Target.qvtp.qvtias#m..Source2Target_qvtp_qvtias.uTRoot_ownedA"/>
</actions>
<actions xsi:type="qvts:MappingAction" productions="//@datums.8/@propertyDatums.0" requisites="//@datums.3 //@datums.3/@propertyDatums.1 //@datums.3/@propertyDatums.0 //@datums.3/@propertyDatums.3 //@datums.3/@propertyDatums.4"
- order="16" parent="//@actions.23">
+ order="16" parent="//@actions.25">
<parameterDerivations>
<secondaryParameter isLoop="true" dataParameter="//@actions.9/@parameters.0"/>
</parameterDerivations>
@@ -383,7 +400,7 @@
<mapping href="Source2Target.qvtp.qvtias#m..Source2Target_qvtp_qvtias.uA3_name"/>
</actions>
<actions xsi:type="qvts:MappingAction" productions="//@datums.8/@propertyDatums.1 //@datums.14/@propertyDatums.0" requisites="//@datums.3 //@datums.3/@propertyDatums.2 //@datums.13/@propertyDatums.0 //@datums.3/@propertyDatums.0 //@datums.3/@propertyDatums.3 //@datums.3/@propertyDatums.4"
- order="11" parent="//@actions.23">
+ order="11" parent="//@actions.25">
<parameterDerivations>
<secondaryParameter isLoop="true" dataParameter="//@actions.10/@parameters.0"/>
</parameterDerivations>
@@ -393,7 +410,7 @@
<mapping href="Source2Target.qvtp.qvtias#m..Source2Target_qvtp_qvtias.uA3_ownsC"/>
</actions>
<actions xsi:type="qvts:MappingAction" productions="//@datums.7/@propertyDatums.0" requisites="//@datums.3 //@datums.3/@propertyDatums.1 //@datums.3/@propertyDatums.0 //@datums.3/@propertyDatums.3 //@datums.3/@propertyDatums.4"
- order="15" parent="//@actions.23">
+ order="15" parent="//@actions.25">
<parameterDerivations>
<secondaryParameter isLoop="true" dataParameter="//@actions.11/@parameters.0"/>
</parameterDerivations>
@@ -403,7 +420,7 @@
<mapping href="Source2Target.qvtp.qvtias#m..Source2Target_qvtp_qvtias.uA2_name"/>
</actions>
<actions xsi:type="qvts:MappingAction" productions="//@datums.7/@propertyDatums.1 //@datums.14/@propertyDatums.0" requisites="//@datums.3 //@datums.3/@propertyDatums.2 //@datums.13/@propertyDatums.0 //@datums.3/@propertyDatums.0 //@datums.3/@propertyDatums.3 //@datums.3/@propertyDatums.4"
- order="10" parent="//@actions.23">
+ order="10" parent="//@actions.25">
<parameterDerivations>
<secondaryParameter isLoop="true" dataParameter="//@actions.12/@parameters.0"/>
</parameterDerivations>
@@ -413,7 +430,7 @@
<mapping href="Source2Target.qvtp.qvtias#m..Source2Target_qvtp_qvtias.uA2_ownsC"/>
</actions>
<actions xsi:type="qvts:MappingAction" productions="//@datums.9/@propertyDatums.0" requisites="//@datums.3 //@datums.3/@propertyDatums.1 //@datums.3/@propertyDatums.0 //@datums.3/@propertyDatums.3"
- order="13" parent="//@actions.23">
+ order="13" parent="//@actions.25">
<parameterDerivations>
<secondaryParameter isLoop="true" dataParameter="//@actions.13/@parameters.0"/>
</parameterDerivations>
@@ -423,7 +440,7 @@
<mapping href="Source2Target.qvtp.qvtias#m..Source2Target_qvtp_qvtias.uA1_name"/>
</actions>
<actions xsi:type="qvts:MappingAction" productions="//@datums.9/@propertyDatums.1 //@datums.12/@propertyDatums.0" requisites="//@datums.3 //@datums.3/@propertyDatums.2 //@datums.11/@propertyDatums.0 //@datums.3/@propertyDatums.0 //@datums.3/@propertyDatums.3"
- order="14" parent="//@actions.23">
+ order="14" parent="//@actions.25">
<parameterDerivations>
<secondaryParameter isLoop="true" dataParameter="//@actions.14/@parameters.0"/>
</parameterDerivations>
@@ -433,7 +450,7 @@
<mapping href="Source2Target.qvtp.qvtias#m..Source2Target_qvtp_qvtias.uA1_ownsB"/>
</actions>
<actions xsi:type="qvts:MappingAction" productions="//@datums.12/@propertyDatums.1 //@datums.16/@propertyDatums.3" requisites="//@datums.11 //@datums.15/@propertyDatums.1 //@datums.11/@propertyDatums.1 //@datums.11/@propertyDatums.0"
- order="17" parent="//@actions.23">
+ order="17" parent="//@actions.25">
<parameterDerivations>
<secondaryParameter isLoop="true" dataParameter="//@actions.15/@parameters.0"/>
</parameterDerivations>
@@ -443,7 +460,7 @@
<mapping href="Source2Target.qvtp.qvtias#m..Source2Target_qvtp_qvtias.uB_ownsD"/>
</actions>
<actions xsi:type="qvts:MappingAction" productions="//@datums.12/@propertyDatums.2" requisites="//@datums.11 //@datums.11/@propertyDatums.2 //@datums.11/@propertyDatums.0"
- order="18" parent="//@actions.23">
+ order="18" parent="//@actions.25">
<parameterDerivations>
<secondaryParameter isLoop="true" dataParameter="//@actions.16/@parameters.0"/>
</parameterDerivations>
@@ -453,7 +470,7 @@
<mapping href="Source2Target.qvtp.qvtias#m..Source2Target_qvtp_qvtias.uB_name"/>
</actions>
<actions xsi:type="qvts:MappingAction" productions="//@datums.14/@propertyDatums.1 //@datums.16/@propertyDatums.4" requisites="//@datums.13 //@datums.15/@propertyDatums.1 //@datums.13/@propertyDatums.1 //@datums.13/@propertyDatums.0"
- order="20" parent="//@actions.23">
+ order="20" parent="//@actions.25">
<parameterDerivations>
<secondaryParameter isLoop="true" dataParameter="//@actions.17/@parameters.0"/>
</parameterDerivations>
@@ -463,7 +480,7 @@
<mapping href="Source2Target.qvtp.qvtias#m..Source2Target_qvtp_qvtias.uC_ownsD"/>
</actions>
<actions xsi:type="qvts:MappingAction" productions="//@datums.14/@propertyDatums.2" requisites="//@datums.13 //@datums.13/@propertyDatums.2 //@datums.13/@propertyDatums.0"
- order="19" parent="//@actions.23">
+ order="19" parent="//@actions.25">
<parameterDerivations>
<secondaryParameter isLoop="true" dataParameter="//@actions.18/@parameters.0"/>
</parameterDerivations>
@@ -473,7 +490,7 @@
<mapping href="Source2Target.qvtp.qvtias#m..Source2Target_qvtp_qvtias.uC_name"/>
</actions>
<actions xsi:type="qvts:MappingAction" productions="//@datums.16/@propertyDatums.0 //@datums.6/@propertyDatums.2" requisites="//@datums.15 //@datums.15/@propertyDatums.0 //@datums.14/@propertyDatums.0 //@datums.13/@propertyDatums.0 //@datums.15/@propertyDatums.1"
- order="12" parent="//@actions.23">
+ order="12" parent="//@actions.25">
<parameterDerivations>
<secondaryParameter isLoop="true" dataParameter="//@actions.19/@parameters.0"/>
</parameterDerivations>
@@ -482,8 +499,8 @@
</parameters>
<mapping href="Source2Target.qvtp.qvtias#m..Source2Target_qvtp_qvtias.uD_0_toA"/>
</actions>
- <actions xsi:type="qvts:MappingAction" productions="//@datums.16/@propertyDatums.1 //@datums.14/@propertyDatums.3" requisites="//@datums.15 //@datums.15/@propertyDatums.0 //@datums.15/@propertyDatums.1 //@datums.15/@propertyDatums.2 //@datums.17/@propertyDatums.0 //@datums.18/@propertyDatums.0 //@datums.18/@propertyDatums.1 //@datums.5/@propertyDatums.0 //@datums.19/@propertyDatums.0 //@datums.2/@propertyDatums.0 //@datums.9/@propertyDatums.1 //@datums.7/@propertyDatums.1 //@datums.12/@propertyDatums.1 //@datums.14/@propertyDatums.1 //@datums.14/@propertyDatums.2"
- order="22" parent="//@actions.23">
+ <actions xsi:type="qvts:MappingAction" productions="//@datums.16/@propertyDatums.1 //@datums.14/@propertyDatums.3" requisites="//@datums.15 //@datums.15/@propertyDatums.0 //@datums.15/@propertyDatums.2 //@datums.18/@propertyDatums.0 //@datums.15/@propertyDatums.1"
+ order="24" parent="//@actions.25">
<parameterDerivations>
<secondaryParameter isLoop="true" dataParameter="//@actions.20/@parameters.0"/>
</parameterDerivations>
@@ -493,7 +510,7 @@
<mapping href="Source2Target.qvtp.qvtias#m..Source2Target_qvtp_qvtias.uD_0_refsC"/>
</actions>
<actions xsi:type="qvts:MappingAction" productions="//@datums.16/@propertyDatums.0" requisites="//@datums.15 //@datums.15/@propertyDatums.0 //@datums.12/@propertyDatums.0 //@datums.11/@propertyDatums.0 //@datums.15/@propertyDatums.1"
- order="23" parent="//@actions.23">
+ order="25" parent="//@actions.25">
<parameterDerivations>
<secondaryParameter isLoop="true" dataParameter="//@actions.21/@parameters.0"/>
</parameterDerivations>
@@ -502,8 +519,8 @@
</parameters>
<mapping href="Source2Target.qvtp.qvtias#m..Source2Target_qvtp_qvtias.uD_1_toA"/>
</actions>
- <actions xsi:type="qvts:MappingAction" productions="//@datums.16/@propertyDatums.2 //@datums.12/@propertyDatums.3" requisites="//@datums.15 //@datums.15/@propertyDatums.0 //@datums.15/@propertyDatums.1 //@datums.15/@propertyDatums.2 //@datums.17/@propertyDatums.0 //@datums.18/@propertyDatums.0 //@datums.18/@propertyDatums.1 //@datums.5/@propertyDatums.0 //@datums.19/@propertyDatums.0 //@datums.2/@propertyDatums.0 //@datums.9/@propertyDatums.1 //@datums.7/@propertyDatums.1 //@datums.12/@propertyDatums.1 //@datums.14/@propertyDatums.1 //@datums.12/@propertyDatums.2"
- order="21" parent="//@actions.23">
+ <actions xsi:type="qvts:MappingAction" productions="//@datums.16/@propertyDatums.2 //@datums.12/@propertyDatums.3" requisites="//@datums.15 //@datums.15/@propertyDatums.0 //@datums.15/@propertyDatums.2 //@datums.18/@propertyDatums.0 //@datums.15/@propertyDatums.1"
+ order="23" parent="//@actions.25">
<parameterDerivations>
<secondaryParameter isLoop="true" dataParameter="//@actions.22/@parameters.0"/>
</parameterDerivations>
@@ -512,5 +529,25 @@
</parameters>
<mapping href="Source2Target.qvtp.qvtias#m..Source2Target_qvtp_qvtias.uD_1_refsB"/>
</actions>
- <actions xsi:type="qvts:MappingAction" children="//@actions.0 //@actions.3 //@actions.2 //@actions.1 //@actions.8 //@actions.4 //@actions.5 //@actions.6 //@actions.7 //@actions.12 //@actions.10 //@actions.19 //@actions.13 //@actions.14 //@actions.11 //@actions.9 //@actions.15 //@actions.16 //@actions.18 //@actions.17 //@actions.22 //@actions.20 //@actions.21"/>
+ <actions xsi:type="qvts:MappingAction" productions="//@datums.17/@propertyDatums.0" requisites="//@datums.17 //@datums.17/@propertyDatums.0 //@datums.0/@propertyDatums.0 //@datums.17/@propertyDatums.1 //@datums.18/@propertyDatums.1 //@datums.19/@propertyDatums.0 //@datums.19/@propertyDatums.1 //@datums.5/@propertyDatums.0 //@datums.17/@propertyDatums.2 //@datums.2/@propertyDatums.0 //@datums.9/@propertyDatums.1 //@datums.7/@propertyDatums.1 //@datums.12/@propertyDatums.1 //@datums.14/@propertyDatums.1 //@datums.12/@propertyDatums.2"
+ order="21" parent="//@actions.25">
+ <parameterDerivations>
+ <secondaryParameter isLoop="true" dataParameter="//@actions.23/@parameters.0"/>
+ </parameterDerivations>
+ <parameters secondaryParameter="//@actions.23/@parameterDerivations.0/@secondaryParameter" datum="//@datums.17">
+ <variable href="Source2Target.qvtp.qvtias#qV..Source2Target_qvtp_qvtias.uPathElementCS_ast.leftCS.guard.pathElementCS"/>
+ </parameters>
+ <mapping href="Source2Target.qvtp.qvtias#m..Source2Target_qvtp_qvtias.uPathElementCS_ast"/>
+ </actions>
+ <actions xsi:type="qvts:MappingAction" productions="//@datums.18/@propertyDatums.0" requisites="//@datums.18 //@datums.17/@propertyDatums.0 //@datums.18/@propertyDatums.1"
+ order="22" parent="//@actions.25">
+ <parameterDerivations>
+ <secondaryParameter isLoop="true" dataParameter="//@actions.24/@parameters.0"/>
+ </parameterDerivations>
+ <parameters secondaryParameter="//@actions.24/@parameterDerivations.0/@secondaryParameter" datum="//@datums.18">
+ <variable href="Source2Target.qvtp.qvtias#qV..Source2Target_qvtp_qvtias.uPathNameCS_ast.leftCS.guard.pathNameCS"/>
+ </parameters>
+ <mapping href="Source2Target.qvtp.qvtias#m..Source2Target_qvtp_qvtias.uPathNameCS_ast"/>
+ </actions>
+ <actions xsi:type="qvts:MappingAction" children="//@actions.0 //@actions.3 //@actions.2 //@actions.1 //@actions.8 //@actions.4 //@actions.5 //@actions.6 //@actions.7 //@actions.12 //@actions.10 //@actions.19 //@actions.13 //@actions.14 //@actions.11 //@actions.9 //@actions.15 //@actions.16 //@actions.18 //@actions.17 //@actions.23 //@actions.24 //@actions.22 //@actions.20 //@actions.21"/>
</qvts:Schedule>
diff --git a/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example1/SourceMM1.ecore b/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example1/SourceMM1.ecore
index 9ef6a31ef..c81bbe8eb 100644
--- a/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example1/SourceMM1.ecore
+++ b/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example1/SourceMM1.ecore
@@ -25,14 +25,17 @@
<eStructuralFeatures xsi:type="ecore:EReference" name="ownedX" upperBound="-1"
eType="#//X" containment="true"/>
</eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="SElement">
+ <eClassifiers xsi:type="ecore:EClass" name="SElement" abstract="true">
<eStructuralFeatures xsi:type="ecore:EReference" name="ast" eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PathNameCS" eSuperTypes="#//SElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="path" lowerBound="1" upperBound="-1"
- eType="#//PathElementCS" containment="true"/>
+ eType="#//PathElementCS" containment="true" eOpposite="#//PathElementCS/pathName"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="context" eType="#//SElement"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="PathElementCS" eSuperTypes="#//SElement">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="pathName" eType="#//PathNameCS"
+ eOpposite="#//PathNameCS/path"/>
</eClassifiers>
</ecore:EPackage>
diff --git a/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example1/TargetLookup.ocl b/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example1/TargetLookup.ocl
index 2d2b4cb3c..460443265 100644
--- a/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example1/TargetLookup.ocl
+++ b/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example1/TargetLookup.ocl
@@ -49,6 +49,20 @@ package target
context Visitable
+def: _lookupNamedElements(env : env::Environment, path : source::PathElementCS, local : Boolean) : NamedElement[*] =
+ let foundNSs = env.namedElements->selectByKind(B)->select(name = path.name)
+ in if foundNSs->isEmpty() and not (env.parentEnv = null) and not local
+ then _lookupNamedElements(env.parentEnv, path, local)
+ else foundNSs->asSet()
+ endif
+
+def : _lookupNamedElement(path : source::PathElementCS, local : Boolean) : NamedElement[?] =
+ let foundNSs = _lookupNamedElements(env(), path, local)
+ in if foundNSs->isEmpty()
+ then null
+ else foundNSs->any(true) -- LookupVisitor will report ambiguous result
+ endif
+
def : _lookupNamespaces(env : env::Environment, path : source::PathElementCS, local : Boolean) : Namespace[*] =
let foundNS = env.namedElements->selectByKind(Namespace)->select(name = path.name)
in if foundNS->isEmpty() and not (env.parentEnv = null) and not local
@@ -69,60 +83,59 @@ def : lookupNamespace(pathSeq : OrderedSet(source::PathElementCS)) : Namespace[?
else lookupNamespace(pathSeq->subOrderedSet(1,pathSeq->size()-1))?._lookupNamespace(pathSeq->last(), true)
endif
-def: _lookupBs(env : env::Environment, path : source::PathElementCS, local : Boolean) : B[*] =
- let foundBs = env.namedElements->selectByKind(B)->select(name = path.name)
- in if foundBs->isEmpty() and not (env.parentEnv = null) and not local
- then _lookupBs(env.parentEnv, path, local)
- else foundBs->asSet()
- endif
-
-def : _lookupB(path : source::PathElementCS, local : Boolean) : B[?] =
- let foundBs = _lookupBs(env(), path, local)
- in if foundBs->isEmpty()
- then null
- else foundBs->any(true) -- LookupVisitor will report ambiguous result
- endif
-
-def : lookupB(pathSeq : OrderedSet(source::PathElementCS)) : B[?] =
- if pathSeq->size() = 1
- then _lookupB(pathSeq->first(), false)
- else lookupNamespace(pathSeq->subOrderedSet(1,pathSeq->size()-1))?._lookupB(pathSeq->last(), true)
- endif
-
-
-def: _lookupCs(env : env::Environment, path : source::PathElementCS, local : Boolean) : C[*] =
- let foundCs = env.namedElements->selectByKind(C)->select(name = path.name)
- in if foundCs->isEmpty() and not (env.parentEnv = null) and not local
- then _lookupCs(env.parentEnv, path, local)
- else foundCs->asSet()
- endif
-
-def : _lookupC(path : source::PathElementCS, local : Boolean) : C[?] =
- let foundCs = _lookupCs(env(), path, local)
- in if foundCs->isEmpty()
- then null
- else foundCs->any(true) -- LookupVisitor will report ambiguous result
- endif
-
-def : lookupC(pathSeq : OrderedSet(source::PathElementCS)) : C[?] =
- if pathSeq->size() = 1
- then _lookupC(pathSeq->first(), false)
- else lookupNamespace(pathSeq->subOrderedSet(1,pathSeq->size()-1))?._lookupC(pathSeq->last(), true)
- endif
-
-context D
-def : lookupB(z : source::Z) : B =
- if z.refers = null
- then null
- else lookupB(z.refers.path)
- endif
-
-def : lookupC(z : source::Z) : C =
- if z.refers = null
- then null
- else lookupC(z.refers.path)
- endif
-
+--def: _lookupBs(env : env::Environment, path : source::PathElementCS, local : Boolean) : B[*] =
+-- let foundBs = env.namedElements->selectByKind(B)->select(name = path.name)
+-- in if foundBs->isEmpty() and not (env.parentEnv = null) and not local
+-- then _lookupBs(env.parentEnv, path, local)
+-- else foundBs->asSet()
+-- endif
+--
+--def : _lookupB(path : source::PathElementCS, local : Boolean) : B[?] =
+-- let foundBs = _lookupBs(env(), path, local)
+-- in if foundBs->isEmpty()
+-- then null
+-- else foundBs->any(true) -- LookupVisitor will report ambiguous result
+-- endif
+--
+--def : lookupB(pathSeq : OrderedSet(source::PathElementCS)) : B[?] =
+-- if pathSeq->size() = 1
+-- then _lookupB(pathSeq->first(), false)
+-- else lookupNamespace(pathSeq->subOrderedSet(1,pathSeq->size()-1))?._lookupB(pathSeq->last(), true)
+-- endif
+--
+--
+--def: _lookupCs(env : env::Environment, path : source::PathElementCS, local : Boolean) : C[*] =
+-- let foundCs = env.namedElements->selectByKind(C)->select(name = path.name)
+-- in if foundCs->isEmpty() and not (env.parentEnv = null) and not local
+-- then _lookupCs(env.parentEnv, path, local)
+-- else foundCs->asSet()
+-- endif
+--
+--def : _lookupC(path : source::PathElementCS, local : Boolean) : C[?] =
+-- let foundCs = _lookupCs(env(), path, local)
+-- in if foundCs->isEmpty()
+-- then null
+-- else foundCs->any(true) -- LookupVisitor will report ambiguous result
+-- endif
+--
+--def : lookupC(pathSeq : OrderedSet(source::PathElementCS)) : C[?] =
+-- if pathSeq->size() = 1
+-- then _lookupC(pathSeq->first(), false)
+-- else lookupNamespace(pathSeq->subOrderedSet(1,pathSeq->size()-1))?._lookupC(pathSeq->last(), true)
+-- endif
+--
+--context D
+--def : lookupB(z : source::Z) : B =
+-- if z.refers = null
+-- then null
+-- else lookupB(z.refers.path)
+-- endif
+--
+--def : lookupC(z : source::Z) : C =
+-- if z.refers = null
+-- then null
+-- else lookupC(z.refers.path)
+-- endif
context TRoot
def : _env(child : ocl::OclElement) : env::Environment =
diff --git a/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example1/debug/Source2TargetDependencies.graphml b/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example1/debug/Source2TargetDependencies.graphml
index 0610ef533..7c0c1ee0e 100644
--- a/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example1/debug/Source2TargetDependencies.graphml
+++ b/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example1/debug/Source2TargetDependencies.graphml
@@ -1057,10 +1057,10 @@
<data key="d5"/>
<data key="d6">
<y:ShapeNode>
- <y:Geometry height="17.04" width="80.94" x="0.0" y="0.0"/>
+ <y:Geometry height="17.04" width="93.72" x="0.0" y="0.0"/>
<y:Fill color="#eee8d5" transparent="false"/>
- <y:BorderStyle color="#586e75" type="line" width="1.0"/>
- <y:NodeLabel textColor="#586e75">PathNameCS</y:NodeLabel>
+ <y:BorderStyle color="#268bd2" type="line" width="1.0"/>
+ <y:NodeLabel textColor="#268bd2">PathElementCS</y:NodeLabel>
<y:Shape type="rectangle"/>
</y:ShapeNode>
</data>
@@ -1069,16 +1069,16 @@
<data key="d5"/>
<data key="d6">
<y:ShapeNode>
- <y:Geometry height="34.08" width="80.94" x="0.0" y="0.0"/>
+ <y:Geometry height="34.08" width="93.72" x="0.0" y="0.0"/>
<y:Fill color="#eee8d5" transparent="false"/>
- <y:BorderStyle color="#586e75" type="line" width="1.0"/>
- <y:NodeLabel textColor="#586e75">PathNameCS
-.path</y:NodeLabel>
+ <y:BorderStyle color="#268bd2" type="line" width="1.0"/>
+ <y:NodeLabel textColor="#268bd2">PathElementCS
+.ast</y:NodeLabel>
<y:Shape type="rectangle"/>
</y:ShapeNode>
</data>
</node>
- <edge id="e32" source="n62" target="n0">
+ <edge id="e32" source="n63" target="n1">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#93a1a1" type="dotted" width="1.0"/>
@@ -1090,10 +1090,11 @@
<data key="d5"/>
<data key="d6">
<y:ShapeNode>
- <y:Geometry height="17.04" width="73.485" x="0.0" y="0.0"/>
+ <y:Geometry height="34.08" width="93.72" x="0.0" y="0.0"/>
<y:Fill color="#eee8d5" transparent="false"/>
- <y:BorderStyle color="#586e75" type="line" width="1.0"/>
- <y:NodeLabel textColor="#586e75">Environment</y:NodeLabel>
+ <y:BorderStyle color="#268bd2" type="line" width="1.0"/>
+ <y:NodeLabel textColor="#268bd2">PathElementCS
+.pathName</y:NodeLabel>
<y:Shape type="rectangle"/>
</y:ShapeNode>
</data>
@@ -1102,24 +1103,31 @@
<data key="d5"/>
<data key="d6">
<y:ShapeNode>
- <y:Geometry height="34.08" width="73.485" x="0.0" y="0.0"/>
+ <y:Geometry height="34.08" width="93.72" x="0.0" y="0.0"/>
<y:Fill color="#eee8d5" transparent="false"/>
- <y:BorderStyle color="#586e75" type="line" width="1.0"/>
- <y:NodeLabel textColor="#586e75">Environment
-.parentEnv</y:NodeLabel>
+ <y:BorderStyle color="#268bd2" type="line" width="1.0"/>
+ <y:NodeLabel textColor="#268bd2">PathElementCS
+.name</y:NodeLabel>
<y:Shape type="rectangle"/>
</y:ShapeNode>
</data>
</node>
+ <edge id="e33" source="n62" target="n0">
+ <data key="d9">
+ <y:PolyLineEdge>
+ <y:LineStyle color="#93a1a1" type="dotted" width="1.0"/>
+ <y:Arrows source="none" target="delta"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
<node id="n66">
<data key="d5"/>
<data key="d6">
<y:ShapeNode>
- <y:Geometry height="34.08" width="101.175" x="0.0" y="0.0"/>
+ <y:Geometry height="17.04" width="80.94" x="0.0" y="0.0"/>
<y:Fill color="#eee8d5" transparent="false"/>
- <y:BorderStyle color="#586e75" type="line" width="1.0"/>
- <y:NodeLabel textColor="#586e75">Environment
-.namedElements</y:NodeLabel>
+ <y:BorderStyle color="#268bd2" type="line" width="1.0"/>
+ <y:NodeLabel textColor="#268bd2">PathNameCS</y:NodeLabel>
<y:Shape type="rectangle"/>
</y:ShapeNode>
</data>
@@ -1128,28 +1136,37 @@
<data key="d5"/>
<data key="d6">
<y:ShapeNode>
- <y:Geometry height="17.04" width="93.72" x="0.0" y="0.0"/>
+ <y:Geometry height="34.08" width="80.94" x="0.0" y="0.0"/>
<y:Fill color="#eee8d5" transparent="false"/>
- <y:BorderStyle color="#586e75" type="line" width="1.0"/>
- <y:NodeLabel textColor="#586e75">PathElementCS</y:NodeLabel>
+ <y:BorderStyle color="#268bd2" type="line" width="1.0"/>
+ <y:NodeLabel textColor="#268bd2">PathNameCS
+.ast</y:NodeLabel>
<y:Shape type="rectangle"/>
</y:ShapeNode>
</data>
</node>
+ <edge id="e34" source="n67" target="n1">
+ <data key="d9">
+ <y:PolyLineEdge>
+ <y:LineStyle color="#93a1a1" type="dotted" width="1.0"/>
+ <y:Arrows source="none" target="delta"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
<node id="n68">
<data key="d5"/>
<data key="d6">
<y:ShapeNode>
- <y:Geometry height="34.08" width="93.72" x="0.0" y="0.0"/>
+ <y:Geometry height="34.08" width="80.94" x="0.0" y="0.0"/>
<y:Fill color="#eee8d5" transparent="false"/>
- <y:BorderStyle color="#586e75" type="line" width="1.0"/>
- <y:NodeLabel textColor="#586e75">PathElementCS
-.name</y:NodeLabel>
+ <y:BorderStyle color="#268bd2" type="line" width="1.0"/>
+ <y:NodeLabel textColor="#268bd2">PathNameCS
+.path</y:NodeLabel>
<y:Shape type="rectangle"/>
</y:ShapeNode>
</data>
</node>
- <edge id="e33" source="n67" target="n0">
+ <edge id="e35" source="n66" target="n0">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#93a1a1" type="dotted" width="1.0"/>
@@ -1161,6 +1178,44 @@
<data key="d5"/>
<data key="d6">
<y:ShapeNode>
+ <y:Geometry height="17.04" width="73.485" x="0.0" y="0.0"/>
+ <y:Fill color="#eee8d5" transparent="false"/>
+ <y:BorderStyle color="#586e75" type="line" width="1.0"/>
+ <y:NodeLabel textColor="#586e75">Environment</y:NodeLabel>
+ <y:Shape type="rectangle"/>
+ </y:ShapeNode>
+ </data>
+ </node>
+ <node id="n70">
+ <data key="d5"/>
+ <data key="d6">
+ <y:ShapeNode>
+ <y:Geometry height="34.08" width="73.485" x="0.0" y="0.0"/>
+ <y:Fill color="#eee8d5" transparent="false"/>
+ <y:BorderStyle color="#586e75" type="line" width="1.0"/>
+ <y:NodeLabel textColor="#586e75">Environment
+.parentEnv</y:NodeLabel>
+ <y:Shape type="rectangle"/>
+ </y:ShapeNode>
+ </data>
+ </node>
+ <node id="n71">
+ <data key="d5"/>
+ <data key="d6">
+ <y:ShapeNode>
+ <y:Geometry height="34.08" width="101.175" x="0.0" y="0.0"/>
+ <y:Fill color="#eee8d5" transparent="false"/>
+ <y:BorderStyle color="#586e75" type="line" width="1.0"/>
+ <y:NodeLabel textColor="#586e75">Environment
+.namedElements</y:NodeLabel>
+ <y:Shape type="rectangle"/>
+ </y:ShapeNode>
+ </data>
+ </node>
+ <node id="n72">
+ <data key="d5"/>
+ <data key="d6">
+ <y:ShapeNode>
<y:Geometry height="34.08" width="109.51" x="0.0" y="0.0"/>
<y:Fill color="#eee8d5" transparent="false"/>
<y:BorderStyle color="#cb4b16" type="line" width="1.0"/>
@@ -1170,7 +1225,7 @@
</y:ShapeNode>
</data>
</node>
- <edge id="e34" source="n69" target="n5">
+ <edge id="e36" source="n72" target="n5">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#657b83" type="line" width="1.0"/>
@@ -1178,7 +1233,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e35" source="n69" target="n4">
+ <edge id="e37" source="n72" target="n4">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#657b83" type="line" width="1.0"/>
@@ -1186,7 +1241,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e36" source="n2" target="n69">
+ <edge id="e38" source="n2" target="n72">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -1194,7 +1249,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <node id="n70">
+ <node id="n73">
<data key="d5"/>
<data key="d6">
<y:ShapeNode>
@@ -1207,7 +1262,7 @@
</y:ShapeNode>
</data>
</node>
- <edge id="e37" source="n70" target="n24">
+ <edge id="e39" source="n73" target="n24">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#657b83" type="line" width="1.0"/>
@@ -1215,7 +1270,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e38" source="n70" target="n8">
+ <edge id="e40" source="n73" target="n8">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#657b83" type="line" width="1.0"/>
@@ -1223,7 +1278,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e39" source="n7" target="n70">
+ <edge id="e41" source="n7" target="n73">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -1231,7 +1286,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e40" source="n11" target="n70">
+ <edge id="e42" source="n11" target="n73">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -1239,7 +1294,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e41" source="n12" target="n70">
+ <edge id="e43" source="n12" target="n73">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -1247,7 +1302,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <node id="n71">
+ <node id="n74">
<data key="d5"/>
<data key="d6">
<y:ShapeNode>
@@ -1260,7 +1315,7 @@
</y:ShapeNode>
</data>
</node>
- <edge id="e42" source="n71" target="n21">
+ <edge id="e44" source="n74" target="n21">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#657b83" type="line" width="1.0"/>
@@ -1268,7 +1323,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e43" source="n71" target="n8">
+ <edge id="e45" source="n74" target="n8">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#657b83" type="line" width="1.0"/>
@@ -1276,7 +1331,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e44" source="n7" target="n71">
+ <edge id="e46" source="n7" target="n74">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -1284,7 +1339,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e45" source="n11" target="n71">
+ <edge id="e47" source="n11" target="n74">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -1292,7 +1347,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e46" source="n12" target="n71">
+ <edge id="e48" source="n12" target="n74">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -1300,7 +1355,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <node id="n72">
+ <node id="n75">
<data key="d5"/>
<data key="d6">
<y:ShapeNode>
@@ -1313,7 +1368,7 @@
</y:ShapeNode>
</data>
</node>
- <edge id="e47" source="n72" target="n27">
+ <edge id="e49" source="n75" target="n27">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#657b83" type="line" width="1.0"/>
@@ -1321,7 +1376,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e48" source="n72" target="n8">
+ <edge id="e50" source="n75" target="n8">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#657b83" type="line" width="1.0"/>
@@ -1329,7 +1384,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e49" source="n7" target="n72">
+ <edge id="e51" source="n7" target="n75">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -1337,7 +1392,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e50" source="n11" target="n72">
+ <edge id="e52" source="n11" target="n75">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -1345,7 +1400,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <node id="n73">
+ <node id="n76">
<data key="d5"/>
<data key="d6">
<y:ShapeNode>
@@ -1358,7 +1413,7 @@
</y:ShapeNode>
</data>
</node>
- <edge id="e51" source="n73" target="n38">
+ <edge id="e53" source="n76" target="n38">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#657b83" type="line" width="1.0"/>
@@ -1366,7 +1421,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e52" source="n73" target="n35">
+ <edge id="e54" source="n76" target="n35">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#657b83" type="line" width="1.0"/>
@@ -1374,7 +1429,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e53" source="n34" target="n73">
+ <edge id="e55" source="n34" target="n76">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -1382,7 +1437,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <node id="n74">
+ <node id="n77">
<data key="d5"/>
<data key="d6">
<y:ShapeNode>
@@ -1395,7 +1450,7 @@
</y:ShapeNode>
</data>
</node>
- <edge id="e54" source="n74" target="n47">
+ <edge id="e56" source="n77" target="n47">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#657b83" type="line" width="1.0"/>
@@ -1403,7 +1458,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e55" source="n74" target="n44">
+ <edge id="e57" source="n77" target="n44">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#657b83" type="line" width="1.0"/>
@@ -1411,7 +1466,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e56" source="n43" target="n74">
+ <edge id="e58" source="n43" target="n77">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -1419,7 +1474,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <node id="n75">
+ <node id="n78">
<data key="d5"/>
<data key="d6">
<y:ShapeNode>
@@ -1432,7 +1487,7 @@
</y:ShapeNode>
</data>
</node>
- <edge id="e57" source="n75" target="n56">
+ <edge id="e59" source="n78" target="n56">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#657b83" type="line" width="1.0"/>
@@ -1440,7 +1495,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e58" source="n75" target="n54">
+ <edge id="e60" source="n78" target="n54">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#657b83" type="line" width="1.0"/>
@@ -1448,7 +1503,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e59" source="n52" target="n75">
+ <edge id="e61" source="n52" target="n78">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -1456,7 +1511,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e60" source="n53" target="n75">
+ <edge id="e62" source="n53" target="n78">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -1464,7 +1519,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <node id="n76">
+ <node id="n79">
<data key="d5"/>
<data key="d6">
<y:ShapeNode>
@@ -1477,7 +1532,7 @@
</y:ShapeNode>
</data>
</node>
- <edge id="e61" source="n76" target="n56">
+ <edge id="e63" source="n79" target="n56">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#657b83" type="line" width="1.0"/>
@@ -1485,7 +1540,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e62" source="n76" target="n54">
+ <edge id="e64" source="n79" target="n54">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#657b83" type="line" width="1.0"/>
@@ -1493,7 +1548,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e63" source="n52" target="n76">
+ <edge id="e65" source="n52" target="n79">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -1501,7 +1556,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e64" source="n53" target="n76">
+ <edge id="e66" source="n53" target="n79">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -1509,7 +1564,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <node id="n77">
+ <node id="n80">
<data key="d5"/>
<data key="d6">
<y:ShapeNode>
@@ -1522,7 +1577,7 @@
</y:ShapeNode>
</data>
</node>
- <edge id="e65" source="n77" target="n6">
+ <edge id="e67" source="n80" target="n6">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#657b83" type="line" width="1.0"/>
@@ -1530,7 +1585,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e66" source="n77" target="n19">
+ <edge id="e68" source="n80" target="n19">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#657b83" type="dashed" width="1.0"/>
@@ -1538,7 +1593,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e67" source="n2" target="n77">
+ <edge id="e69" source="n2" target="n80">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -1546,7 +1601,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e68" source="n3" target="n77">
+ <edge id="e70" source="n3" target="n80">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -1554,7 +1609,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e69" source="n8" target="n77">
+ <edge id="e71" source="n8" target="n80">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -1562,7 +1617,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e70" source="n4" target="n77">
+ <edge id="e72" source="n4" target="n80">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -1570,7 +1625,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <node id="n78">
+ <node id="n81">
<data key="d5"/>
<data key="d6">
<y:ShapeNode>
@@ -1583,7 +1638,7 @@
</y:ShapeNode>
</data>
</node>
- <edge id="e71" source="n78" target="n25">
+ <edge id="e73" source="n81" target="n25">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#657b83" type="line" width="1.0"/>
@@ -1591,7 +1646,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e72" source="n7" target="n78">
+ <edge id="e74" source="n7" target="n81">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -1599,7 +1654,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e73" source="n9" target="n78">
+ <edge id="e75" source="n9" target="n81">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -1607,7 +1662,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e74" source="n8" target="n78">
+ <edge id="e76" source="n8" target="n81">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -1615,7 +1670,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e75" source="n11" target="n78">
+ <edge id="e77" source="n11" target="n81">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -1623,7 +1678,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e76" source="n12" target="n78">
+ <edge id="e78" source="n12" target="n81">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -1631,7 +1686,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <node id="n79">
+ <node id="n82">
<data key="d5"/>
<data key="d6">
<y:ShapeNode>
@@ -1644,7 +1699,7 @@
</y:ShapeNode>
</data>
</node>
- <edge id="e77" source="n79" target="n26">
+ <edge id="e79" source="n82" target="n26">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#657b83" type="line" width="1.0"/>
@@ -1652,7 +1707,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e78" source="n79" target="n48">
+ <edge id="e80" source="n82" target="n48">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#657b83" type="line" width="1.0"/>
@@ -1660,7 +1715,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e79" source="n7" target="n79">
+ <edge id="e81" source="n7" target="n82">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -1668,7 +1723,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e80" source="n10" target="n79">
+ <edge id="e82" source="n10" target="n82">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -1676,7 +1731,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e81" source="n44" target="n79">
+ <edge id="e83" source="n44" target="n82">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -1684,7 +1739,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e82" source="n8" target="n79">
+ <edge id="e84" source="n8" target="n82">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -1692,7 +1747,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e83" source="n11" target="n79">
+ <edge id="e85" source="n11" target="n82">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -1700,7 +1755,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e84" source="n12" target="n79">
+ <edge id="e86" source="n12" target="n82">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -1708,7 +1763,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <node id="n80">
+ <node id="n83">
<data key="d5"/>
<data key="d6">
<y:ShapeNode>
@@ -1721,7 +1776,7 @@
</y:ShapeNode>
</data>
</node>
- <edge id="e85" source="n80" target="n22">
+ <edge id="e87" source="n83" target="n22">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#657b83" type="line" width="1.0"/>
@@ -1729,7 +1784,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e86" source="n7" target="n80">
+ <edge id="e88" source="n7" target="n83">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -1737,7 +1792,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e87" source="n9" target="n80">
+ <edge id="e89" source="n9" target="n83">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -1745,7 +1800,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e88" source="n8" target="n80">
+ <edge id="e90" source="n8" target="n83">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -1753,7 +1808,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e89" source="n11" target="n80">
+ <edge id="e91" source="n11" target="n83">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -1761,7 +1816,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e90" source="n12" target="n80">
+ <edge id="e92" source="n12" target="n83">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -1769,7 +1824,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <node id="n81">
+ <node id="n84">
<data key="d5"/>
<data key="d6">
<y:ShapeNode>
@@ -1782,7 +1837,7 @@
</y:ShapeNode>
</data>
</node>
- <edge id="e91" source="n81" target="n23">
+ <edge id="e93" source="n84" target="n23">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#657b83" type="line" width="1.0"/>
@@ -1790,7 +1845,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e92" source="n81" target="n48">
+ <edge id="e94" source="n84" target="n48">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#657b83" type="line" width="1.0"/>
@@ -1798,7 +1853,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e93" source="n7" target="n81">
+ <edge id="e95" source="n7" target="n84">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -1806,7 +1861,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e94" source="n10" target="n81">
+ <edge id="e96" source="n10" target="n84">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -1814,7 +1869,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e95" source="n44" target="n81">
+ <edge id="e97" source="n44" target="n84">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -1822,7 +1877,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e96" source="n8" target="n81">
+ <edge id="e98" source="n8" target="n84">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -1830,7 +1885,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e97" source="n11" target="n81">
+ <edge id="e99" source="n11" target="n84">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -1838,7 +1893,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e98" source="n12" target="n81">
+ <edge id="e100" source="n12" target="n84">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -1846,7 +1901,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <node id="n82">
+ <node id="n85">
<data key="d5"/>
<data key="d6">
<y:ShapeNode>
@@ -1859,7 +1914,7 @@
</y:ShapeNode>
</data>
</node>
- <edge id="e99" source="n82" target="n28">
+ <edge id="e101" source="n85" target="n28">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#657b83" type="line" width="1.0"/>
@@ -1867,7 +1922,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e100" source="n7" target="n82">
+ <edge id="e102" source="n7" target="n85">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -1875,7 +1930,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e101" source="n9" target="n82">
+ <edge id="e103" source="n9" target="n85">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -1883,7 +1938,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e102" source="n8" target="n82">
+ <edge id="e104" source="n8" target="n85">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -1891,7 +1946,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e103" source="n11" target="n82">
+ <edge id="e105" source="n11" target="n85">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -1899,7 +1954,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <node id="n83">
+ <node id="n86">
<data key="d5"/>
<data key="d6">
<y:ShapeNode>
@@ -1912,7 +1967,7 @@
</y:ShapeNode>
</data>
</node>
- <edge id="e104" source="n83" target="n29">
+ <edge id="e106" source="n86" target="n29">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#657b83" type="line" width="1.0"/>
@@ -1920,7 +1975,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e105" source="n83" target="n39">
+ <edge id="e107" source="n86" target="n39">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#657b83" type="line" width="1.0"/>
@@ -1928,7 +1983,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e106" source="n7" target="n83">
+ <edge id="e108" source="n7" target="n86">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -1936,7 +1991,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e107" source="n10" target="n83">
+ <edge id="e109" source="n10" target="n86">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -1944,7 +1999,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e108" source="n35" target="n83">
+ <edge id="e110" source="n35" target="n86">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -1952,7 +2007,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e109" source="n8" target="n83">
+ <edge id="e111" source="n8" target="n86">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -1960,7 +2015,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e110" source="n11" target="n83">
+ <edge id="e112" source="n11" target="n86">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -1968,7 +2023,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <node id="n84">
+ <node id="n87">
<data key="d5"/>
<data key="d6">
<y:ShapeNode>
@@ -1981,7 +2036,7 @@
</y:ShapeNode>
</data>
</node>
- <edge id="e111" source="n84" target="n40">
+ <edge id="e113" source="n87" target="n40">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#657b83" type="line" width="1.0"/>
@@ -1989,7 +2044,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e112" source="n84" target="n60">
+ <edge id="e114" source="n87" target="n60">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#657b83" type="line" width="1.0"/>
@@ -1997,7 +2052,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e113" source="n34" target="n84">
+ <edge id="e115" source="n34" target="n87">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -2005,7 +2060,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e114" source="n54" target="n84">
+ <edge id="e116" source="n54" target="n87">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -2013,7 +2068,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e115" source="n36" target="n84">
+ <edge id="e117" source="n36" target="n87">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -2021,7 +2076,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e116" source="n35" target="n84">
+ <edge id="e118" source="n35" target="n87">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -2029,7 +2084,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <node id="n85">
+ <node id="n88">
<data key="d5"/>
<data key="d6">
<y:ShapeNode>
@@ -2042,7 +2097,7 @@
</y:ShapeNode>
</data>
</node>
- <edge id="e117" source="n85" target="n41">
+ <edge id="e119" source="n88" target="n41">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#657b83" type="line" width="1.0"/>
@@ -2050,7 +2105,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e118" source="n34" target="n85">
+ <edge id="e120" source="n34" target="n88">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -2058,7 +2113,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e119" source="n37" target="n85">
+ <edge id="e121" source="n37" target="n88">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -2066,7 +2121,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e120" source="n35" target="n85">
+ <edge id="e122" source="n35" target="n88">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -2074,7 +2129,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <node id="n86">
+ <node id="n89">
<data key="d5"/>
<data key="d6">
<y:ShapeNode>
@@ -2087,7 +2142,7 @@
</y:ShapeNode>
</data>
</node>
- <edge id="e121" source="n86" target="n49">
+ <edge id="e123" source="n89" target="n49">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#657b83" type="line" width="1.0"/>
@@ -2095,7 +2150,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e122" source="n86" target="n61">
+ <edge id="e124" source="n89" target="n61">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#657b83" type="line" width="1.0"/>
@@ -2103,7 +2158,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e123" source="n43" target="n86">
+ <edge id="e125" source="n43" target="n89">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -2111,7 +2166,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e124" source="n54" target="n86">
+ <edge id="e126" source="n54" target="n89">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -2119,7 +2174,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e125" source="n45" target="n86">
+ <edge id="e127" source="n45" target="n89">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -2127,7 +2182,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e126" source="n44" target="n86">
+ <edge id="e128" source="n44" target="n89">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -2135,7 +2190,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <node id="n87">
+ <node id="n90">
<data key="d5"/>
<data key="d6">
<y:ShapeNode>
@@ -2148,7 +2203,7 @@
</y:ShapeNode>
</data>
</node>
- <edge id="e127" source="n87" target="n50">
+ <edge id="e129" source="n90" target="n50">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#657b83" type="line" width="1.0"/>
@@ -2156,7 +2211,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e128" source="n43" target="n87">
+ <edge id="e130" source="n43" target="n90">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -2164,7 +2219,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e129" source="n46" target="n87">
+ <edge id="e131" source="n46" target="n90">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -2172,7 +2227,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e130" source="n44" target="n87">
+ <edge id="e132" source="n44" target="n90">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -2180,7 +2235,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <node id="n88">
+ <node id="n91">
<data key="d5"/>
<data key="d6">
<y:ShapeNode>
@@ -2193,7 +2248,7 @@
</y:ShapeNode>
</data>
</node>
- <edge id="e131" source="n88" target="n57">
+ <edge id="e133" source="n91" target="n57">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#657b83" type="line" width="1.0"/>
@@ -2201,7 +2256,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e132" source="n88" target="n20">
+ <edge id="e134" source="n91" target="n20">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#657b83" type="dashed" width="1.0"/>
@@ -2209,7 +2264,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e133" source="n52" target="n88">
+ <edge id="e135" source="n52" target="n91">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -2217,7 +2272,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e134" source="n53" target="n88">
+ <edge id="e136" source="n53" target="n91">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -2225,7 +2280,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e135" source="n48" target="n88">
+ <edge id="e137" source="n48" target="n91">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -2233,7 +2288,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e136" source="n44" target="n88">
+ <edge id="e138" source="n44" target="n91">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -2241,7 +2296,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e137" source="n54" target="n88">
+ <edge id="e139" source="n54" target="n91">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -2249,7 +2304,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <node id="n89">
+ <node id="n92">
<data key="d5"/>
<data key="d6">
<y:ShapeNode>
@@ -2257,12 +2312,12 @@
<y:Fill color="#eee8d5" transparent="false"/>
<y:BorderStyle color="#cb4b16" type="line" width="1.0"/>
<y:NodeLabel textColor="#cb4b16">uD_0_refsC
-(22)</y:NodeLabel>
+(24)</y:NodeLabel>
<y:Shape type="hexagon"/>
</y:ShapeNode>
</data>
</node>
- <edge id="e138" source="n89" target="n58">
+ <edge id="e140" source="n92" target="n58">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#657b83" type="line" width="1.0"/>
@@ -2270,7 +2325,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e139" source="n89" target="n51">
+ <edge id="e141" source="n92" target="n51">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#657b83" type="dashed" width="1.0"/>
@@ -2278,7 +2333,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e140" source="n52" target="n89">
+ <edge id="e142" source="n52" target="n92">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -2286,7 +2341,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e141" source="n53" target="n89">
+ <edge id="e143" source="n53" target="n92">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -2294,7 +2349,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e142" source="n54" target="n89">
+ <edge id="e144" source="n55" target="n92">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -2302,7 +2357,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e143" source="n55" target="n89">
+ <edge id="e145" source="n67" target="n92">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -2310,7 +2365,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e144" source="n63" target="n89">
+ <edge id="e146" source="n54" target="n92">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -2318,15 +2373,28 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e145" source="n65" target="n89">
+ <node id="n93">
+ <data key="d5"/>
+ <data key="d6">
+ <y:ShapeNode>
+ <y:Geometry height="34.08" width="62.91" x="0.0" y="0.0"/>
+ <y:Fill color="#eee8d5" transparent="false"/>
+ <y:BorderStyle color="#cb4b16" type="line" width="1.0"/>
+ <y:NodeLabel textColor="#cb4b16">uD_1_toA
+(25)</y:NodeLabel>
+ <y:Shape type="hexagon"/>
+ </y:ShapeNode>
+ </data>
+ </node>
+ <edge id="e147" source="n93" target="n57">
<data key="d9">
<y:PolyLineEdge>
- <y:LineStyle color="#859900" type="line" width="1.0"/>
+ <y:LineStyle color="#657b83" type="line" width="1.0"/>
<y:Arrows source="none" target="standard"/>
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e146" source="n66" target="n89">
+ <edge id="e148" source="n52" target="n93">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -2334,7 +2402,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e147" source="n16" target="n89">
+ <edge id="e149" source="n53" target="n93">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -2342,7 +2410,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e148" source="n68" target="n89">
+ <edge id="e150" source="n39" target="n93">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -2350,7 +2418,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e149" source="n6" target="n89">
+ <edge id="e151" source="n35" target="n93">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -2358,7 +2426,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e150" source="n29" target="n89">
+ <edge id="e152" source="n54" target="n93">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -2366,7 +2434,36 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e151" source="n23" target="n89">
+ <node id="n94">
+ <data key="d5"/>
+ <data key="d6">
+ <y:ShapeNode>
+ <y:Geometry height="34.08" width="76.88999999999999" x="0.0" y="0.0"/>
+ <y:Fill color="#eee8d5" transparent="false"/>
+ <y:BorderStyle color="#cb4b16" type="line" width="1.0"/>
+ <y:NodeLabel textColor="#cb4b16">uD_1_refsB
+(23)</y:NodeLabel>
+ <y:Shape type="hexagon"/>
+ </y:ShapeNode>
+ </data>
+ </node>
+ <edge id="e153" source="n94" target="n59">
+ <data key="d9">
+ <y:PolyLineEdge>
+ <y:LineStyle color="#657b83" type="line" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e154" source="n94" target="n42">
+ <data key="d9">
+ <y:PolyLineEdge>
+ <y:LineStyle color="#657b83" type="dashed" width="1.0"/>
+ <y:Arrows source="none" target="standard"/>
+ </y:PolyLineEdge>
+ </data>
+ </edge>
+ <edge id="e155" source="n52" target="n94">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -2374,7 +2471,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e152" source="n40" target="n89">
+ <edge id="e156" source="n53" target="n94">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -2382,7 +2479,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e153" source="n49" target="n89">
+ <edge id="e157" source="n55" target="n94">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -2390,7 +2487,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e154" source="n41" target="n89">
+ <edge id="e158" source="n67" target="n94">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -2398,7 +2495,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e155" source="n50" target="n89">
+ <edge id="e159" source="n54" target="n94">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -2406,20 +2503,20 @@
</y:PolyLineEdge>
</data>
</edge>
- <node id="n90">
+ <node id="n95">
<data key="d5"/>
<data key="d6">
<y:ShapeNode>
- <y:Geometry height="34.08" width="62.91" x="0.0" y="0.0"/>
+ <y:Geometry height="34.08" width="138.635" x="0.0" y="0.0"/>
<y:Fill color="#eee8d5" transparent="false"/>
<y:BorderStyle color="#cb4b16" type="line" width="1.0"/>
- <y:NodeLabel textColor="#cb4b16">uD_1_toA
-(23)</y:NodeLabel>
+ <y:NodeLabel textColor="#cb4b16">uPathElementCS_ast
+(21)</y:NodeLabel>
<y:Shape type="hexagon"/>
</y:ShapeNode>
</data>
</node>
- <edge id="e156" source="n90" target="n57">
+ <edge id="e160" source="n95" target="n63">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#657b83" type="line" width="1.0"/>
@@ -2427,7 +2524,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e157" source="n52" target="n90">
+ <edge id="e161" source="n62" target="n95">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -2435,7 +2532,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e158" source="n53" target="n90">
+ <edge id="e162" source="n63" target="n95">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -2443,7 +2540,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e159" source="n39" target="n90">
+ <edge id="e163" source="n1" target="n95">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -2451,7 +2548,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e160" source="n35" target="n90">
+ <edge id="e164" source="n64" target="n95">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -2459,7 +2556,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e161" source="n54" target="n90">
+ <edge id="e165" source="n68" target="n95">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -2467,36 +2564,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <node id="n91">
- <data key="d5"/>
- <data key="d6">
- <y:ShapeNode>
- <y:Geometry height="34.08" width="76.88999999999999" x="0.0" y="0.0"/>
- <y:Fill color="#eee8d5" transparent="false"/>
- <y:BorderStyle color="#cb4b16" type="line" width="1.0"/>
- <y:NodeLabel textColor="#cb4b16">uD_1_refsB
-(21)</y:NodeLabel>
- <y:Shape type="hexagon"/>
- </y:ShapeNode>
- </data>
- </node>
- <edge id="e162" source="n91" target="n59">
- <data key="d9">
- <y:PolyLineEdge>
- <y:LineStyle color="#657b83" type="line" width="1.0"/>
- <y:Arrows source="none" target="standard"/>
- </y:PolyLineEdge>
- </data>
- </edge>
- <edge id="e163" source="n91" target="n42">
- <data key="d9">
- <y:PolyLineEdge>
- <y:LineStyle color="#657b83" type="dashed" width="1.0"/>
- <y:Arrows source="none" target="standard"/>
- </y:PolyLineEdge>
- </data>
- </edge>
- <edge id="e164" source="n52" target="n91">
+ <edge id="e166" source="n70" target="n95">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -2504,7 +2572,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e165" source="n53" target="n91">
+ <edge id="e167" source="n71" target="n95">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -2512,7 +2580,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e166" source="n54" target="n91">
+ <edge id="e168" source="n16" target="n95">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -2520,7 +2588,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e167" source="n55" target="n91">
+ <edge id="e169" source="n65" target="n95">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -2528,7 +2596,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e168" source="n63" target="n91">
+ <edge id="e170" source="n6" target="n95">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -2536,7 +2604,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e169" source="n65" target="n91">
+ <edge id="e171" source="n29" target="n95">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -2544,7 +2612,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e170" source="n66" target="n91">
+ <edge id="e172" source="n23" target="n95">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -2552,7 +2620,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e171" source="n16" target="n91">
+ <edge id="e173" source="n40" target="n95">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -2560,7 +2628,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e172" source="n68" target="n91">
+ <edge id="e174" source="n49" target="n95">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -2568,7 +2636,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e173" source="n6" target="n91">
+ <edge id="e175" source="n41" target="n95">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -2576,23 +2644,28 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e174" source="n29" target="n91">
- <data key="d9">
- <y:PolyLineEdge>
- <y:LineStyle color="#859900" type="line" width="1.0"/>
- <y:Arrows source="none" target="standard"/>
- </y:PolyLineEdge>
+ <node id="n96">
+ <data key="d5"/>
+ <data key="d6">
+ <y:ShapeNode>
+ <y:Geometry height="34.08" width="124.655" x="0.0" y="0.0"/>
+ <y:Fill color="#eee8d5" transparent="false"/>
+ <y:BorderStyle color="#cb4b16" type="line" width="1.0"/>
+ <y:NodeLabel textColor="#cb4b16">uPathNameCS_ast
+(22)</y:NodeLabel>
+ <y:Shape type="hexagon"/>
+ </y:ShapeNode>
</data>
- </edge>
- <edge id="e175" source="n23" target="n91">
+ </node>
+ <edge id="e176" source="n96" target="n67">
<data key="d9">
<y:PolyLineEdge>
- <y:LineStyle color="#859900" type="line" width="1.0"/>
+ <y:LineStyle color="#657b83" type="line" width="1.0"/>
<y:Arrows source="none" target="standard"/>
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e176" source="n40" target="n91">
+ <edge id="e177" source="n66" target="n96">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -2600,7 +2673,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e177" source="n49" target="n91">
+ <edge id="e178" source="n63" target="n96">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
@@ -2608,7 +2681,7 @@
</y:PolyLineEdge>
</data>
</edge>
- <edge id="e178" source="n41" target="n91">
+ <edge id="e179" source="n68" target="n96">
<data key="d9">
<y:PolyLineEdge>
<y:LineStyle color="#859900" type="line" width="1.0"/>
diff --git a/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example1/debug/Source2TargetSchedule_complete.graphml b/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example1/debug/Source2TargetSchedule_complete.graphml
index 3e1c67455..d105ec02a 100644
--- a/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example1/debug/Source2TargetSchedule_complete.graphml
+++ b/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example1/debug/Source2TargetSchedule_complete.graphml
@@ -107,21 +107,21 @@
<y:Shape type="rectangle"/>
</y:ShapeNode></graphml:data>
</graphml:node>
- <graphml:node id="PathNameCS">
+ <graphml:node id="PathElementCS">
<graphml:data key="d6"><y:ShapeNode>
- <y:NodeLabel>PathNameCS</y:NodeLabel>
+ <y:NodeLabel>PathElementCS</y:NodeLabel>
<y:Shape type="rectangle"/>
</y:ShapeNode></graphml:data>
</graphml:node>
- <graphml:node id="Environment">
+ <graphml:node id="PathNameCS">
<graphml:data key="d6"><y:ShapeNode>
- <y:NodeLabel>Environment</y:NodeLabel>
+ <y:NodeLabel>PathNameCS</y:NodeLabel>
<y:Shape type="rectangle"/>
</y:ShapeNode></graphml:data>
</graphml:node>
- <graphml:node id="PathElementCS">
+ <graphml:node id="Environment">
<graphml:data key="d6"><y:ShapeNode>
- <y:NodeLabel>PathElementCS</y:NodeLabel>
+ <y:NodeLabel>Environment</y:NodeLabel>
<y:Shape type="rectangle"/>
</y:ShapeNode></graphml:data>
</graphml:node>
@@ -395,6 +395,30 @@
<y:Shape type="rectangle"/>
</y:ShapeNode></graphml:data>
</graphml:node>
+ <graphml:node id="PathElementCS::ast">
+ <graphml:data key="d6"><y:ShapeNode>
+ <y:NodeLabel>PathElementCS::ast</y:NodeLabel>
+ <y:Shape type="rectangle"/>
+ </y:ShapeNode></graphml:data>
+ </graphml:node>
+ <graphml:node id="PathElementCS::pathName">
+ <graphml:data key="d6"><y:ShapeNode>
+ <y:NodeLabel>PathElementCS::pathName</y:NodeLabel>
+ <y:Shape type="rectangle"/>
+ </y:ShapeNode></graphml:data>
+ </graphml:node>
+ <graphml:node id="PathElementCS::name">
+ <graphml:data key="d6"><y:ShapeNode>
+ <y:NodeLabel>PathElementCS::name</y:NodeLabel>
+ <y:Shape type="rectangle"/>
+ </y:ShapeNode></graphml:data>
+ </graphml:node>
+ <graphml:node id="PathNameCS::ast">
+ <graphml:data key="d6"><y:ShapeNode>
+ <y:NodeLabel>PathNameCS::ast</y:NodeLabel>
+ <y:Shape type="rectangle"/>
+ </y:ShapeNode></graphml:data>
+ </graphml:node>
<graphml:node id="PathNameCS::path">
<graphml:data key="d6"><y:ShapeNode>
<y:NodeLabel>PathNameCS::path</y:NodeLabel>
@@ -413,12 +437,6 @@
<y:Shape type="rectangle"/>
</y:ShapeNode></graphml:data>
</graphml:node>
- <graphml:node id="PathElementCS::name">
- <graphml:data key="d6"><y:ShapeNode>
- <y:NodeLabel>PathElementCS::name</y:NodeLabel>
- <y:Shape type="rectangle"/>
- </y:ShapeNode></graphml:data>
- </graphml:node>
<graphml:node id="cSRoot_2_TRoot (1)">
<graphml:data key="d6"><y:ShapeNode>
<y:NodeLabel>cSRoot_2_TRoot (1)</y:NodeLabel>
@@ -539,21 +557,33 @@
<y:Shape type="ellipse"/>
</y:ShapeNode></graphml:data>
</graphml:node>
- <graphml:node id="uD_0_refsC (22)">
+ <graphml:node id="uD_0_refsC (24)">
+ <graphml:data key="d6"><y:ShapeNode>
+ <y:NodeLabel>uD_0_refsC (24)</y:NodeLabel>
+ <y:Shape type="ellipse"/>
+ </y:ShapeNode></graphml:data>
+ </graphml:node>
+ <graphml:node id="uD_1_toA (25)">
+ <graphml:data key="d6"><y:ShapeNode>
+ <y:NodeLabel>uD_1_toA (25)</y:NodeLabel>
+ <y:Shape type="ellipse"/>
+ </y:ShapeNode></graphml:data>
+ </graphml:node>
+ <graphml:node id="uD_1_refsB (23)">
<graphml:data key="d6"><y:ShapeNode>
- <y:NodeLabel>uD_0_refsC (22)</y:NodeLabel>
+ <y:NodeLabel>uD_1_refsB (23)</y:NodeLabel>
<y:Shape type="ellipse"/>
</y:ShapeNode></graphml:data>
</graphml:node>
- <graphml:node id="uD_1_toA (23)">
+ <graphml:node id="uPathElementCS_ast (21)">
<graphml:data key="d6"><y:ShapeNode>
- <y:NodeLabel>uD_1_toA (23)</y:NodeLabel>
+ <y:NodeLabel>uPathElementCS_ast (21)</y:NodeLabel>
<y:Shape type="ellipse"/>
</y:ShapeNode></graphml:data>
</graphml:node>
- <graphml:node id="uD_1_refsB (21)">
+ <graphml:node id="uPathNameCS_ast (22)">
<graphml:data key="d6"><y:ShapeNode>
- <y:NodeLabel>uD_1_refsB (21)</y:NodeLabel>
+ <y:NodeLabel>uPathNameCS_ast (22)</y:NodeLabel>
<y:Shape type="ellipse"/>
</y:ShapeNode></graphml:data>
</graphml:node>
@@ -641,13 +671,13 @@
<y:Arrows source="none" target="standard"/>
</y:PolyLineEdge></graphml:data>
</graphml:edge>
- <graphml:edge source="PathNameCS" target="SElement">
+ <graphml:edge source="PathElementCS" target="SElement">
<graphml:data key="d9"><y:PolyLineEdge>
<y:LineStyle type="dotted"/>
<y:Arrows source="none" target="standard"/>
</y:PolyLineEdge></graphml:data>
</graphml:edge>
- <graphml:edge source="PathElementCS" target="SElement">
+ <graphml:edge source="PathNameCS" target="SElement">
<graphml:data key="d9"><y:PolyLineEdge>
<y:LineStyle type="dotted"/>
<y:Arrows source="none" target="standard"/>
@@ -815,6 +845,18 @@
<y:Arrows source="none" target="standard"/>
</y:PolyLineEdge></graphml:data>
</graphml:edge>
+ <graphml:edge source="PathElementCS::ast" target="SElement::ast">
+ <graphml:data key="d9"><y:PolyLineEdge>
+ <y:LineStyle type="dotted"/>
+ <y:Arrows source="none" target="standard"/>
+ </y:PolyLineEdge></graphml:data>
+ </graphml:edge>
+ <graphml:edge source="PathNameCS::ast" target="SElement::ast">
+ <graphml:data key="d9"><y:PolyLineEdge>
+ <y:LineStyle type="dotted"/>
+ <y:Arrows source="none" target="standard"/>
+ </y:PolyLineEdge></graphml:data>
+ </graphml:edge>
<graphml:edge source="SRoot" target="cSRoot_2_TRoot (1)"/>
<graphml:edge source="cSRoot_2_TRoot (1)" target="TRoot"/>
<graphml:edge source="cSRoot_2_TRoot (1)" target="SRoot::ast"/>
@@ -919,46 +961,45 @@
<graphml:edge source="Z::ast" target="uD_0_toA (12)"/>
<graphml:edge source="uD_0_toA (12)" target="D::toA"/>
<graphml:edge source="uD_0_toA (12)" target="A::D"/>
- <graphml:edge source="Z" target="uD_0_refsC (22)"/>
- <graphml:edge source="Z::toY" target="uD_0_refsC (22)"/>
- <graphml:edge source="Z::ast" target="uD_0_refsC (22)"/>
- <graphml:edge source="Z::refers" target="uD_0_refsC (22)"/>
- <graphml:edge source="PathNameCS::path" target="uD_0_refsC (22)"/>
- <graphml:edge source="Environment::parentEnv" target="uD_0_refsC (22)"/>
- <graphml:edge source="Environment::namedElements" target="uD_0_refsC (22)"/>
- <graphml:edge source="Namespace::name" target="uD_0_refsC (22)"/>
- <graphml:edge source="PathElementCS::name" target="uD_0_refsC (22)"/>
- <graphml:edge source="TRoot::ownedA" target="uD_0_refsC (22)"/>
- <graphml:edge source="A1::ownsB" target="uD_0_refsC (22)"/>
- <graphml:edge source="A2::ownsC" target="uD_0_refsC (22)"/>
- <graphml:edge source="B::ownsD" target="uD_0_refsC (22)"/>
- <graphml:edge source="C::ownsD" target="uD_0_refsC (22)"/>
- <graphml:edge source="B::name" target="uD_0_refsC (22)"/>
- <graphml:edge source="C::name" target="uD_0_refsC (22)"/>
- <graphml:edge source="uD_0_refsC (22)" target="D::refsC"/>
- <graphml:edge source="uD_0_refsC (22)" target="C::D"/>
- <graphml:edge source="Z" target="uD_1_toA (23)"/>
- <graphml:edge source="Z::toY" target="uD_1_toA (23)"/>
- <graphml:edge source="B::toA1" target="uD_1_toA (23)"/>
- <graphml:edge source="Y1::ast" target="uD_1_toA (23)"/>
- <graphml:edge source="Z::ast" target="uD_1_toA (23)"/>
- <graphml:edge source="uD_1_toA (23)" target="D::toA"/>
- <graphml:edge source="Z" target="uD_1_refsB (21)"/>
- <graphml:edge source="Z::toY" target="uD_1_refsB (21)"/>
- <graphml:edge source="Z::ast" target="uD_1_refsB (21)"/>
- <graphml:edge source="Z::refers" target="uD_1_refsB (21)"/>
- <graphml:edge source="PathNameCS::path" target="uD_1_refsB (21)"/>
- <graphml:edge source="Environment::parentEnv" target="uD_1_refsB (21)"/>
- <graphml:edge source="Environment::namedElements" target="uD_1_refsB (21)"/>
- <graphml:edge source="Namespace::name" target="uD_1_refsB (21)"/>
- <graphml:edge source="PathElementCS::name" target="uD_1_refsB (21)"/>
- <graphml:edge source="TRoot::ownedA" target="uD_1_refsB (21)"/>
- <graphml:edge source="A1::ownsB" target="uD_1_refsB (21)"/>
- <graphml:edge source="A2::ownsC" target="uD_1_refsB (21)"/>
- <graphml:edge source="B::ownsD" target="uD_1_refsB (21)"/>
- <graphml:edge source="C::ownsD" target="uD_1_refsB (21)"/>
- <graphml:edge source="B::name" target="uD_1_refsB (21)"/>
- <graphml:edge source="uD_1_refsB (21)" target="D::refsB"/>
- <graphml:edge source="uD_1_refsB (21)" target="B::D"/>
+ <graphml:edge source="Z" target="uD_0_refsC (24)"/>
+ <graphml:edge source="Z::toY" target="uD_0_refsC (24)"/>
+ <graphml:edge source="Z::refers" target="uD_0_refsC (24)"/>
+ <graphml:edge source="PathNameCS::ast" target="uD_0_refsC (24)"/>
+ <graphml:edge source="Z::ast" target="uD_0_refsC (24)"/>
+ <graphml:edge source="uD_0_refsC (24)" target="D::refsC"/>
+ <graphml:edge source="uD_0_refsC (24)" target="C::D"/>
+ <graphml:edge source="Z" target="uD_1_toA (25)"/>
+ <graphml:edge source="Z::toY" target="uD_1_toA (25)"/>
+ <graphml:edge source="B::toA1" target="uD_1_toA (25)"/>
+ <graphml:edge source="Y1::ast" target="uD_1_toA (25)"/>
+ <graphml:edge source="Z::ast" target="uD_1_toA (25)"/>
+ <graphml:edge source="uD_1_toA (25)" target="D::toA"/>
+ <graphml:edge source="Z" target="uD_1_refsB (23)"/>
+ <graphml:edge source="Z::toY" target="uD_1_refsB (23)"/>
+ <graphml:edge source="Z::refers" target="uD_1_refsB (23)"/>
+ <graphml:edge source="PathNameCS::ast" target="uD_1_refsB (23)"/>
+ <graphml:edge source="Z::ast" target="uD_1_refsB (23)"/>
+ <graphml:edge source="uD_1_refsB (23)" target="D::refsB"/>
+ <graphml:edge source="uD_1_refsB (23)" target="B::D"/>
+ <graphml:edge source="PathElementCS" target="uPathElementCS_ast (21)"/>
+ <graphml:edge source="PathElementCS::ast" target="uPathElementCS_ast (21)"/>
+ <graphml:edge source="SElement::ast" target="uPathElementCS_ast (21)"/>
+ <graphml:edge source="PathElementCS::pathName" target="uPathElementCS_ast (21)"/>
+ <graphml:edge source="PathNameCS::path" target="uPathElementCS_ast (21)"/>
+ <graphml:edge source="Environment::parentEnv" target="uPathElementCS_ast (21)"/>
+ <graphml:edge source="Environment::namedElements" target="uPathElementCS_ast (21)"/>
+ <graphml:edge source="Namespace::name" target="uPathElementCS_ast (21)"/>
+ <graphml:edge source="PathElementCS::name" target="uPathElementCS_ast (21)"/>
+ <graphml:edge source="TRoot::ownedA" target="uPathElementCS_ast (21)"/>
+ <graphml:edge source="A1::ownsB" target="uPathElementCS_ast (21)"/>
+ <graphml:edge source="A2::ownsC" target="uPathElementCS_ast (21)"/>
+ <graphml:edge source="B::ownsD" target="uPathElementCS_ast (21)"/>
+ <graphml:edge source="C::ownsD" target="uPathElementCS_ast (21)"/>
+ <graphml:edge source="B::name" target="uPathElementCS_ast (21)"/>
+ <graphml:edge source="uPathElementCS_ast (21)" target="PathElementCS::ast"/>
+ <graphml:edge source="PathNameCS" target="uPathNameCS_ast (22)"/>
+ <graphml:edge source="PathElementCS::ast" target="uPathNameCS_ast (22)"/>
+ <graphml:edge source="PathNameCS::path" target="uPathNameCS_ast (22)"/>
+ <graphml:edge source="uPathNameCS_ast (22)" target="PathNameCS::ast"/>
</graphml:graph>
</graphml:graphml> \ No newline at end of file
diff --git a/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example1/debug/Source2TargetSchedule_pruned.graphml b/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example1/debug/Source2TargetSchedule_pruned.graphml
index 332dd803e..3007ac194 100644
--- a/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example1/debug/Source2TargetSchedule_pruned.graphml
+++ b/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example1/debug/Source2TargetSchedule_pruned.graphml
@@ -5,6 +5,12 @@
<graphml:key for="node" id="d6" yfiles.type="nodegraphics"/>
<graphml:key for="edge" id="d9" yfiles.type="edgegraphics"/>
<graphml:graph edgedefault="directed" id="Graph">
+ <graphml:node id="SElement">
+ <graphml:data key="d6"><y:ShapeNode>
+ <y:NodeLabel>SElement</y:NodeLabel>
+ <y:Shape type="rectangle"/>
+ </y:ShapeNode></graphml:data>
+ </graphml:node>
<graphml:node id="SRoot">
<graphml:data key="d6"><y:ShapeNode>
<y:NodeLabel>SRoot</y:NodeLabel>
@@ -53,6 +59,12 @@
<y:Shape type="rectangle"/>
</y:ShapeNode></graphml:data>
</graphml:node>
+ <graphml:node id="Y">
+ <graphml:data key="d6"><y:ShapeNode>
+ <y:NodeLabel>Y</y:NodeLabel>
+ <y:Shape type="rectangle"/>
+ </y:ShapeNode></graphml:data>
+ </graphml:node>
<graphml:node id="Y1">
<graphml:data key="d6"><y:ShapeNode>
<y:NodeLabel>Y1</y:NodeLabel>
@@ -89,6 +101,12 @@
<y:Shape type="rectangle"/>
</y:ShapeNode></graphml:data>
</graphml:node>
+ <graphml:node id="PathElementCS">
+ <graphml:data key="d6"><y:ShapeNode>
+ <y:NodeLabel>PathElementCS</y:NodeLabel>
+ <y:Shape type="rectangle"/>
+ </y:ShapeNode></graphml:data>
+ </graphml:node>
<graphml:node id="PathNameCS">
<graphml:data key="d6"><y:ShapeNode>
<y:NodeLabel>PathNameCS</y:NodeLabel>
@@ -101,9 +119,9 @@
<y:Shape type="rectangle"/>
</y:ShapeNode></graphml:data>
</graphml:node>
- <graphml:node id="PathElementCS">
+ <graphml:node id="SElement::ast">
<graphml:data key="d6"><y:ShapeNode>
- <y:NodeLabel>PathElementCS</y:NodeLabel>
+ <y:NodeLabel>SElement::ast</y:NodeLabel>
<y:Shape type="rectangle"/>
</y:ShapeNode></graphml:data>
</graphml:node>
@@ -215,6 +233,12 @@
<y:Shape type="rectangle"/>
</y:ShapeNode></graphml:data>
</graphml:node>
+ <graphml:node id="Y::ast">
+ <graphml:data key="d6"><y:ShapeNode>
+ <y:NodeLabel>Y::ast</y:NodeLabel>
+ <y:Shape type="rectangle"/>
+ </y:ShapeNode></graphml:data>
+ </graphml:node>
<graphml:node id="Y1::ast">
<graphml:data key="d6"><y:ShapeNode>
<y:NodeLabel>Y1::ast</y:NodeLabel>
@@ -347,6 +371,30 @@
<y:Shape type="rectangle"/>
</y:ShapeNode></graphml:data>
</graphml:node>
+ <graphml:node id="PathElementCS::ast">
+ <graphml:data key="d6"><y:ShapeNode>
+ <y:NodeLabel>PathElementCS::ast</y:NodeLabel>
+ <y:Shape type="rectangle"/>
+ </y:ShapeNode></graphml:data>
+ </graphml:node>
+ <graphml:node id="PathElementCS::pathName">
+ <graphml:data key="d6"><y:ShapeNode>
+ <y:NodeLabel>PathElementCS::pathName</y:NodeLabel>
+ <y:Shape type="rectangle"/>
+ </y:ShapeNode></graphml:data>
+ </graphml:node>
+ <graphml:node id="PathElementCS::name">
+ <graphml:data key="d6"><y:ShapeNode>
+ <y:NodeLabel>PathElementCS::name</y:NodeLabel>
+ <y:Shape type="rectangle"/>
+ </y:ShapeNode></graphml:data>
+ </graphml:node>
+ <graphml:node id="PathNameCS::ast">
+ <graphml:data key="d6"><y:ShapeNode>
+ <y:NodeLabel>PathNameCS::ast</y:NodeLabel>
+ <y:Shape type="rectangle"/>
+ </y:ShapeNode></graphml:data>
+ </graphml:node>
<graphml:node id="PathNameCS::path">
<graphml:data key="d6"><y:ShapeNode>
<y:NodeLabel>PathNameCS::path</y:NodeLabel>
@@ -365,12 +413,6 @@
<y:Shape type="rectangle"/>
</y:ShapeNode></graphml:data>
</graphml:node>
- <graphml:node id="PathElementCS::name">
- <graphml:data key="d6"><y:ShapeNode>
- <y:NodeLabel>PathElementCS::name</y:NodeLabel>
- <y:Shape type="rectangle"/>
- </y:ShapeNode></graphml:data>
- </graphml:node>
<graphml:node id="cSRoot_2_TRoot (1)">
<graphml:data key="d6"><y:ShapeNode>
<y:NodeLabel>cSRoot_2_TRoot (1)</y:NodeLabel>
@@ -491,24 +533,48 @@
<y:Shape type="ellipse"/>
</y:ShapeNode></graphml:data>
</graphml:node>
- <graphml:node id="uD_0_refsC (22)">
+ <graphml:node id="uD_0_refsC (24)">
+ <graphml:data key="d6"><y:ShapeNode>
+ <y:NodeLabel>uD_0_refsC (24)</y:NodeLabel>
+ <y:Shape type="ellipse"/>
+ </y:ShapeNode></graphml:data>
+ </graphml:node>
+ <graphml:node id="uD_1_toA (25)">
<graphml:data key="d6"><y:ShapeNode>
- <y:NodeLabel>uD_0_refsC (22)</y:NodeLabel>
+ <y:NodeLabel>uD_1_toA (25)</y:NodeLabel>
<y:Shape type="ellipse"/>
</y:ShapeNode></graphml:data>
</graphml:node>
- <graphml:node id="uD_1_toA (23)">
+ <graphml:node id="uD_1_refsB (23)">
<graphml:data key="d6"><y:ShapeNode>
- <y:NodeLabel>uD_1_toA (23)</y:NodeLabel>
+ <y:NodeLabel>uD_1_refsB (23)</y:NodeLabel>
<y:Shape type="ellipse"/>
</y:ShapeNode></graphml:data>
</graphml:node>
- <graphml:node id="uD_1_refsB (21)">
+ <graphml:node id="uPathElementCS_ast (21)">
<graphml:data key="d6"><y:ShapeNode>
- <y:NodeLabel>uD_1_refsB (21)</y:NodeLabel>
+ <y:NodeLabel>uPathElementCS_ast (21)</y:NodeLabel>
<y:Shape type="ellipse"/>
</y:ShapeNode></graphml:data>
</graphml:node>
+ <graphml:node id="uPathNameCS_ast (22)">
+ <graphml:data key="d6"><y:ShapeNode>
+ <y:NodeLabel>uPathNameCS_ast (22)</y:NodeLabel>
+ <y:Shape type="ellipse"/>
+ </y:ShapeNode></graphml:data>
+ </graphml:node>
+ <graphml:edge source="SRoot" target="SElement">
+ <graphml:data key="d9"><y:PolyLineEdge>
+ <y:LineStyle type="dotted"/>
+ <y:Arrows source="none" target="standard"/>
+ </y:PolyLineEdge></graphml:data>
+ </graphml:edge>
+ <graphml:edge source="X" target="SElement">
+ <graphml:data key="d9"><y:PolyLineEdge>
+ <y:LineStyle type="dotted"/>
+ <y:Arrows source="none" target="standard"/>
+ </y:PolyLineEdge></graphml:data>
+ </graphml:edge>
<graphml:edge source="A" target="Namespace">
<graphml:data key="d9"><y:PolyLineEdge>
<y:LineStyle type="dotted"/>
@@ -533,24 +599,72 @@
<y:Arrows source="none" target="standard"/>
</y:PolyLineEdge></graphml:data>
</graphml:edge>
+ <graphml:edge source="Y" target="SElement">
+ <graphml:data key="d9"><y:PolyLineEdge>
+ <y:LineStyle type="dotted"/>
+ <y:Arrows source="none" target="standard"/>
+ </y:PolyLineEdge></graphml:data>
+ </graphml:edge>
+ <graphml:edge source="Y1" target="Y">
+ <graphml:data key="d9"><y:PolyLineEdge>
+ <y:LineStyle type="dotted"/>
+ <y:Arrows source="none" target="standard"/>
+ </y:PolyLineEdge></graphml:data>
+ </graphml:edge>
<graphml:edge source="B" target="Namespace">
<graphml:data key="d9"><y:PolyLineEdge>
<y:LineStyle type="dotted"/>
<y:Arrows source="none" target="standard"/>
</y:PolyLineEdge></graphml:data>
</graphml:edge>
+ <graphml:edge source="Y2" target="Y">
+ <graphml:data key="d9"><y:PolyLineEdge>
+ <y:LineStyle type="dotted"/>
+ <y:Arrows source="none" target="standard"/>
+ </y:PolyLineEdge></graphml:data>
+ </graphml:edge>
<graphml:edge source="C" target="Namespace">
<graphml:data key="d9"><y:PolyLineEdge>
<y:LineStyle type="dotted"/>
<y:Arrows source="none" target="standard"/>
</y:PolyLineEdge></graphml:data>
</graphml:edge>
+ <graphml:edge source="Z" target="SElement">
+ <graphml:data key="d9"><y:PolyLineEdge>
+ <y:LineStyle type="dotted"/>
+ <y:Arrows source="none" target="standard"/>
+ </y:PolyLineEdge></graphml:data>
+ </graphml:edge>
+ <graphml:edge source="PathElementCS" target="SElement">
+ <graphml:data key="d9"><y:PolyLineEdge>
+ <y:LineStyle type="dotted"/>
+ <y:Arrows source="none" target="standard"/>
+ </y:PolyLineEdge></graphml:data>
+ </graphml:edge>
+ <graphml:edge source="PathNameCS" target="SElement">
+ <graphml:data key="d9"><y:PolyLineEdge>
+ <y:LineStyle type="dotted"/>
+ <y:Arrows source="none" target="standard"/>
+ </y:PolyLineEdge></graphml:data>
+ </graphml:edge>
+ <graphml:edge source="SRoot::ast" target="SElement::ast">
+ <graphml:data key="d9"><y:PolyLineEdge>
+ <y:LineStyle type="dotted"/>
+ <y:Arrows source="none" target="standard"/>
+ </y:PolyLineEdge></graphml:data>
+ </graphml:edge>
<graphml:edge source="TRoot::ownedA" target="A::TRoot">
<graphml:data key="d9"><y:PolyLineEdge>
<y:LineStyle type="dashed"/>
<y:Arrows source="none" target="standard"/>
</y:PolyLineEdge></graphml:data>
</graphml:edge>
+ <graphml:edge source="X::ast" target="SElement::ast">
+ <graphml:data key="d9"><y:PolyLineEdge>
+ <y:LineStyle type="dotted"/>
+ <y:Arrows source="none" target="standard"/>
+ </y:PolyLineEdge></graphml:data>
+ </graphml:edge>
<graphml:edge source="A::name" target="Namespace::name">
<graphml:data key="d9"><y:PolyLineEdge>
<y:LineStyle type="dotted"/>
@@ -599,6 +713,18 @@
<y:Arrows source="none" target="standard"/>
</y:PolyLineEdge></graphml:data>
</graphml:edge>
+ <graphml:edge source="Y::ast" target="SElement::ast">
+ <graphml:data key="d9"><y:PolyLineEdge>
+ <y:LineStyle type="dotted"/>
+ <y:Arrows source="none" target="standard"/>
+ </y:PolyLineEdge></graphml:data>
+ </graphml:edge>
+ <graphml:edge source="Y1::ast" target="Y::ast">
+ <graphml:data key="d9"><y:PolyLineEdge>
+ <y:LineStyle type="dotted"/>
+ <y:Arrows source="none" target="standard"/>
+ </y:PolyLineEdge></graphml:data>
+ </graphml:edge>
<graphml:edge source="B::ownsD" target="D::toB">
<graphml:data key="d9"><y:PolyLineEdge>
<y:LineStyle type="dashed"/>
@@ -611,6 +737,12 @@
<y:Arrows source="none" target="standard"/>
</y:PolyLineEdge></graphml:data>
</graphml:edge>
+ <graphml:edge source="Y2::ast" target="Y::ast">
+ <graphml:data key="d9"><y:PolyLineEdge>
+ <y:LineStyle type="dotted"/>
+ <y:Arrows source="none" target="standard"/>
+ </y:PolyLineEdge></graphml:data>
+ </graphml:edge>
<graphml:edge source="C::ownsD" target="D::toC">
<graphml:data key="d9"><y:PolyLineEdge>
<y:LineStyle type="dashed"/>
@@ -623,6 +755,12 @@
<y:Arrows source="none" target="standard"/>
</y:PolyLineEdge></graphml:data>
</graphml:edge>
+ <graphml:edge source="Z::ast" target="SElement::ast">
+ <graphml:data key="d9"><y:PolyLineEdge>
+ <y:LineStyle type="dotted"/>
+ <y:Arrows source="none" target="standard"/>
+ </y:PolyLineEdge></graphml:data>
+ </graphml:edge>
<graphml:edge source="D::toA" target="A::D">
<graphml:data key="d9"><y:PolyLineEdge>
<y:LineStyle type="dashed"/>
@@ -641,6 +779,18 @@
<y:Arrows source="none" target="standard"/>
</y:PolyLineEdge></graphml:data>
</graphml:edge>
+ <graphml:edge source="PathElementCS::ast" target="SElement::ast">
+ <graphml:data key="d9"><y:PolyLineEdge>
+ <y:LineStyle type="dotted"/>
+ <y:Arrows source="none" target="standard"/>
+ </y:PolyLineEdge></graphml:data>
+ </graphml:edge>
+ <graphml:edge source="PathNameCS::ast" target="SElement::ast">
+ <graphml:data key="d9"><y:PolyLineEdge>
+ <y:LineStyle type="dotted"/>
+ <y:Arrows source="none" target="standard"/>
+ </y:PolyLineEdge></graphml:data>
+ </graphml:edge>
<graphml:edge source="SRoot" target="cSRoot_2_TRoot (1)"/>
<graphml:edge source="cSRoot_2_TRoot (1)" target="TRoot"/>
<graphml:edge source="cSRoot_2_TRoot (1)" target="SRoot::ast"/>
@@ -745,46 +895,45 @@
<graphml:edge source="Z::ast" target="uD_0_toA (12)"/>
<graphml:edge source="uD_0_toA (12)" target="D::toA"/>
<graphml:edge source="uD_0_toA (12)" target="A::D"/>
- <graphml:edge source="Z" target="uD_0_refsC (22)"/>
- <graphml:edge source="Z::toY" target="uD_0_refsC (22)"/>
- <graphml:edge source="Z::ast" target="uD_0_refsC (22)"/>
- <graphml:edge source="Z::refers" target="uD_0_refsC (22)"/>
- <graphml:edge source="PathNameCS::path" target="uD_0_refsC (22)"/>
- <graphml:edge source="Environment::parentEnv" target="uD_0_refsC (22)"/>
- <graphml:edge source="Environment::namedElements" target="uD_0_refsC (22)"/>
- <graphml:edge source="Namespace::name" target="uD_0_refsC (22)"/>
- <graphml:edge source="PathElementCS::name" target="uD_0_refsC (22)"/>
- <graphml:edge source="TRoot::ownedA" target="uD_0_refsC (22)"/>
- <graphml:edge source="A1::ownsB" target="uD_0_refsC (22)"/>
- <graphml:edge source="A2::ownsC" target="uD_0_refsC (22)"/>
- <graphml:edge source="B::ownsD" target="uD_0_refsC (22)"/>
- <graphml:edge source="C::ownsD" target="uD_0_refsC (22)"/>
- <graphml:edge source="B::name" target="uD_0_refsC (22)"/>
- <graphml:edge source="C::name" target="uD_0_refsC (22)"/>
- <graphml:edge source="uD_0_refsC (22)" target="D::refsC"/>
- <graphml:edge source="uD_0_refsC (22)" target="C::D"/>
- <graphml:edge source="Z" target="uD_1_toA (23)"/>
- <graphml:edge source="Z::toY" target="uD_1_toA (23)"/>
- <graphml:edge source="B::toA1" target="uD_1_toA (23)"/>
- <graphml:edge source="Y1::ast" target="uD_1_toA (23)"/>
- <graphml:edge source="Z::ast" target="uD_1_toA (23)"/>
- <graphml:edge source="uD_1_toA (23)" target="D::toA"/>
- <graphml:edge source="Z" target="uD_1_refsB (21)"/>
- <graphml:edge source="Z::toY" target="uD_1_refsB (21)"/>
- <graphml:edge source="Z::ast" target="uD_1_refsB (21)"/>
- <graphml:edge source="Z::refers" target="uD_1_refsB (21)"/>
- <graphml:edge source="PathNameCS::path" target="uD_1_refsB (21)"/>
- <graphml:edge source="Environment::parentEnv" target="uD_1_refsB (21)"/>
- <graphml:edge source="Environment::namedElements" target="uD_1_refsB (21)"/>
- <graphml:edge source="Namespace::name" target="uD_1_refsB (21)"/>
- <graphml:edge source="PathElementCS::name" target="uD_1_refsB (21)"/>
- <graphml:edge source="TRoot::ownedA" target="uD_1_refsB (21)"/>
- <graphml:edge source="A1::ownsB" target="uD_1_refsB (21)"/>
- <graphml:edge source="A2::ownsC" target="uD_1_refsB (21)"/>
- <graphml:edge source="B::ownsD" target="uD_1_refsB (21)"/>
- <graphml:edge source="C::ownsD" target="uD_1_refsB (21)"/>
- <graphml:edge source="B::name" target="uD_1_refsB (21)"/>
- <graphml:edge source="uD_1_refsB (21)" target="D::refsB"/>
- <graphml:edge source="uD_1_refsB (21)" target="B::D"/>
+ <graphml:edge source="Z" target="uD_0_refsC (24)"/>
+ <graphml:edge source="Z::toY" target="uD_0_refsC (24)"/>
+ <graphml:edge source="Z::refers" target="uD_0_refsC (24)"/>
+ <graphml:edge source="PathNameCS::ast" target="uD_0_refsC (24)"/>
+ <graphml:edge source="Z::ast" target="uD_0_refsC (24)"/>
+ <graphml:edge source="uD_0_refsC (24)" target="D::refsC"/>
+ <graphml:edge source="uD_0_refsC (24)" target="C::D"/>
+ <graphml:edge source="Z" target="uD_1_toA (25)"/>
+ <graphml:edge source="Z::toY" target="uD_1_toA (25)"/>
+ <graphml:edge source="B::toA1" target="uD_1_toA (25)"/>
+ <graphml:edge source="Y1::ast" target="uD_1_toA (25)"/>
+ <graphml:edge source="Z::ast" target="uD_1_toA (25)"/>
+ <graphml:edge source="uD_1_toA (25)" target="D::toA"/>
+ <graphml:edge source="Z" target="uD_1_refsB (23)"/>
+ <graphml:edge source="Z::toY" target="uD_1_refsB (23)"/>
+ <graphml:edge source="Z::refers" target="uD_1_refsB (23)"/>
+ <graphml:edge source="PathNameCS::ast" target="uD_1_refsB (23)"/>
+ <graphml:edge source="Z::ast" target="uD_1_refsB (23)"/>
+ <graphml:edge source="uD_1_refsB (23)" target="D::refsB"/>
+ <graphml:edge source="uD_1_refsB (23)" target="B::D"/>
+ <graphml:edge source="PathElementCS" target="uPathElementCS_ast (21)"/>
+ <graphml:edge source="PathElementCS::ast" target="uPathElementCS_ast (21)"/>
+ <graphml:edge source="SElement::ast" target="uPathElementCS_ast (21)"/>
+ <graphml:edge source="PathElementCS::pathName" target="uPathElementCS_ast (21)"/>
+ <graphml:edge source="PathNameCS::path" target="uPathElementCS_ast (21)"/>
+ <graphml:edge source="Environment::parentEnv" target="uPathElementCS_ast (21)"/>
+ <graphml:edge source="Environment::namedElements" target="uPathElementCS_ast (21)"/>
+ <graphml:edge source="Namespace::name" target="uPathElementCS_ast (21)"/>
+ <graphml:edge source="PathElementCS::name" target="uPathElementCS_ast (21)"/>
+ <graphml:edge source="TRoot::ownedA" target="uPathElementCS_ast (21)"/>
+ <graphml:edge source="A1::ownsB" target="uPathElementCS_ast (21)"/>
+ <graphml:edge source="A2::ownsC" target="uPathElementCS_ast (21)"/>
+ <graphml:edge source="B::ownsD" target="uPathElementCS_ast (21)"/>
+ <graphml:edge source="C::ownsD" target="uPathElementCS_ast (21)"/>
+ <graphml:edge source="B::name" target="uPathElementCS_ast (21)"/>
+ <graphml:edge source="uPathElementCS_ast (21)" target="PathElementCS::ast"/>
+ <graphml:edge source="PathNameCS" target="uPathNameCS_ast (22)"/>
+ <graphml:edge source="PathElementCS::ast" target="uPathNameCS_ast (22)"/>
+ <graphml:edge source="PathNameCS::path" target="uPathNameCS_ast (22)"/>
+ <graphml:edge source="uPathNameCS_ast (22)" target="PathNameCS::ast"/>
</graphml:graph>
</graphml:graphml> \ No newline at end of file
diff --git a/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example1/samples/model2_output_Interpreted.xmi b/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example1/samples/model2_output_Interpreted.xmi
index 88c063c9e..401f73a4f 100644
--- a/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example1/samples/model2_output_Interpreted.xmi
+++ b/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example1/samples/model2_output_Interpreted.xmi
@@ -22,7 +22,7 @@
<ownsD toA="//@ownedA.2"/>
</ownsC>
<ownsC name="Y3-c">
- <ownsD toA="//@ownedA.2" refsC="//@ownedA.2/@ownsC.0"/>
+ <ownsD toA="//@ownedA.2"/>
</ownsC>
</ownedA>
</target:TRoot>
diff --git a/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example1/samples/model3_output_CG.xmi b/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example1/samples/model3_output_CG.xmi
index 504be78de..bf9abab34 100644
--- a/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example1/samples/model3_output_CG.xmi
+++ b/tests/org.eclipse.qvtd.cs2as.compiler.tests/src/org/eclipse/qvtd/cs2as/compiler/tests/models/example1/samples/model3_output_CG.xmi
@@ -1,28 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
-<target:TRoot xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:target="http://cs2as/tests/example1/targetMM/1.0"
- xsi:schemaLocation="http://cs2as/tests/example1/targetMM/1.0 java://example1.target.TargetPackage">
- <ownedA xsi:type="target:A1" name="X1">
- <ownsB name="Y1-a">
- <ownsD toA="//@ownedA.0"/>
- </ownsB>
- <ownsB name="Y1-b">
- <ownsD toA="//@ownedA.0" refsB="//@ownedA.0/@ownsB.0"/>
- </ownsB>
- </ownedA>
- <ownedA xsi:type="target:A2" name="X2">
- <ownsC name="Y2-a">
- <ownsD toA="//@ownedA.1" refsC="//@ownedA.2/@ownsC.2"/>
- </ownsC>
- </ownedA>
- <ownedA xsi:type="target:A3" name="X3">
- <ownsC name="Y3-a">
- <ownsD toA="//@ownedA.2"/>
- </ownsC>
- <ownsC name="Y3-b">
- <ownsD toA="//@ownedA.2" refsC="//@ownedA.2/@ownsC.2"/>
- </ownsC>
- <ownsC name="Y3-c">
- <ownsD toA="//@ownedA.2" refsC="//@ownedA.2/@ownsC.0"/>
- </ownsC>
- </ownedA>
-</target:TRoot>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
diff --git a/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/cg/_Source2Target_qvtp_qvtias/Source2Target_qvtp_qvtias.java b/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/cg/_Source2Target_qvtp_qvtias/Source2Target_qvtp_qvtias.java
index 1f5b337a0..09ca6b892 100644
--- a/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/cg/_Source2Target_qvtp_qvtias/Source2Target_qvtp_qvtias.java
+++ b/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/cg/_Source2Target_qvtp_qvtias/Source2Target_qvtp_qvtias.java
@@ -11,6 +11,7 @@ package cg._Source2Target_qvtp_qvtias;
import example1.source.PathElementCS;
import example1.source.PathNameCS;
+import example1.source.SElement;
import example1.source.SRoot;
import example1.source.SourcePackage;
import example1.source.X;
@@ -46,10 +47,10 @@ import org.eclipse.ocl.pivot.ids.NsURIPackageId;
import org.eclipse.ocl.pivot.ids.RootPackageId;
import org.eclipse.ocl.pivot.ids.TypeId;
import org.eclipse.ocl.pivot.library.classifier.ClassifierAllInstancesOperation;
+import org.eclipse.ocl.pivot.library.classifier.ClassifierOclContainerOperation;
import org.eclipse.ocl.pivot.library.collection.CollectionSizeOperation;
-import org.eclipse.ocl.pivot.library.collection.OrderedCollectionFirstOperation;
-import org.eclipse.ocl.pivot.library.collection.OrderedCollectionLastOperation;
-import org.eclipse.ocl.pivot.library.collection.OrderedSetSubOrderedSetOperation;
+import org.eclipse.ocl.pivot.library.collection.OrderedCollectionAtOperation;
+import org.eclipse.ocl.pivot.library.collection.OrderedCollectionIndexOfOperation;
import org.eclipse.ocl.pivot.library.logical.BooleanNotOperation;
import org.eclipse.ocl.pivot.library.numeric.NumericMinusOperation;
import org.eclipse.ocl.pivot.library.oclany.OclAnyOclAsTypeOperation;
@@ -91,9 +92,12 @@ public class Source2Target_qvtp_qvtias extends AbstractCS2ASTransformer
public static final /*@NonNull*/ /*@NonInvalid*/ ClassId CLSSid_Class = PACKid_$metamodel$.getClassId("Class", 0);
public static final /*@NonNull*/ /*@NonInvalid*/ ClassId CLSSid_D = PACKid_http_c_s_s_cs2as_s_tests_s_example1_s_targetMM_s_1_0.getClassId("D", 0);
public static final /*@NonNull*/ /*@NonInvalid*/ ClassId CLSSid_EObject = PACKid_http_c_s_s_www_eclipse_org_s_emf_s_2002_s_Ecore.getClassId("EObject", 0);
+ public static final /*@NonNull*/ /*@NonInvalid*/ ClassId CLSSid_NamedElement = PACKid_http_c_s_s_cs2as_s_tests_s_example1_s_targetMM_s_1_0.getClassId("NamedElement", 0);
public static final /*@NonNull*/ /*@NonInvalid*/ ClassId CLSSid_Namespace = PACKid_http_c_s_s_cs2as_s_tests_s_example1_s_targetMM_s_1_0.getClassId("Namespace", 0);
+ public static final /*@NonNull*/ /*@NonInvalid*/ ClassId CLSSid_OclElement = PACKid_$metamodel$.getClassId("OclElement", 0);
public static final /*@NonNull*/ /*@NonInvalid*/ ClassId CLSSid_PathElementCS = PACKid_http_c_s_s_cs2as_s_tests_s_example1_s_sourceMM_s_1_0.getClassId("PathElementCS", 0);
public static final /*@NonNull*/ /*@NonInvalid*/ ClassId CLSSid_PathNameCS = PACKid_http_c_s_s_cs2as_s_tests_s_example1_s_sourceMM_s_1_0.getClassId("PathNameCS", 0);
+ public static final /*@NonNull*/ /*@NonInvalid*/ ClassId CLSSid_SElement = PACKid_http_c_s_s_cs2as_s_tests_s_example1_s_sourceMM_s_1_0.getClassId("SElement", 0);
public static final /*@NonNull*/ /*@NonInvalid*/ ClassId CLSSid_SRoot = PACKid_http_c_s_s_cs2as_s_tests_s_example1_s_sourceMM_s_1_0.getClassId("SRoot", 0);
public static final /*@NonNull*/ /*@NonInvalid*/ ClassId CLSSid_TRoot = PACKid_http_c_s_s_cs2as_s_tests_s_example1_s_targetMM_s_1_0.getClassId("TRoot", 0);
public static final /*@NonNull*/ /*@NonInvalid*/ ClassId CLSSid_Visitable = PACKid_http_c_s_s_cs2as_s_tests_s_example1_s_targetMM_s_1_0.getClassId("Visitable", 0);
@@ -111,6 +115,8 @@ public class Source2Target_qvtp_qvtias extends AbstractCS2ASTransformer
public static final /*@NonNull*/ /*@NonInvalid*/ CollectionTypeId SEQ_CLSSid_C = TypeId.SEQUENCE.getSpecializedId(CLSSid_C);
public static final /*@NonNull*/ /*@NonInvalid*/ CollectionTypeId SEQ_CLSSid_Y1 = TypeId.SEQUENCE.getSpecializedId(CLSSid_Y1);
public static final /*@NonNull*/ /*@NonInvalid*/ CollectionTypeId SEQ_CLSSid_Y2 = TypeId.SEQUENCE.getSpecializedId(CLSSid_Y2);
+ public static final /*@NonNull*/ /*@NonInvalid*/ CollectionTypeId SET_CLSSid_PathElementCS = TypeId.SET.getSpecializedId(CLSSid_PathElementCS);
+ public static final /*@NonNull*/ /*@NonInvalid*/ CollectionTypeId SET_CLSSid_PathNameCS = TypeId.SET.getSpecializedId(CLSSid_PathNameCS);
public static final /*@NonNull*/ /*@NonInvalid*/ CollectionTypeId SET_CLSSid_SRoot = TypeId.SET.getSpecializedId(CLSSid_SRoot);
public static final /*@NonNull*/ /*@NonInvalid*/ CollectionTypeId SET_CLSSid_X = TypeId.SET.getSpecializedId(CLSSid_X);
public static final /*@NonNull*/ /*@NonInvalid*/ CollectionTypeId SET_CLSSid_Y1 = TypeId.SET.getSpecializedId(CLSSid_Y1);
@@ -121,11 +127,13 @@ public class Source2Target_qvtp_qvtias extends AbstractCS2ASTransformer
* Array of the ClassIds of each class for which allInstances() may be invoked. Array index is the ClassIndex.
*/
private static final /*@NonNull*/ ClassId[] classIndex2classId = new ClassId[]{
- CLSSid_SRoot, // 0 => SRoot
- CLSSid_X, // 1 => X
- CLSSid_Y1, // 2 => Y1
- CLSSid_Y2, // 3 => Y2
- CLSSid_Z // 4 => Z
+ CLSSid_PathElementCS, // 0 => PathElementCS
+ CLSSid_PathNameCS, // 1 => PathNameCS
+ CLSSid_SRoot, // 2 => SRoot
+ CLSSid_X, // 3 => X
+ CLSSid_Y1, // 4 => Y1
+ CLSSid_Y2, // 5 => Y2
+ CLSSid_Z // 6 => Z
};
/*
@@ -135,11 +143,13 @@ public class Source2Target_qvtp_qvtias extends AbstractCS2ASTransformer
* instance of the derived classId contributes to derived and inherited ClassIndexes.
*/
private final static /*@NonNull*/ int[][] classIndex2allClassIndexes = new int[][] {
- {0}, // 0 : SRoot -> {SRoot}
- {1}, // 1 : X -> {X}
- {2}, // 2 : Y1 -> {Y1}
- {3}, // 3 : Y2 -> {Y2}
- {4} // 4 : Z -> {Z}
+ {0}, // 0 : PathElementCS -> {PathElementCS}
+ {1}, // 1 : PathNameCS -> {PathNameCS}
+ {2}, // 2 : SRoot -> {SRoot}
+ {3}, // 3 : X -> {X}
+ {4}, // 4 : Y1 -> {Y1}
+ {5}, // 5 : Y2 -> {Y2}
+ {6} // 6 : Z -> {Z}
};
@@ -154,74 +164,6 @@ public class Source2Target_qvtp_qvtias extends AbstractCS2ASTransformer
}
/**
- * target::Visitable::lookupNamespace(pathSeq : OrderedSet(source::PathElementCS)) : target::Namespace[?]
- *
- *
- * if pathSeq->size() = 1
- * then
- * _lookupNamespace(pathSeq->first(), false)
- * else
- * lookupNamespace(
- * pathSeq->subOrderedSet(1, pathSeq->size() - 1))
- * ?._lookupNamespace(pathSeq->last(), true)
- * endif
- */
- public /*@Nullable*/ /*@NonInvalid*/ Namespace lookupNamespace(final /*@NonNull*/ /*@NonInvalid*/ Visitable self_0, final /*@NonNull*/ /*@NonInvalid*/ List<PathElementCS> pathSeq) {
- final /*@NonNull*/ /*@NonInvalid*/ IdResolver idResolver = executor.getIdResolver();
- final /*@NonNull*/ /*@NonInvalid*/ OrderedSetValue BOXED_pathSeq_0 = idResolver.createOrderedSetOfAll(ORD_CLSSid_PathElementCS, pathSeq);
- final /*@NonNull*/ /*@NonInvalid*/ IntegerValue size = CollectionSizeOperation.INSTANCE.evaluate(BOXED_pathSeq_0);
- final /*@NonInvalid*/ boolean eq = size.equals(INT_1);
- /*@Nullable*/ /*@Thrown*/ Namespace symbol_1;
- if (eq) {
- final /*@Nullable*/ /*@Thrown*/ PathElementCS first = (PathElementCS)OrderedCollectionFirstOperation.INSTANCE.evaluate(BOXED_pathSeq_0);
- LookupEnvironment _lookupEnv = new LookupEnvironment(executor,first, ValueUtil.FALSE_VALUE);
- TargetLookupVisitor _lookupVisitor = new TargetLookupVisitor(_lookupEnv);
- EList<NamedElement> _lookupResult = self_0.accept(_lookupVisitor).getNamedElements();
- Namespace _lookupNamespace = null;
- if (_lookupResult.size() == 1) {
- _lookupNamespace = (Namespace)_lookupResult.get(0);
- } else {
- handleLookupError(pathSeq,first);
- };
- symbol_1 = _lookupNamespace;
- }
- else {
- final /*@NonNull*/ /*@NonInvalid*/ IntegerValue diff = (IntegerValue)NumericMinusOperation.INSTANCE.evaluate(size, INT_1);
- final /*@NonNull*/ /*@Thrown*/ OrderedSetValue subOrderedSet = OrderedSetSubOrderedSetOperation.INSTANCE.evaluate(BOXED_pathSeq_0, INT_1, diff);
- final List<PathElementCS> UNBOXED_subOrderedSet = subOrderedSet.asEcoreObjects(idResolver, PathElementCS.class);
- assert UNBOXED_subOrderedSet != null;
- final /*@Nullable*/ /*@Thrown*/ Namespace lookupNamespace = this.lookupNamespace(self_0, UNBOXED_subOrderedSet);
- /*@Nullable*/ /*@Caught*/ Object CAUGHT_lookupNamespace;
- try {
- CAUGHT_lookupNamespace = lookupNamespace;
- }
- catch (Exception e) {
- CAUGHT_lookupNamespace = ValueUtil.createInvalidValue(e);
- }
- final /*@NonNull*/ /*@NonInvalid*/ Object symbol_0 = CAUGHT_lookupNamespace == null;
- /*@Nullable*/ /*@Thrown*/ Namespace safe__lookupNamespace_source;
- if (symbol_0 == Boolean.TRUE) {
- safe__lookupNamespace_source = null;
- }
- else {
- final /*@Nullable*/ /*@Thrown*/ PathElementCS last = (PathElementCS)OrderedCollectionLastOperation.INSTANCE.evaluate(BOXED_pathSeq_0);
- LookupEnvironment _lookupEnv_0 = new LookupEnvironment(executor,last, ValueUtil.TRUE_VALUE);
- TargetLookupVisitor _lookupVisitor_0 = new TargetLookupVisitor(_lookupEnv_0);
- EList<NamedElement> _lookupResult_0 = lookupNamespace.accept(_lookupVisitor_0).getNamedElements();
- Namespace _lookupNamespace_0 = null;
- if (_lookupResult_0.size() == 1) {
- _lookupNamespace_0 = (Namespace)_lookupResult_0.get(0);
- } else {
- handleLookupError(pathSeq,last);
- };
- safe__lookupNamespace_source = _lookupNamespace_0;
- }
- symbol_1 = safe__lookupNamespace_source;
- }
- return symbol_1;
- }
-
- /**
*
* map cSRoot_2_TRoot in Source2Target_qvtp_qvtias {
* leftCS (sRoot : source::SRoot[1];
@@ -1114,8 +1056,12 @@ public class Source2Target_qvtp_qvtias extends AbstractCS2ASTransformer
* |
* _0 := z.ast.oclAsType(target::D)
* ;
- * _1 := ast.oclAsType(target::D)
- * .lookupC(z);
+ * _1 := if refers = null
+ * then null
+ * else
+ * refers.ast.oclAsType(target::NamedElement)
+ * .oclAsType(target::C)
+ * endif;
* _0.refsC := _1;
* }
*
@@ -1131,75 +1077,28 @@ public class Source2Target_qvtp_qvtias extends AbstractCS2ASTransformer
return false;
}
final /*@NonNull*/ /*@NonInvalid*/ Class TYP_target_c_c_D_0 = idResolver.getClass(CLSSid_D, null);
- final /*@Nullable*/ /*@Thrown*/ EObject ast = z_2.getAst();
+ final /*@Nullable*/ /*@Thrown*/ PathNameCS refers = z_2.getRefers();
// variable assignments
+ final /*@Nullable*/ /*@Thrown*/ EObject ast = z_2.getAst();
final /*@NonNull*/ /*@Thrown*/ D oclAsType = ClassUtil.nonNullState((D)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, ast, TYP_target_c_c_D_0));
- final /*@NonNull*/ /*@Thrown*/ D self_1 = ClassUtil.nonNullState((D)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, ast, TYP_target_c_c_D_0));
- final /*@Nullable*/ /*@Thrown*/ PathNameCS refers = z_2.getRefers();
final /*@Thrown*/ boolean eq = refers == null;
- /*@Nullable*/ /*@Thrown*/ C symbol_2;
+ /*@Nullable*/ /*@Thrown*/ C symbol_0;
if (eq) {
- symbol_2 = null;
+ symbol_0 = null;
}
else {
+ final /*@NonNull*/ /*@NonInvalid*/ Class TYP_target_c_c_C_0 = idResolver.getClass(CLSSid_C, null);
+ final /*@NonNull*/ /*@NonInvalid*/ Class TYP_target_c_c_NamedElement_0 = idResolver.getClass(CLSSid_NamedElement, null);
if (refers == null) {
- throwNull(z_2, "Null source for \'\'http://cs2as/tests/example1/sourceMM/1.0\'::PathNameCS::path\'");
+ throwNull(z_2, "Null source for \'\'http://cs2as/tests/example1/sourceMM/1.0\'::SElement::ast\'");
}
- final /*@NonNull*/ /*@Thrown*/ List<PathElementCS> pathSeq_0 = refers.getPath();
- final /*@NonNull*/ /*@Thrown*/ OrderedSetValue BOXED_pathSeq_0_0 = idResolver.createOrderedSetOfAll(ORD_CLSSid_PathElementCS, pathSeq_0);
- final /*@NonNull*/ /*@Thrown*/ IntegerValue size = CollectionSizeOperation.INSTANCE.evaluate(BOXED_pathSeq_0_0);
- final /*@Thrown*/ boolean eq_0 = size.equals(INT_1);
- /*@Nullable*/ /*@Thrown*/ C symbol_1;
- if (eq_0) {
- final /*@Nullable*/ /*@Thrown*/ PathElementCS first = (PathElementCS)OrderedCollectionFirstOperation.INSTANCE.evaluate(BOXED_pathSeq_0_0);
- LookupEnvironment _lookupEnv = new LookupEnvironment(executor,first, ValueUtil.FALSE_VALUE);
- TargetLookupVisitor _lookupVisitor = new TargetLookupVisitor(_lookupEnv);
- EList<NamedElement> _lookupResult = self_1.accept(_lookupVisitor).getNamedElements();
- C _lookupC = null;
- if (_lookupResult.size() == 1) {
- _lookupC = (C)_lookupResult.get(0);
- } else {
- handleLookupError(z_2,first);
- };
- symbol_1 = _lookupC;
- }
- else {
- final /*@NonNull*/ /*@Thrown*/ IntegerValue diff = (IntegerValue)NumericMinusOperation.INSTANCE.evaluate(size, INT_1);
- final /*@NonNull*/ /*@Thrown*/ OrderedSetValue subOrderedSet = OrderedSetSubOrderedSetOperation.INSTANCE.evaluate(BOXED_pathSeq_0_0, INT_1, diff);
- final List<PathElementCS> UNBOXED_subOrderedSet = subOrderedSet.asEcoreObjects(idResolver, PathElementCS.class);
- assert UNBOXED_subOrderedSet != null;
- final /*@Nullable*/ /*@Thrown*/ Namespace lookupNamespace = this.lookupNamespace(self_1, UNBOXED_subOrderedSet);
- /*@Nullable*/ /*@Caught*/ Object CAUGHT_lookupNamespace;
- try {
- CAUGHT_lookupNamespace = lookupNamespace;
- }
- catch (Exception e) {
- CAUGHT_lookupNamespace = ValueUtil.createInvalidValue(e);
- }
- final /*@NonNull*/ /*@NonInvalid*/ Object symbol_0 = CAUGHT_lookupNamespace == null;
- /*@Nullable*/ /*@Thrown*/ C safe__lookupC_source;
- if (symbol_0 == Boolean.TRUE) {
- safe__lookupC_source = null;
- }
- else {
- final /*@Nullable*/ /*@Thrown*/ PathElementCS last = (PathElementCS)OrderedCollectionLastOperation.INSTANCE.evaluate(BOXED_pathSeq_0_0);
- LookupEnvironment _lookupEnv_0 = new LookupEnvironment(executor,last, ValueUtil.TRUE_VALUE);
- TargetLookupVisitor _lookupVisitor_0 = new TargetLookupVisitor(_lookupEnv_0);
- EList<NamedElement> _lookupResult_0 = lookupNamespace.accept(_lookupVisitor_0).getNamedElements();
- C _lookupC_0 = null;
- if (_lookupResult_0.size() == 1) {
- _lookupC_0 = (C)_lookupResult_0.get(0);
- } else {
- handleLookupError(z_2,last);
- };
- safe__lookupC_source = _lookupC_0;
- }
- symbol_1 = safe__lookupC_source;
- }
- symbol_2 = symbol_1;
+ final /*@Nullable*/ /*@Thrown*/ EObject ast_0 = refers.getAst();
+ final /*@NonNull*/ /*@Thrown*/ NamedElement oclAsType_0 = ClassUtil.nonNullState((NamedElement)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, ast_0, TYP_target_c_c_NamedElement_0));
+ final /*@NonNull*/ /*@Thrown*/ C oclAsType_1 = ClassUtil.nonNullState((C)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, oclAsType_0, TYP_target_c_c_C_0));
+ symbol_0 = oclAsType_1;
}
// property assignments
- oclAsType.setRefsC(symbol_2);
+ oclAsType.setRefsC(symbol_0);
return true;
}
@@ -1268,8 +1167,12 @@ public class Source2Target_qvtp_qvtias extends AbstractCS2ASTransformer
* |
* _0 := z.ast.oclAsType(target::D)
* ;
- * _1 := ast.oclAsType(target::D)
- * .lookupB(z);
+ * _1 := if refers = null
+ * then null
+ * else
+ * refers.ast.oclAsType(target::NamedElement)
+ * .oclAsType(target::B)
+ * endif;
* _0.refsB := _1;
* }
*
@@ -1284,75 +1187,214 @@ public class Source2Target_qvtp_qvtias extends AbstractCS2ASTransformer
return false;
}
final /*@NonNull*/ /*@NonInvalid*/ Class TYP_target_c_c_D_0 = idResolver.getClass(CLSSid_D, null);
- final /*@Nullable*/ /*@Thrown*/ EObject ast = z_4.getAst();
+ final /*@Nullable*/ /*@Thrown*/ PathNameCS refers = z_4.getRefers();
// variable assignments
+ final /*@Nullable*/ /*@Thrown*/ EObject ast = z_4.getAst();
final /*@NonNull*/ /*@Thrown*/ D oclAsType = ClassUtil.nonNullState((D)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, ast, TYP_target_c_c_D_0));
- final /*@NonNull*/ /*@Thrown*/ D self_1 = ClassUtil.nonNullState((D)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, ast, TYP_target_c_c_D_0));
- final /*@Nullable*/ /*@Thrown*/ PathNameCS refers = z_4.getRefers();
final /*@Thrown*/ boolean eq = refers == null;
- /*@Nullable*/ /*@Thrown*/ B symbol_2;
+ /*@Nullable*/ /*@Thrown*/ B symbol_0;
if (eq) {
- symbol_2 = null;
+ symbol_0 = null;
}
else {
+ final /*@NonNull*/ /*@NonInvalid*/ Class TYP_target_c_c_B_0 = idResolver.getClass(CLSSid_B, null);
+ final /*@NonNull*/ /*@NonInvalid*/ Class TYP_target_c_c_NamedElement_0 = idResolver.getClass(CLSSid_NamedElement, null);
if (refers == null) {
- throwNull(z_4, "Null source for \'\'http://cs2as/tests/example1/sourceMM/1.0\'::PathNameCS::path\'");
+ throwNull(z_4, "Null source for \'\'http://cs2as/tests/example1/sourceMM/1.0\'::SElement::ast\'");
}
- final /*@NonNull*/ /*@Thrown*/ List<PathElementCS> pathSeq_0 = refers.getPath();
- final /*@NonNull*/ /*@Thrown*/ OrderedSetValue BOXED_pathSeq_0_0 = idResolver.createOrderedSetOfAll(ORD_CLSSid_PathElementCS, pathSeq_0);
- final /*@NonNull*/ /*@Thrown*/ IntegerValue size = CollectionSizeOperation.INSTANCE.evaluate(BOXED_pathSeq_0_0);
- final /*@Thrown*/ boolean eq_0 = size.equals(INT_1);
- /*@Nullable*/ /*@Thrown*/ B symbol_1;
+ final /*@Nullable*/ /*@Thrown*/ EObject ast_0 = refers.getAst();
+ final /*@NonNull*/ /*@Thrown*/ NamedElement oclAsType_0 = ClassUtil.nonNullState((NamedElement)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, ast_0, TYP_target_c_c_NamedElement_0));
+ final /*@NonNull*/ /*@Thrown*/ B oclAsType_1 = ClassUtil.nonNullState((B)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, oclAsType_0, TYP_target_c_c_B_0));
+ symbol_0 = oclAsType_1;
+ }
+ // property assignments
+ oclAsType.setRefsB(symbol_0);
+ return true;
+ }
+
+ /**
+ *
+ * map uPathElementCS_ast in Source2Target_qvtp_qvtias {
+ *
+ * leftCS (pathElementCS : source::PathElementCS[1];
+ * |)
+ * { |}
+ * rightAS ( |)
+ * { |}
+ * where ( |)
+ * {_0 : target::NamedElement[?];
+ * |
+ * _0 := let path : OrderedSet(source::PathElementCS) = pathName.path;
+ *
+ * in
+ * let
+ * lookupContext : target::Visitable[?] = pathName.oclContainer()
+ * .oclAsType(source::SElement)
+ * .ast.oclAsType(target::Visitable);
+ *
+ * in
+ * let first : source::PathElementCS[?] = path->at(1);
+ *
+ * in
+ * let
+ * last : source::PathElementCS[?] = path->at(path->size());
+ *
+ * in
+ * if pathElementCS = first
+ * then
+ * if pathElementCS = last
+ * then
+ * lookupContext._lookupNamedElement(pathElementCS, false)
+ * else
+ * lookupContext._lookupNamespace(pathElementCS, false)
+ * endif
+ * else
+ * let
+ * prevPathElement : source::PathElementCS[?] = path->at(
+ * path->indexOf(pathElementCS) - 1);
+ *
+ * in
+ * if pathElementCS = last
+ * then
+ * prevPathElement.ast.oclAsType(target::NamedElement)
+ * ._lookupNamedElement(pathElementCS, true)
+ * else
+ * prevPathElement.ast.oclAsType(target::NamedElement)
+ * ._lookupNamespace(pathElementCS, true)
+ * endif
+ * endif;
+ * pathElementCS.ast := _0;
+ * }
+ *
+ */
+ protected boolean MAP_uPathElementCS_ast(final /*@NonNull*/ /*@NonInvalid*/ PathElementCS pathElementCS) throws ReflectiveOperationException {
+ // predicates
+ final /*@NonNull*/ /*@NonInvalid*/ IdResolver idResolver = executor.getIdResolver();
+ final /*@Nullable*/ /*@Thrown*/ PathNameCS pathName = pathElementCS.getPathName();
+ // variable assignments
+ if (pathName == null) {
+ throwNull(pathElementCS, "Null source for \'\'http://cs2as/tests/example1/sourceMM/1.0\'::PathNameCS::path\'");
+ }
+ final /*@NonNull*/ /*@Thrown*/ List<PathElementCS> path = pathName.getPath();
+ final /*@NonNull*/ /*@NonInvalid*/ Class TYP_source_c_c_SElement_0 = idResolver.getClass(CLSSid_SElement, null);
+ final /*@NonNull*/ /*@NonInvalid*/ Class TYP_target_c_c_Visitable_0 = idResolver.getClass(CLSSid_Visitable, null);
+ final /*@Nullable*/ /*@Thrown*/ Object oclContainer = ClassifierOclContainerOperation.INSTANCE.evaluate(executor, pathName);
+ final /*@NonNull*/ /*@Thrown*/ SElement oclAsType = ClassUtil.nonNullState((SElement)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, oclContainer, TYP_source_c_c_SElement_0));
+ final /*@Nullable*/ /*@Thrown*/ EObject ast = oclAsType.getAst();
+ final /*@NonNull*/ /*@Thrown*/ Visitable lookupContext = ClassUtil.nonNullState((Visitable)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, ast, TYP_target_c_c_Visitable_0));
+ final /*@NonNull*/ /*@Thrown*/ OrderedSetValue BOXED_path = idResolver.createOrderedSetOfAll(ORD_CLSSid_PathElementCS, path);
+ final /*@Nullable*/ /*@Thrown*/ PathElementCS first = (PathElementCS)OrderedCollectionAtOperation.INSTANCE.evaluate(BOXED_path, INT_1);
+ final /*@NonNull*/ /*@Thrown*/ IntegerValue size = CollectionSizeOperation.INSTANCE.evaluate(BOXED_path);
+ final /*@Nullable*/ /*@Thrown*/ PathElementCS last = (PathElementCS)OrderedCollectionAtOperation.INSTANCE.evaluate(BOXED_path, size);
+ final /*@Thrown*/ boolean eq = pathElementCS.equals(first);
+ /*@Nullable*/ /*@Thrown*/ NamedElement symbol_2;
+ if (eq) {
+ final /*@Thrown*/ boolean eq_0 = pathElementCS.equals(last);
+ /*@Nullable*/ /*@Thrown*/ NamedElement symbol_0;
if (eq_0) {
- final /*@Nullable*/ /*@Thrown*/ PathElementCS first = (PathElementCS)OrderedCollectionFirstOperation.INSTANCE.evaluate(BOXED_pathSeq_0_0);
- LookupEnvironment _lookupEnv = new LookupEnvironment(executor,first, ValueUtil.FALSE_VALUE);
+ LookupEnvironment _lookupEnv = new LookupEnvironment(executor,pathElementCS, ValueUtil.FALSE_VALUE);
TargetLookupVisitor _lookupVisitor = new TargetLookupVisitor(_lookupEnv);
- EList<NamedElement> _lookupResult = self_1.accept(_lookupVisitor).getNamedElements();
- B _lookupB = null;
+ EList<NamedElement> _lookupResult = lookupContext.accept(_lookupVisitor).getNamedElements();
+ NamedElement _lookupNamedElement = null;
if (_lookupResult.size() == 1) {
- _lookupB = (B)_lookupResult.get(0);
+ _lookupNamedElement = (NamedElement)_lookupResult.get(0);
+ } else {
+ handleLookupError(pathElementCS,pathElementCS);
+ };
+ symbol_0 = _lookupNamedElement;
+ }
+ else {
+ LookupEnvironment _lookupEnv_0 = new LookupEnvironment(executor,pathElementCS, ValueUtil.FALSE_VALUE);
+ TargetLookupVisitor _lookupVisitor_0 = new TargetLookupVisitor(_lookupEnv_0);
+ EList<NamedElement> _lookupResult_0 = lookupContext.accept(_lookupVisitor_0).getNamedElements();
+ Namespace _lookupNamespace = null;
+ if (_lookupResult_0.size() == 1) {
+ _lookupNamespace = (Namespace)_lookupResult_0.get(0);
} else {
- handleLookupError(z_4,first);
+ handleLookupError(pathElementCS,pathElementCS);
};
- symbol_1 = _lookupB;
+ symbol_0 = _lookupNamespace;
+ }
+ symbol_2 = symbol_0;
+ }
+ else {
+ final /*@NonNull*/ /*@Thrown*/ IntegerValue indexOf = OrderedCollectionIndexOfOperation.INSTANCE.evaluate(BOXED_path, pathElementCS);
+ final /*@NonNull*/ /*@Thrown*/ IntegerValue diff = (IntegerValue)NumericMinusOperation.INSTANCE.evaluate(indexOf, INT_1);
+ final /*@Nullable*/ /*@Thrown*/ PathElementCS prevPathElement = (PathElementCS)OrderedCollectionAtOperation.INSTANCE.evaluate(BOXED_path, diff);
+ final /*@NonNull*/ /*@NonInvalid*/ Class TYP_target_c_c_NamedElement_1 = idResolver.getClass(CLSSid_NamedElement, null);
+ if (prevPathElement == null) {
+ throwNull(pathElementCS, "Null source for \'\'http://cs2as/tests/example1/sourceMM/1.0\'::SElement::ast\'");
+ }
+ final /*@Nullable*/ /*@Thrown*/ EObject ast_1 = prevPathElement.getAst();
+ final /*@NonNull*/ /*@Thrown*/ NamedElement oclAsType_1 = ClassUtil.nonNullState((NamedElement)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, ast_1, TYP_target_c_c_NamedElement_1));
+ final /*@Thrown*/ boolean eq_1 = pathElementCS.equals(last);
+ /*@Nullable*/ /*@Thrown*/ NamedElement symbol_1;
+ if (eq_1) {
+ LookupEnvironment _lookupEnv_1 = new LookupEnvironment(executor,pathElementCS, ValueUtil.TRUE_VALUE);
+ TargetLookupVisitor _lookupVisitor_1 = new TargetLookupVisitor(_lookupEnv_1);
+ EList<NamedElement> _lookupResult_1 = oclAsType_1.accept(_lookupVisitor_1).getNamedElements();
+ NamedElement _lookupNamedElement_0 = null;
+ if (_lookupResult_1.size() == 1) {
+ _lookupNamedElement_0 = (NamedElement)_lookupResult_1.get(0);
+ } else {
+ handleLookupError(pathElementCS,pathElementCS);
+ };
+ symbol_1 = _lookupNamedElement_0;
}
else {
- final /*@NonNull*/ /*@Thrown*/ IntegerValue diff = (IntegerValue)NumericMinusOperation.INSTANCE.evaluate(size, INT_1);
- final /*@NonNull*/ /*@Thrown*/ OrderedSetValue subOrderedSet = OrderedSetSubOrderedSetOperation.INSTANCE.evaluate(BOXED_pathSeq_0_0, INT_1, diff);
- final List<PathElementCS> UNBOXED_subOrderedSet = subOrderedSet.asEcoreObjects(idResolver, PathElementCS.class);
- assert UNBOXED_subOrderedSet != null;
- final /*@Nullable*/ /*@Thrown*/ Namespace lookupNamespace = this.lookupNamespace(self_1, UNBOXED_subOrderedSet);
- /*@Nullable*/ /*@Caught*/ Object CAUGHT_lookupNamespace;
- try {
- CAUGHT_lookupNamespace = lookupNamespace;
- }
- catch (Exception e) {
- CAUGHT_lookupNamespace = ValueUtil.createInvalidValue(e);
- }
- final /*@NonNull*/ /*@NonInvalid*/ Object symbol_0 = CAUGHT_lookupNamespace == null;
- /*@Nullable*/ /*@Thrown*/ B safe__lookupB_source;
- if (symbol_0 == Boolean.TRUE) {
- safe__lookupB_source = null;
- }
- else {
- final /*@Nullable*/ /*@Thrown*/ PathElementCS last = (PathElementCS)OrderedCollectionLastOperation.INSTANCE.evaluate(BOXED_pathSeq_0_0);
- LookupEnvironment _lookupEnv_0 = new LookupEnvironment(executor,last, ValueUtil.TRUE_VALUE);
- TargetLookupVisitor _lookupVisitor_0 = new TargetLookupVisitor(_lookupEnv_0);
- EList<NamedElement> _lookupResult_0 = lookupNamespace.accept(_lookupVisitor_0).getNamedElements();
- B _lookupB_0 = null;
- if (_lookupResult_0.size() == 1) {
- _lookupB_0 = (B)_lookupResult_0.get(0);
- } else {
- handleLookupError(z_4,last);
- };
- safe__lookupB_source = _lookupB_0;
- }
- symbol_1 = safe__lookupB_source;
+ LookupEnvironment _lookupEnv_2 = new LookupEnvironment(executor,pathElementCS, ValueUtil.TRUE_VALUE);
+ TargetLookupVisitor _lookupVisitor_2 = new TargetLookupVisitor(_lookupEnv_2);
+ EList<NamedElement> _lookupResult_2 = oclAsType_1.accept(_lookupVisitor_2).getNamedElements();
+ Namespace _lookupNamespace_0 = null;
+ if (_lookupResult_2.size() == 1) {
+ _lookupNamespace_0 = (Namespace)_lookupResult_2.get(0);
+ } else {
+ handleLookupError(pathElementCS,pathElementCS);
+ };
+ symbol_1 = _lookupNamespace_0;
}
symbol_2 = symbol_1;
}
// property assignments
- oclAsType.setRefsB(symbol_2);
+ pathElementCS.setAst(symbol_2);
+ return true;
+ }
+
+ /**
+ *
+ * map uPathNameCS_ast in Source2Target_qvtp_qvtias {
+ *
+ * leftCS (pathNameCS : source::PathNameCS[1];
+ * |)
+ * { |}
+ * rightAS ( |)
+ * { |}
+ * where ( |)
+ * {_0 : target::NamedElement[1];
+ * |
+ * _0 := path->at(
+ * path->size())
+ * .ast.oclAsType(target::NamedElement);
+ * pathNameCS.ast := _0;
+ * }
+ *
+ */
+ protected boolean MAP_uPathNameCS_ast(final /*@NonNull*/ /*@NonInvalid*/ PathNameCS pathNameCS) throws ReflectiveOperationException {
+ // predicates
+ final /*@NonNull*/ /*@NonInvalid*/ IdResolver idResolver = executor.getIdResolver();
+ final /*@NonNull*/ /*@NonInvalid*/ Class TYP_target_c_c_NamedElement_0 = idResolver.getClass(CLSSid_NamedElement, null);
+ final /*@NonNull*/ /*@Thrown*/ List<PathElementCS> path = pathNameCS.getPath();
+ final /*@NonNull*/ /*@Thrown*/ OrderedSetValue BOXED_path = idResolver.createOrderedSetOfAll(ORD_CLSSid_PathElementCS, path);
+ // variable assignments
+ final /*@NonNull*/ /*@Thrown*/ IntegerValue size = CollectionSizeOperation.INSTANCE.evaluate(BOXED_path);
+ final /*@Nullable*/ /*@Thrown*/ PathElementCS at = (PathElementCS)OrderedCollectionAtOperation.INSTANCE.evaluate(BOXED_path, size);
+ if (at == null) {
+ throwNull(pathNameCS, "Null source for \'\'http://cs2as/tests/example1/sourceMM/1.0\'::SElement::ast\'");
+ }
+ final /*@Nullable*/ /*@Thrown*/ EObject ast = at.getAst();
+ final /*@NonNull*/ /*@Thrown*/ NamedElement oclAsType = ClassUtil.nonNullState((NamedElement)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, ast, TYP_target_c_c_NamedElement_0));
+ // property assignments
+ pathNameCS.setAst(oclAsType);
return true;
}
@@ -1462,6 +1504,16 @@ public class Source2Target_qvtp_qvtias extends AbstractCS2ASTransformer
* map uC_ownsD {
* y2 := y2;
* }}
+ * for pathElementCS : source::PathElementCS in source::PathElementCS.allInstances()
+ * {
+ * map uPathElementCS_ast {
+ * pathElementCS := pathElementCS;
+ * }}
+ * for pathNameCS : source::PathNameCS in source::PathNameCS.allInstances()
+ * {
+ * map uPathNameCS_ast {
+ * pathNameCS := pathNameCS;
+ * }}
* for z : source::Z in source::Z.allInstances()
* {
* map uD_1_refsB {
@@ -1481,6 +1533,8 @@ public class Source2Target_qvtp_qvtias extends AbstractCS2ASTransformer
protected boolean MAP___root__() throws ReflectiveOperationException {
// predicates
final /*@NonNull*/ /*@NonInvalid*/ IdResolver idResolver = executor.getIdResolver();
+ final /*@NonNull*/ /*@NonInvalid*/ Class TYP_source_c_c_PathElementCS_0 = idResolver.getClass(CLSSid_PathElementCS, null);
+ final /*@NonNull*/ /*@NonInvalid*/ Class TYP_source_c_c_PathNameCS_0 = idResolver.getClass(CLSSid_PathNameCS, null);
final /*@NonNull*/ /*@NonInvalid*/ Class TYP_source_c_c_SRoot_1 = idResolver.getClass(CLSSid_SRoot, null);
final /*@NonNull*/ /*@NonInvalid*/ Class TYP_source_c_c_X_8 = idResolver.getClass(CLSSid_X, null);
final /*@NonNull*/ /*@NonInvalid*/ Class TYP_source_c_c_Y1_2 = idResolver.getClass(CLSSid_Y1, null);
@@ -1612,22 +1666,36 @@ public class Source2Target_qvtp_qvtias extends AbstractCS2ASTransformer
MAP_uC_ownsD(symbol_57);
}
}
+ final /*@NonNull*/ /*@NonInvalid*/ SetValue allInstances_19 = ClassifierAllInstancesOperation.INSTANCE.evaluate(executor, SET_CLSSid_PathElementCS, TYP_source_c_c_PathElementCS_0);
+ for (PathElementCS pathElementCS_1 : ValueUtil.typedIterable(PathElementCS.class, allInstances_19)) {
+ if (pathElementCS_1 != null) {
+ final /*@NonNull*/ /*@NonInvalid*/ PathElementCS symbol_60 = (PathElementCS)pathElementCS_1;
+ MAP_uPathElementCS_ast(symbol_60);
+ }
+ }
+ final /*@NonNull*/ /*@NonInvalid*/ SetValue allInstances_20 = ClassifierAllInstancesOperation.INSTANCE.evaluate(executor, SET_CLSSid_PathNameCS, TYP_source_c_c_PathNameCS_0);
+ for (PathNameCS pathNameCS_1 : ValueUtil.typedIterable(PathNameCS.class, allInstances_20)) {
+ if (pathNameCS_1 != null) {
+ final /*@NonNull*/ /*@NonInvalid*/ PathNameCS symbol_63 = (PathNameCS)pathNameCS_1;
+ MAP_uPathNameCS_ast(symbol_63);
+ }
+ }
for (Z z_14 : ValueUtil.typedIterable(Z.class, allInstances_7)) {
if (z_14 != null) {
- final /*@NonNull*/ /*@NonInvalid*/ Z symbol_60 = (Z)z_14;
- MAP_uD_1_refsB(symbol_60);
+ final /*@NonNull*/ /*@NonInvalid*/ Z symbol_66 = (Z)z_14;
+ MAP_uD_1_refsB(symbol_66);
}
}
for (Z z_15 : ValueUtil.typedIterable(Z.class, allInstances_7)) {
if (z_15 != null) {
- final /*@NonNull*/ /*@NonInvalid*/ Z symbol_63 = (Z)z_15;
- MAP_uD_0_refsC(symbol_63);
+ final /*@NonNull*/ /*@NonInvalid*/ Z symbol_69 = (Z)z_15;
+ MAP_uD_0_refsC(symbol_69);
}
}
for (Z z_16 : ValueUtil.typedIterable(Z.class, allInstances_7)) {
if (z_16 != null) {
- final /*@NonNull*/ /*@NonInvalid*/ Z symbol_66 = (Z)z_16;
- MAP_uD_1_toA(symbol_66);
+ final /*@NonNull*/ /*@NonInvalid*/ Z symbol_72 = (Z)z_16;
+ MAP_uD_1_toA(symbol_72);
}
}
return true;
diff --git a/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/example1/source/PathElementCS.java b/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/example1/source/PathElementCS.java
index bd4f793fc..fa388fee7 100644
--- a/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/example1/source/PathElementCS.java
+++ b/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/example1/source/PathElementCS.java
@@ -23,6 +23,7 @@ package example1.source;
* </p>
* <ul>
* <li>{@link example1.source.PathElementCS#getName <em>Name</em>}</li>
+ * <li>{@link example1.source.PathElementCS#getPathName <em>Path Name</em>}</li>
* </ul>
*
* @see example1.source.SourcePackage#getPathElementCS()
@@ -56,4 +57,32 @@ public interface PathElementCS extends SElement {
*/
void setName(String value);
+ /**
+ * Returns the value of the '<em><b>Path Name</b></em>' container reference.
+ * It is bidirectional and its opposite is '{@link example1.source.PathNameCS#getPath <em>Path</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Path Name</em>' container reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Path Name</em>' container reference.
+ * @see #setPathName(PathNameCS)
+ * @see example1.source.SourcePackage#getPathElementCS_PathName()
+ * @see example1.source.PathNameCS#getPath
+ * @model opposite="path" transient="false"
+ * @generated
+ */
+ PathNameCS getPathName();
+
+ /**
+ * Sets the value of the '{@link example1.source.PathElementCS#getPathName <em>Path Name</em>}' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Path Name</em>' container reference.
+ * @see #getPathName()
+ * @generated
+ */
+ void setPathName(PathNameCS value);
+
} // PathElementCS
diff --git a/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/example1/source/PathNameCS.java b/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/example1/source/PathNameCS.java
index 7d9fd34bf..c5bc6dc5a 100644
--- a/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/example1/source/PathNameCS.java
+++ b/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/example1/source/PathNameCS.java
@@ -24,6 +24,7 @@ import org.eclipse.emf.common.util.EList;
* </p>
* <ul>
* <li>{@link example1.source.PathNameCS#getPath <em>Path</em>}</li>
+ * <li>{@link example1.source.PathNameCS#getContext <em>Context</em>}</li>
* </ul>
*
* @see example1.source.SourcePackage#getPathNameCS()
@@ -34,6 +35,7 @@ public interface PathNameCS extends SElement {
/**
* Returns the value of the '<em><b>Path</b></em>' containment reference list.
* The list contents are of type {@link example1.source.PathElementCS}.
+ * It is bidirectional and its opposite is '{@link example1.source.PathElementCS#getPathName <em>Path Name</em>}'.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Path</em>' containment reference list isn't clear,
@@ -42,9 +44,36 @@ public interface PathNameCS extends SElement {
* <!-- end-user-doc -->
* @return the value of the '<em>Path</em>' containment reference list.
* @see example1.source.SourcePackage#getPathNameCS_Path()
- * @model containment="true" required="true"
+ * @see example1.source.PathElementCS#getPathName
+ * @model opposite="pathName" containment="true" required="true"
* @generated
*/
EList<PathElementCS> getPath();
+ /**
+ * Returns the value of the '<em><b>Context</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Context</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Context</em>' reference.
+ * @see #setContext(SElement)
+ * @see example1.source.SourcePackage#getPathNameCS_Context()
+ * @model
+ * @generated
+ */
+ SElement getContext();
+
+ /**
+ * Sets the value of the '{@link example1.source.PathNameCS#getContext <em>Context</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Context</em>' reference.
+ * @see #getContext()
+ * @generated
+ */
+ void setContext(SElement value);
+
} // PathNameCS
diff --git a/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/example1/source/SElement.java b/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/example1/source/SElement.java
index 35f92e72f..0d93b7730 100644
--- a/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/example1/source/SElement.java
+++ b/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/example1/source/SElement.java
@@ -27,7 +27,7 @@ import org.eclipse.emf.ecore.EObject;
* </ul>
*
* @see example1.source.SourcePackage#getSElement()
- * @model
+ * @model abstract="true"
* @generated
*/
public interface SElement extends EObject {
diff --git a/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/example1/source/SourceFactory.java b/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/example1/source/SourceFactory.java
index 7d8252d39..61effd1cd 100644
--- a/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/example1/source/SourceFactory.java
+++ b/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/example1/source/SourceFactory.java
@@ -77,15 +77,6 @@ public interface SourceFactory extends EFactory {
SRoot createSRoot();
/**
- * Returns a new object of class '<em>SElement</em>'.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @return a new object of class '<em>SElement</em>'.
- * @generated
- */
- SElement createSElement();
-
- /**
* Returns a new object of class '<em>Path Name CS</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
diff --git a/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/example1/source/SourcePackage.java b/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/example1/source/SourcePackage.java
index 9e0f86c07..15f206f8a 100644
--- a/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/example1/source/SourcePackage.java
+++ b/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/example1/source/SourcePackage.java
@@ -499,13 +499,22 @@ public interface SourcePackage extends EPackage {
int PATH_NAME_CS__PATH = SELEMENT_FEATURE_COUNT + 0;
/**
+ * The feature id for the '<em><b>Context</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PATH_NAME_CS__CONTEXT = SELEMENT_FEATURE_COUNT + 1;
+
+ /**
* The number of structural features of the '<em>Path Name CS</em>' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int PATH_NAME_CS_FEATURE_COUNT = SELEMENT_FEATURE_COUNT + 1;
+ int PATH_NAME_CS_FEATURE_COUNT = SELEMENT_FEATURE_COUNT + 2;
/**
* The number of operations of the '<em>Path Name CS</em>' class.
@@ -545,13 +554,22 @@ public interface SourcePackage extends EPackage {
int PATH_ELEMENT_CS__NAME = SELEMENT_FEATURE_COUNT + 0;
/**
+ * The feature id for the '<em><b>Path Name</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PATH_ELEMENT_CS__PATH_NAME = SELEMENT_FEATURE_COUNT + 1;
+
+ /**
* The number of structural features of the '<em>Path Element CS</em>' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int PATH_ELEMENT_CS_FEATURE_COUNT = SELEMENT_FEATURE_COUNT + 1;
+ int PATH_ELEMENT_CS_FEATURE_COUNT = SELEMENT_FEATURE_COUNT + 2;
/**
* The number of operations of the '<em>Path Element CS</em>' class.
@@ -776,6 +794,17 @@ public interface SourcePackage extends EPackage {
EReference getPathNameCS_Path();
/**
+ * Returns the meta object for the reference '{@link example1.source.PathNameCS#getContext <em>Context</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Context</em>'.
+ * @see example1.source.PathNameCS#getContext()
+ * @see #getPathNameCS()
+ * @generated
+ */
+ EReference getPathNameCS_Context();
+
+ /**
* Returns the meta object for class '{@link example1.source.PathElementCS <em>Path Element CS</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -797,6 +826,17 @@ public interface SourcePackage extends EPackage {
EAttribute getPathElementCS_Name();
/**
+ * Returns the meta object for the container reference '{@link example1.source.PathElementCS#getPathName <em>Path Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the container reference '<em>Path Name</em>'.
+ * @see example1.source.PathElementCS#getPathName()
+ * @see #getPathElementCS()
+ * @generated
+ */
+ EReference getPathElementCS_PathName();
+
+ /**
* Returns the factory that creates the instances of the model.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -996,6 +1036,14 @@ public interface SourcePackage extends EPackage {
EReference PATH_NAME_CS__PATH = eINSTANCE.getPathNameCS_Path();
/**
+ * The meta object literal for the '<em><b>Context</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PATH_NAME_CS__CONTEXT = eINSTANCE.getPathNameCS_Context();
+
+ /**
* The meta object literal for the '{@link example1.source.impl.PathElementCSImpl <em>Path Element CS</em>}' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -1013,6 +1061,14 @@ public interface SourcePackage extends EPackage {
*/
EAttribute PATH_ELEMENT_CS__NAME = eINSTANCE.getPathElementCS_Name();
+ /**
+ * The meta object literal for the '<em><b>Path Name</b></em>' container reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PATH_ELEMENT_CS__PATH_NAME = eINSTANCE.getPathElementCS_PathName();
+
}
} //SourcePackage
diff --git a/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/example1/source/impl/PathElementCSImpl.java b/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/example1/source/impl/PathElementCSImpl.java
index 4cc4fbce4..2f57c5417 100644
--- a/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/example1/source/impl/PathElementCSImpl.java
+++ b/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/example1/source/impl/PathElementCSImpl.java
@@ -13,13 +13,17 @@
package example1.source.impl;
import example1.source.PathElementCS;
+import example1.source.PathNameCS;
import example1.source.SourcePackage;
import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
/**
* <!-- begin-user-doc -->
@@ -30,6 +34,7 @@ import org.eclipse.emf.ecore.impl.ENotificationImpl;
* </p>
* <ul>
* <li>{@link example1.source.impl.PathElementCSImpl#getName <em>Name</em>}</li>
+ * <li>{@link example1.source.impl.PathElementCSImpl#getPathName <em>Path Name</em>}</li>
* </ul>
*
* @generated
@@ -100,11 +105,98 @@ public class PathElementCSImpl extends SElementImpl implements PathElementCS {
* <!-- end-user-doc -->
* @generated
*/
+ public PathNameCS getPathName() {
+ if (eContainerFeatureID() != SourcePackage.PATH_ELEMENT_CS__PATH_NAME) return null;
+ return (PathNameCS)eInternalContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetPathName(PathNameCS newPathName, NotificationChain msgs) {
+ msgs = eBasicSetContainer((InternalEObject)newPathName, SourcePackage.PATH_ELEMENT_CS__PATH_NAME, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPathName(PathNameCS newPathName) {
+ if (newPathName != eInternalContainer() || (eContainerFeatureID() != SourcePackage.PATH_ELEMENT_CS__PATH_NAME && newPathName != null)) {
+ if (EcoreUtil.isAncestor(this, newPathName))
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ if (newPathName != null)
+ msgs = ((InternalEObject)newPathName).eInverseAdd(this, SourcePackage.PATH_NAME_CS__PATH, PathNameCS.class, msgs);
+ msgs = basicSetPathName(newPathName, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SourcePackage.PATH_ELEMENT_CS__PATH_NAME, newPathName, newPathName));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case SourcePackage.PATH_ELEMENT_CS__PATH_NAME:
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ return basicSetPathName((PathNameCS)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case SourcePackage.PATH_ELEMENT_CS__PATH_NAME:
+ return basicSetPathName(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+ switch (eContainerFeatureID()) {
+ case SourcePackage.PATH_ELEMENT_CS__PATH_NAME:
+ return eInternalContainer().eInverseRemove(this, SourcePackage.PATH_NAME_CS__PATH, PathNameCS.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
@Override
public Object eGet(int featureID, boolean resolve, boolean coreType) {
switch (featureID) {
case SourcePackage.PATH_ELEMENT_CS__NAME:
return getName();
+ case SourcePackage.PATH_ELEMENT_CS__PATH_NAME:
+ return getPathName();
}
return super.eGet(featureID, resolve, coreType);
}
@@ -120,6 +212,9 @@ public class PathElementCSImpl extends SElementImpl implements PathElementCS {
case SourcePackage.PATH_ELEMENT_CS__NAME:
setName((String)newValue);
return;
+ case SourcePackage.PATH_ELEMENT_CS__PATH_NAME:
+ setPathName((PathNameCS)newValue);
+ return;
}
super.eSet(featureID, newValue);
}
@@ -135,6 +230,9 @@ public class PathElementCSImpl extends SElementImpl implements PathElementCS {
case SourcePackage.PATH_ELEMENT_CS__NAME:
setName(NAME_EDEFAULT);
return;
+ case SourcePackage.PATH_ELEMENT_CS__PATH_NAME:
+ setPathName((PathNameCS)null);
+ return;
}
super.eUnset(featureID);
}
@@ -149,6 +247,8 @@ public class PathElementCSImpl extends SElementImpl implements PathElementCS {
switch (featureID) {
case SourcePackage.PATH_ELEMENT_CS__NAME:
return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case SourcePackage.PATH_ELEMENT_CS__PATH_NAME:
+ return getPathName() != null;
}
return super.eIsSet(featureID);
}
diff --git a/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/example1/source/impl/PathNameCSImpl.java b/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/example1/source/impl/PathNameCSImpl.java
index 1032fa284..00e37d4e0 100644
--- a/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/example1/source/impl/PathNameCSImpl.java
+++ b/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/example1/source/impl/PathNameCSImpl.java
@@ -14,10 +14,12 @@ package example1.source.impl;
import example1.source.PathElementCS;
import example1.source.PathNameCS;
+import example1.source.SElement;
import example1.source.SourcePackage;
import java.util.Collection;
+import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.notify.NotificationChain;
import org.eclipse.emf.common.util.EList;
@@ -25,7 +27,8 @@ import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.InternalEObject;
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
import org.eclipse.emf.ecore.util.InternalEList;
/**
@@ -37,6 +40,7 @@ import org.eclipse.emf.ecore.util.InternalEList;
* </p>
* <ul>
* <li>{@link example1.source.impl.PathNameCSImpl#getPath <em>Path</em>}</li>
+ * <li>{@link example1.source.impl.PathNameCSImpl#getContext <em>Context</em>}</li>
* </ul>
*
* @generated
@@ -53,6 +57,16 @@ public class PathNameCSImpl extends SElementImpl implements PathNameCS {
protected EList<PathElementCS> path;
/**
+ * The cached value of the '{@link #getContext() <em>Context</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getContext()
+ * @generated
+ * @ordered
+ */
+ protected SElement context;
+
+ /**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
@@ -78,7 +92,7 @@ public class PathNameCSImpl extends SElementImpl implements PathNameCS {
*/
public EList<PathElementCS> getPath() {
if (path == null) {
- path = new EObjectContainmentEList<PathElementCS>(PathElementCS.class, this, SourcePackage.PATH_NAME_CS__PATH);
+ path = new EObjectContainmentWithInverseEList<PathElementCS>(PathElementCS.class, this, SourcePackage.PATH_NAME_CS__PATH, SourcePackage.PATH_ELEMENT_CS__PATH_NAME);
}
return path;
}
@@ -88,6 +102,59 @@ public class PathNameCSImpl extends SElementImpl implements PathNameCS {
* <!-- end-user-doc -->
* @generated
*/
+ public SElement getContext() {
+ if (context != null && context.eIsProxy()) {
+ InternalEObject oldContext = (InternalEObject)context;
+ context = (SElement)eResolveProxy(oldContext);
+ if (context != oldContext) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, SourcePackage.PATH_NAME_CS__CONTEXT, oldContext, context));
+ }
+ }
+ return context;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SElement basicGetContext() {
+ return context;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setContext(SElement newContext) {
+ SElement oldContext = context;
+ context = newContext;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SourcePackage.PATH_NAME_CS__CONTEXT, oldContext, context));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case SourcePackage.PATH_NAME_CS__PATH:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getPath()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
@Override
public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
switch (featureID) {
@@ -107,6 +174,9 @@ public class PathNameCSImpl extends SElementImpl implements PathNameCS {
switch (featureID) {
case SourcePackage.PATH_NAME_CS__PATH:
return getPath();
+ case SourcePackage.PATH_NAME_CS__CONTEXT:
+ if (resolve) return getContext();
+ return basicGetContext();
}
return super.eGet(featureID, resolve, coreType);
}
@@ -124,6 +194,9 @@ public class PathNameCSImpl extends SElementImpl implements PathNameCS {
getPath().clear();
getPath().addAll((Collection<? extends PathElementCS>)newValue);
return;
+ case SourcePackage.PATH_NAME_CS__CONTEXT:
+ setContext((SElement)newValue);
+ return;
}
super.eSet(featureID, newValue);
}
@@ -139,6 +212,9 @@ public class PathNameCSImpl extends SElementImpl implements PathNameCS {
case SourcePackage.PATH_NAME_CS__PATH:
getPath().clear();
return;
+ case SourcePackage.PATH_NAME_CS__CONTEXT:
+ setContext((SElement)null);
+ return;
}
super.eUnset(featureID);
}
@@ -153,6 +229,8 @@ public class PathNameCSImpl extends SElementImpl implements PathNameCS {
switch (featureID) {
case SourcePackage.PATH_NAME_CS__PATH:
return path != null && !path.isEmpty();
+ case SourcePackage.PATH_NAME_CS__CONTEXT:
+ return context != null;
}
return super.eIsSet(featureID);
}
diff --git a/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/example1/source/impl/SElementImpl.java b/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/example1/source/impl/SElementImpl.java
index 6ad6f0fd9..d616a264a 100644
--- a/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/example1/source/impl/SElementImpl.java
+++ b/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/example1/source/impl/SElementImpl.java
@@ -35,7 +35,7 @@ import example1.source.SourcePackage;
*
* @generated
*/
-public class SElementImpl extends MinimalEObjectImpl.Container implements SElement {
+public abstract class SElementImpl extends MinimalEObjectImpl.Container implements SElement {
/**
* The cached value of the '{@link #getAst() <em>Ast</em>}' reference.
* <!-- begin-user-doc -->
diff --git a/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/example1/source/impl/SourceFactoryImpl.java b/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/example1/source/impl/SourceFactoryImpl.java
index b10d424fe..abfc4d25d 100644
--- a/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/example1/source/impl/SourceFactoryImpl.java
+++ b/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/example1/source/impl/SourceFactoryImpl.java
@@ -77,7 +77,6 @@ public class SourceFactoryImpl extends EFactoryImpl implements SourceFactory {
case SourcePackage.Y2: return createY2();
case SourcePackage.Z: return createZ();
case SourcePackage.SROOT: return createSRoot();
- case SourcePackage.SELEMENT: return createSElement();
case SourcePackage.PATH_NAME_CS: return createPathNameCS();
case SourcePackage.PATH_ELEMENT_CS: return createPathElementCS();
default:
@@ -140,16 +139,6 @@ public class SourceFactoryImpl extends EFactoryImpl implements SourceFactory {
* <!-- end-user-doc -->
* @generated
*/
- public SElement createSElement() {
- SElementImpl sElement = new SElementImpl();
- return sElement;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
public PathNameCS createPathNameCS() {
PathNameCSImpl pathNameCS = new PathNameCSImpl();
return pathNameCS;
diff --git a/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/example1/source/impl/SourcePackageImpl.java b/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/example1/source/impl/SourcePackageImpl.java
index b47c04d60..c0a1da2dc 100644
--- a/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/example1/source/impl/SourcePackageImpl.java
+++ b/tests/org.eclipse.qvtd.cs2as.compiler.tests/tests-gen/example1/source/impl/SourcePackageImpl.java
@@ -341,6 +341,15 @@ public class SourcePackageImpl extends EPackageImpl implements SourcePackage {
* <!-- end-user-doc -->
* @generated
*/
+ public EReference getPathNameCS_Context() {
+ return (EReference)pathNameCSEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
public EClass getPathElementCS() {
return pathElementCSEClass;
}
@@ -359,6 +368,15 @@ public class SourcePackageImpl extends EPackageImpl implements SourcePackage {
* <!-- end-user-doc -->
* @generated
*/
+ public EReference getPathElementCS_PathName() {
+ return (EReference)pathElementCSEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
public SourceFactory getSourceFactory() {
return (SourceFactory)getEFactoryInstance();
}
@@ -409,9 +427,11 @@ public class SourcePackageImpl extends EPackageImpl implements SourcePackage {
pathNameCSEClass = createEClass(PATH_NAME_CS);
createEReference(pathNameCSEClass, PATH_NAME_CS__PATH);
+ createEReference(pathNameCSEClass, PATH_NAME_CS__CONTEXT);
pathElementCSEClass = createEClass(PATH_ELEMENT_CS);
createEAttribute(pathElementCSEClass, PATH_ELEMENT_CS__NAME);
+ createEReference(pathElementCSEClass, PATH_ELEMENT_CS__PATH_NAME);
}
/**
@@ -474,14 +494,16 @@ public class SourcePackageImpl extends EPackageImpl implements SourcePackage {
initEClass(sRootEClass, SRoot.class, "SRoot", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getSRoot_OwnedX(), this.getX(), null, "ownedX", null, 0, -1, SRoot.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEClass(sElementEClass, SElement.class, "SElement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEClass(sElementEClass, SElement.class, "SElement", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getSElement_Ast(), ecorePackage.getEObject(), null, "ast", null, 0, 1, SElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(pathNameCSEClass, PathNameCS.class, "PathNameCS", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
- initEReference(getPathNameCS_Path(), this.getPathElementCS(), null, "path", null, 1, -1, PathNameCS.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getPathNameCS_Path(), this.getPathElementCS(), this.getPathElementCS_PathName(), "path", null, 1, -1, PathNameCS.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getPathNameCS_Context(), this.getSElement(), null, "context", null, 0, 1, PathNameCS.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(pathElementCSEClass, PathElementCS.class, "PathElementCS", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getPathElementCS_Name(), ecorePackage.getEString(), "name", null, 0, 1, PathElementCS.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getPathElementCS_PathName(), this.getPathNameCS(), this.getPathNameCS_Path(), "pathName", null, 0, 1, PathElementCS.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
// Create resource
createResource(eNS_URI);

Back to the top