Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEd Willink2016-05-03 16:50:36 -0400
committerEd Willink2016-05-05 09:32:13 -0400
commit01667e893a7dd149a656483233d06f59a856d584 (patch)
treed9dc1d4b122d15df610be798fff52a10b793bd84
parent870063bf97055385918a4f3ecc9c95c1dd4452a3 (diff)
downloadorg.eclipse.qvtd-01667e893a7dd149a656483233d06f59a856d584.tar.gz
org.eclipse.qvtd-01667e893a7dd149a656483233d06f59a856d584.tar.xz
org.eclipse.qvtd-01667e893a7dd149a656483233d06f59a856d584.zip
[486722] Ongoing refactoring
-rw-r--r--plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtp2qvts/ScheduleState.java4
-rw-r--r--plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/AbstractQVTr2QVTcRelations.java559
-rw-r--r--plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/Checked.ecore14
-rw-r--r--plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/Checked2Enforced.ecore21
-rw-r--r--plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/Enforced.ecore14
-rw-r--r--plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/InvokedRelationToMappingForEnforcement.java114
-rw-r--r--plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/Principles.qvtc39
-rw-r--r--plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/Principles.qvtr16
-rw-r--r--plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/Principles.textile122
-rw-r--r--plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/QVTrToQVTc.java279
-rw-r--r--plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/RelationalTransformationToTracePackage.java74
-rw-r--r--plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/TopLevelRelationToMappingForEnforcement.java73
-rw-r--r--plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/qvtrsrc/SimplerRelToCorePivotizedBeautyfied.qvtr2
-rw-r--r--tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/AllQVTrelationTests.java2
-rw-r--r--tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/QVTrCompilerTests.java8
-rw-r--r--tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/rel2core/RelToCore.qvtr (renamed from tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/rel2core/SimplerRelToCorePivotizedBeautyfied.qvtr)106
-rw-r--r--tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/rel2core/samples/Rel2Core.qvtras8143
-rw-r--r--tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/rel2core/samples/Rel2Core_expected.oclas (renamed from tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/rel2core/samples/Rel2Core_expected.ecore)0
18 files changed, 9031 insertions, 559 deletions
diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtp2qvts/ScheduleState.java b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtp2qvts/ScheduleState.java
index 503c3f1d7..bd1a29b85 100644
--- a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtp2qvts/ScheduleState.java
+++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtp2qvts/ScheduleState.java
@@ -550,7 +550,7 @@ public abstract class ScheduleState extends ScheduleCache
//
// If the caller is a recursion, ensure the the caller's caller is on the stack.
//
- for (@NonNull DatumConnection incomingConnection1 : getIncomingConnections(region)) { // FIXME passed
+/* for (@NonNull DatumConnection incomingConnection1 : getIncomingConnections(region)) { // FIXME passed
for (@NonNull Region sourceRegion1 : getSourceRegions(incomingConnection1)) {
if (sourceRegion1.getLoopingConnections().size() > 0) {
for (@NonNull DatumConnection incomingConnection2 : getIncomingConnections(sourceRegion1)) { // FIXME passed
@@ -560,7 +560,7 @@ public abstract class ScheduleState extends ScheduleCache
}
}
}
- }
+ } */
while (!callStack.contains(commonRegion)) {
commonRegion = getMinimumDepthParentRegion(commonRegion);
assert commonRegion != null;
diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/AbstractQVTr2QVTcRelations.java b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/AbstractQVTr2QVTcRelations.java
index ab806377b..88d676698 100644
--- a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/AbstractQVTr2QVTcRelations.java
+++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/AbstractQVTr2QVTcRelations.java
@@ -17,16 +17,21 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.jdt.annotation.Nullable;
import org.eclipse.ocl.pivot.CollectionLiteralExp;
import org.eclipse.ocl.pivot.CollectionLiteralPart;
import org.eclipse.ocl.pivot.CollectionType;
import org.eclipse.ocl.pivot.CompleteClass;
+import org.eclipse.ocl.pivot.Element;
import org.eclipse.ocl.pivot.IntegerLiteralExp;
import org.eclipse.ocl.pivot.NamedElement;
import org.eclipse.ocl.pivot.NavigationCallExp;
import org.eclipse.ocl.pivot.OCLExpression;
import org.eclipse.ocl.pivot.OperationCallExp;
+import org.eclipse.ocl.pivot.PivotFactory;
import org.eclipse.ocl.pivot.Property;
import org.eclipse.ocl.pivot.Type;
import org.eclipse.ocl.pivot.Variable;
@@ -36,17 +41,16 @@ import org.eclipse.qvtd.compiler.CompilerChainException;
import org.eclipse.qvtd.pivot.qvtbase.Domain;
import org.eclipse.qvtd.pivot.qvtbase.Pattern;
import org.eclipse.qvtd.pivot.qvtbase.Predicate;
-import org.eclipse.qvtd.pivot.qvtbase.Rule;
import org.eclipse.qvtd.pivot.qvtbase.Transformation;
import org.eclipse.qvtd.pivot.qvtbase.TypedModel;
import org.eclipse.qvtd.pivot.qvtcore.Mapping;
import org.eclipse.qvtd.pivot.qvtcore.utilities.QVTcoreHelper;
-import org.eclipse.qvtd.pivot.qvtcorebase.Area;
import org.eclipse.qvtd.pivot.qvtcorebase.BottomPattern;
import org.eclipse.qvtd.pivot.qvtcorebase.CoreDomain;
import org.eclipse.qvtd.pivot.qvtcorebase.CorePattern;
import org.eclipse.qvtd.pivot.qvtcorebase.GuardPattern;
import org.eclipse.qvtd.pivot.qvtcorebase.NavigationAssignment;
+import org.eclipse.qvtd.pivot.qvtcorebase.QVTcoreBaseFactory;
import org.eclipse.qvtd.pivot.qvtcorebase.RealizedVariable;
import org.eclipse.qvtd.pivot.qvtcorebase.VariableAssignment;
import org.eclipse.qvtd.pivot.qvtrelation.DomainPattern;
@@ -64,8 +68,56 @@ import org.eclipse.qvtd.pivot.qvttemplate.TemplateExp;
{
protected abstract class AbstractEnforceableRelationDomain2CoreMapping
{
+ protected abstract class AbstractOtherRelationDomain2CoreDomain
+ {
+ protected final @NonNull RelationDomain rOtherDomain; // A not-enforced domain wrt the enforced domain
+ protected final @NonNull String rOtherDomainName;
+ protected final @NonNull TypedModel rOtherTypedModel;
+ protected final @NonNull TypedModel cOtherTypedModel;
+ protected final @NonNull CoreDomain cOtherDomain;
+ protected final @NonNull GuardPattern cOtherGuardPattern;
+ protected final @NonNull BottomPattern cOtherBottomPattern;
+
+ public AbstractOtherRelationDomain2CoreDomain(@NonNull RelationDomain rOtherDomain) {
+ this.rOtherDomain = rOtherDomain;
+ this.rOtherDomainName = ClassUtil.nonNullState(rOtherDomain.getName());
+ this.rOtherTypedModel = ClassUtil.nonNullState(rOtherDomain.getTypedModel());
+ this.cOtherTypedModel = getCoreTypedModel(rOtherTypedModel);
+ this.cOtherDomain = qvtr2qvtc.whenCoreDomain(cMapping, rOtherDomainName);
+ cOtherDomain.setTypedModel(cOtherTypedModel);
+ cOtherDomain.setIsCheckable(rOtherDomain.isIsCheckable());
+ cOtherDomain.setIsEnforceable(false);
+ this.cOtherGuardPattern = ClassUtil.nonNullState(cOtherDomain.getGuardPattern());
+ this.cOtherBottomPattern = ClassUtil.nonNullState(cOtherDomain.getBottomPattern());
+ }
+
+ public abstract void mapOtherDomainToDomainVariablesAndPatterns() throws CompilerChainException;
+ }
+
+ /**
+ * An ExpressionCopier deep copies an OCLExpression tree, exploiting the forward traceability of context to
+ * update references and using sibling to distinguish multiple targets.
+ */
+ @SuppressWarnings("serial")
+ protected class ExpressionCopier extends EcoreUtil.Copier
+ {
+ @Override
+ public EObject get(Object oIn) {
+ if (oIn instanceof Element) {
+ List<Element> oOuts = source2targets.get(oIn);
+ if (oOuts != null) {
+ assert oOuts.size() == 1;
+ return oOuts.get(0);
+ }
+ }
+ return super.get(oIn);
+ }
+ }
+
// Relations
protected final @NonNull RelationDomain rEnforcedDomain; // rd: This source enforced domain
+ protected final @NonNull TypedModel rEnforcedTypedModel; // rEnforcedDomain.getTypedModel()
+ protected final @NonNull String rEnforcedDomainName; // rEnforcedDomain.getName()
protected final @NonNull List<@NonNull Variable> rEnforcedDomainVariables; // All variables defined or referenced in this domain
// @Deprecated
// protected final @NonNull /*Object*/TemplateExp rEnforcedTemplateExpression; // te: The template expression defining the enforced domain pattern
@@ -73,7 +125,7 @@ import org.eclipse.qvtd.pivot.qvttemplate.TemplateExp;
// @Deprecated
// protected final @NonNull Variable rEnforcedRootVariable; // tev: The template expression variable (the root variable of the enforced domain pattern)
protected final @NonNull List<@NonNull Variable> rEnforcedRootVariables; // tev: The template expression variable (the root variable of the enforced domain pattern)
- protected final @NonNull List<@NonNull RelationDomain> rOtherDomains; // All other domains sharing the parent of this domain
+ protected final @NonNull List<@NonNull AbstractOtherRelationDomain2CoreDomain> otherDomain2coreDomains; // All other domains sharing the parent of this domain
protected final @NonNull Set<@NonNull Variable> rOtherDomainVariables; // All variables defined or referenced in other domains
// Core
protected final @NonNull Mapping cMapping; // m: The resultant mapping
@@ -85,6 +137,43 @@ import org.eclipse.qvtd.pivot.qvttemplate.TemplateExp;
protected final @NonNull BottomPattern cEnforcedBottomPattern; // db: The resultant enforced domain bottom pattern
protected final @NonNull RealizedVariable cMiddleRealizedVariable; // tcv: The trace class variable (the middle variable identifying the middle object)
+ /**
+ * The lazily created named RealizedVariables in each CorePattern.
+ */
+ private @NonNull Map<@NonNull CorePattern, @NonNull Map<@NonNull String, @NonNull RealizedVariable>> pattern2name2realizedVariable
+ = new HashMap<@NonNull CorePattern, @NonNull Map<@NonNull String, @NonNull RealizedVariable>>();
+
+ /**
+ * The lazily created named RealizedVariables in each CorePattern.
+ */
+ private @NonNull Map<@NonNull CorePattern, @NonNull Map<@NonNull String, @NonNull Variable>> pattern2name2variable
+ = new HashMap<@NonNull CorePattern, @NonNull Map<@NonNull String, @NonNull Variable>>();
+
+ /**
+ * The lazily created RealizedVariables per Relation Variable in each CorePattern.
+ */
+ private @NonNull Map<@NonNull CorePattern, @NonNull Map<@NonNull Variable, @NonNull RealizedVariable>> pattern2variable2realizedVariable
+ = new HashMap<@NonNull CorePattern, @NonNull Map<@NonNull Variable, @NonNull RealizedVariable>>();
+
+ /**
+ * The lazily created Core Variable for each Relation Variable in each CorePattern.
+ */
+ private @NonNull Map<@NonNull CorePattern, @NonNull Map<@NonNull Variable, @NonNull Variable>> pattern2variable2variable
+ = new HashMap<@NonNull CorePattern, @NonNull Map<@NonNull Variable, @NonNull Variable>>();
+
+ /**
+ * The core Variable for each relation Variable in a chosen mapping.
+ */
+ private final @NonNull Map<@NonNull Variable, @NonNull Variable> rVariable2cVariable = new HashMap<@NonNull Variable, @NonNull Variable>();
+
+ /**
+ * The names allocated in each relation.
+ */
+ private final @NonNull Map<@NonNull String, @NonNull Element> name2element = new HashMap<@NonNull String, @NonNull Element>();
+
+ private final @NonNull Map<@NonNull Element, @NonNull List<@NonNull Element>> source2targets = new HashMap<@NonNull Element, @NonNull List<@NonNull Element>>();
+ private final @NonNull Map<@NonNull Element, @NonNull Element> target2source = new HashMap<@NonNull Element, @NonNull Element>();
+
public AbstractEnforceableRelationDomain2CoreMapping(@NonNull RelationDomain rEnforcedDomain, @NonNull String cMappingName) {
this.rEnforcedDomain = rEnforcedDomain;
//
@@ -94,21 +183,11 @@ import org.eclipse.qvtd.pivot.qvttemplate.TemplateExp;
this.rEnforcedRootVariables = getRootVariables(rEnforcedDomain);
// this.rEnforcedTemplateExpression = /*(ObjectTemplateExp)*/ ClassUtil.nonNullState(rEnforcedDomainPattern.getTemplateExpression());
// this.rEnforcedRootVariable = ClassUtil.nonNullState(rEnforcedTemplateExpression.getBindsTo());
- @NonNull TypedModel rEnforcedTypedModel = ClassUtil.nonNullState(rEnforcedDomain.getTypedModel());
+ this.rEnforcedTypedModel = ClassUtil.nonNullState(rEnforcedDomain.getTypedModel());
@NonNull String rRelationName = ClassUtil.nonNullState(rRelation.getName());
- @NonNull String rEnforcedDomainName = ClassUtil.nonNullState(rEnforcedDomain.getName());
+ this.rEnforcedDomainName = ClassUtil.nonNullState(rEnforcedDomain.getName());
@NonNull Type traceClass = qvtr2qvtc.getTraceClass(rRelation);
//
- this.rOtherDomains = new ArrayList<@NonNull RelationDomain>();
- this.rOtherDomainVariables = new HashSet<@NonNull Variable>();
- for (@NonNull Domain rDomain : ClassUtil.nullFree(rEnforcedDomain.getRule().getDomain())) {
- if ((rDomain != rEnforcedDomain) && (rDomain instanceof RelationDomain)) {
- RelationDomain rRelationDomain = (RelationDomain)rDomain;
- rOtherDomains.add(rRelationDomain);
- rOtherDomainVariables.addAll(getDomainVariables(rRelationDomain));
- }
- }
- //
this.cEnforcedTypedModel = getCoreTypedModel(rEnforcedTypedModel);
this.cMapping = qvtr2qvtc.whenMapping(rRelation, cMappingName);
this.cMiddleGuardPattern = ClassUtil.nonNullState(cMapping.getGuardPattern());
@@ -116,7 +195,17 @@ import org.eclipse.qvtd.pivot.qvttemplate.TemplateExp;
this.cEnforcedDomain = qvtr2qvtc.whenCoreDomain(cMapping, rEnforcedDomainName);
this.cEnforcedGuardPattern = ClassUtil.nonNullState(cEnforcedDomain.getGuardPattern());
this.cEnforcedBottomPattern = ClassUtil.nonNullState(cEnforcedDomain.getBottomPattern());
- this.cMiddleRealizedVariable = qvtr2qvtc.whenRealizedVariable(cMiddleBottomPattern, rRelationName+"_"+rEnforcedDomainName+"_v", traceClass); // 42
+ this.cMiddleRealizedVariable = whenRealizedVariable(cMiddleBottomPattern, rRelationName+"_"+rEnforcedDomainName+"_v", traceClass); // 42
+ //
+ this.otherDomain2coreDomains = new ArrayList<@NonNull AbstractOtherRelationDomain2CoreDomain>();
+ this.rOtherDomainVariables = new HashSet<@NonNull Variable>();
+ for (@NonNull Domain rDomain : ClassUtil.nullFree(rEnforcedDomain.getRule().getDomain())) {
+ if ((rDomain != rEnforcedDomain) && (rDomain instanceof RelationDomain)) {
+ RelationDomain rRelationDomain = (RelationDomain)rDomain;
+ otherDomain2coreDomains.add(createOtherDomain2CoreDomain(rRelationDomain));
+ rOtherDomainVariables.addAll(getDomainVariables(rRelationDomain));
+ }
+ }
}
// 2
@@ -161,7 +250,7 @@ import org.eclipse.qvtd.pivot.qvttemplate.TemplateExp;
}
else {
OCLExpression mMember = mapExpression(rMember);
- mVariable = createVariable(qvtr2qvtc.getSafeName(rRelation, mMember, "member"), mMember);
+ mVariable = createVariable(getSafeName(mMember, "member"), mMember);
}
rMember2mVariable.put(rMember, mVariable);
}
@@ -276,6 +365,7 @@ import org.eclipse.qvtd.pivot.qvttemplate.TemplateExp;
}
protected void addPredicate(@NonNull CorePattern cCorePattern, @NonNull OCLExpression cExpression) {
+ System.out.println("addPredicate " + cExpression);
Predicate cPredicate = createPredicate(cExpression);
cCorePattern.getPredicate().add(cPredicate);
}
@@ -287,6 +377,7 @@ import org.eclipse.qvtd.pivot.qvttemplate.TemplateExp;
if (!cProperty.isIsMany() || (cExpression.getType() instanceof CollectionType)) {
VariableExp cSlotVariableExp = createVariableExp(cVariable);
NavigationAssignment cAssignment = createNavigationAssignment(cSlotVariableExp, cProperty, cExpression);
+ System.out.println("addPropertyAssignment " + cAssignment);
cBottomPattern.getAssignment().add(cAssignment);
return;
}
@@ -294,6 +385,7 @@ import org.eclipse.qvtd.pivot.qvttemplate.TemplateExp;
if ((cOppositeProperty != null) && (cExpression instanceof VariableExp) && (!cOppositeProperty.isIsMany() || (cVariable.getType() instanceof CollectionType))) {
VariableExp cSlotVariableExp = (VariableExp)cExpression;
NavigationAssignment cAssignment = createNavigationAssignment(cSlotVariableExp, cOppositeProperty, createVariableExp(cVariable));
+ System.out.println("addPropertyAssignment " + cAssignment);
cBottomPattern.getAssignment().add(cAssignment);
return;
}
@@ -307,22 +399,22 @@ import org.eclipse.qvtd.pivot.qvttemplate.TemplateExp;
if (rExpression instanceof ObjectTemplateExp) {
// body of RDomainPatternExprToMappingDomainTemplateVarAssignment
Variable rBoundVariable = ClassUtil.nonNullState(((ObjectTemplateExp)rExpression).getBindsTo());
- if (!rMiddleDomainVariables.contains(rBoundVariable)) {
- Variable cBoundVariable = getCoreVariable(rBoundVariable);
- cTargetVariable = doRVarToMRealizedVar(rTargetVariable);
+ if (!rSharedVariables.contains(rBoundVariable)) {
+ Variable cBoundVariable = getCoreVariable(rBoundVariable); // FIXME whenVariable(cMiddleBottomPattern, rBoundVariable);
+ cTargetVariable = getCoreVariable(rTargetVariable); //getCoreRealizedVariable(rTargetVariable);
cExpression = createVariableExp(cBoundVariable);
}
}
else if (rExpression instanceof VariableExp) {
Variable rReferredVariable = ClassUtil.nonNullState((Variable) ((VariableExp)rExpression).getReferredVariable());
Variable cReferredVariable = getCoreVariable(rReferredVariable);
- if (rMiddleDomainVariables.contains(rReferredVariable) ) {
+ if (rSharedVariables.contains(rReferredVariable) ) {
// body of RDomainPatternExprToMappingBottomVarAssignment
- cTargetVariable = doRVarToMRealizedVar(rTargetVariable);
+ cTargetVariable = getCoreRealizedVariable(rTargetVariable);
}
else {
// body of RDomainPatternExprToMappingDomainVarAssignment
- cTargetVariable = doRVarToMRealizedVar(rTargetVariable);
+ cTargetVariable = getCoreRealizedVariable(rTargetVariable);
cEnforcedBottomPattern.getRealizedVariable().add((RealizedVariable)cTargetVariable);
}
cExpression = createVariableExp(cReferredVariable);
@@ -346,14 +438,10 @@ import org.eclipse.qvtd.pivot.qvttemplate.TemplateExp;
*
* ve1:T{tp = ve2} => ve1.tp := ve2;
*/
- Variable vpte = ClassUtil.nonNullState((Variable) e.getReferredVariable());
- Variable mvpte = getCoreVariable(vpte);
- if (rMiddleDomainVariables.contains(vpte)) {
- addPropertyAssignment(cMiddleBottomPattern, cTemplateVariable, traceProperty, createVariableExp(mvpte));
- }
- else {
- addPropertyAssignment(cEnforcedBottomPattern, cTemplateVariable, traceProperty, createVariableExp(mvpte));
- }
+ Variable rVariable/*vpte*/ = ClassUtil.nonNullState((Variable) e.getReferredVariable());
+ Variable cVariable/*mvpte*/ = getCoreVariable(rVariable);
+ BottomPattern cBottomPattern = rSharedVariables.contains(rVariable) ? cMiddleBottomPattern : cEnforcedBottomPattern;
+ addPropertyAssignment(cBottomPattern, cTemplateVariable, traceProperty, createVariableExp(cVariable));
}
// // RDomainPatternToMDBottomPattern
@@ -382,6 +470,10 @@ import org.eclipse.qvtd.pivot.qvttemplate.TemplateExp;
else {
}
+ OCLExpression rGuardPredicate = rTemplateExpression.getWhere();
+ if (rGuardPredicate != null) {
+ cMiddleBottomPattern.getPredicate().add(createPredicate(mapExpression(rGuardPredicate)));
+ }
}
// loop body of RDomainPatternToMDBottomPatternSimpleNonVarExpr
@@ -395,41 +487,7 @@ import org.eclipse.qvtd.pivot.qvttemplate.TemplateExp;
addPropertyAssignment(cMiddleBottomPattern, cTemplateVariable, traceProperty, mapExpression(ptv));
}
- // 15
- /*
- * Creates a Predicate, who's ConditionExpression is an
- * OperationCallExp:
- * trace.<v.name> = v;
- * TODO Suggest better name: RDomainPatternVariableToTracePredicate?
- */
- private void doRDomainToMBottomPredicateForEnforcement(@NonNull Set<@NonNull Predicate> predicatesWithoutVarBindings, @NonNull Set<@NonNull Variable> unboundDomainVars) throws CompilerChainException
- {
- Set<@NonNull Variable> remainingUnBoundDomainVars = new HashSet<@NonNull Variable>(unboundDomainVars);
- remainingUnBoundDomainVars.removeAll(rEnforcedRootVariables);
- Set<@NonNull Predicate> predicatesWithVarBindings =
- selectPredicatesThatReferToVariables(predicatesWithoutVarBindings, remainingUnBoundDomainVars);
- mapPredicatesToPredicates(predicatesWithVarBindings);
- // assign
- for (@NonNull Variable v : rEnforcedRootVariables) {
- @NonNull Variable mv = getCoreVariable(v);
- Property pep = getProperty(cMiddleRealizedVariable.getType(), v);
- NavigationCallExp pe = createNavigationCallExp(createVariableExp(cMiddleRealizedVariable), pep);
- addConditionPredicate(cMiddleBottomPattern, pe, createVariableExp(mv));
- }
- }
-
- // 20
- private void doRDomainToMDBottomForEnforcementOfNonIdentityPropObject(@NonNull Set<@NonNull Predicate> predicatesWithoutVarBindings, @NonNull Set<@NonNull Variable> unboundDomainVars)
- {
- // check
- // FIXME not c.key.part->includes(pp)
- // when
-// RelationalTransformation rt = (RelationalTransformation) r.getTransformation();
-// assert rt != null;
-// @NonNull Transformation mt = qvtr2qvtc.getCoreTransformation(rt);
- // TODO Finish when clear about if the call should be uncommented
- // ...
- }
+ protected abstract @NonNull AbstractOtherRelationDomain2CoreDomain createOtherDomain2CoreDomain(@NonNull RelationDomain rRelationDomain);
// 50
/*
@@ -459,46 +517,9 @@ import org.eclipse.qvtd.pivot.qvttemplate.TemplateExp;
}*/
- // 18
- /*
- * Creates Assignments for each part of the ObjectTemplateExp
- */
- private void doRDomainToMDBottomForEnforcementOfIdentityProp() throws CompilerChainException
- {
- for (@NonNull TemplateExp rEnforcedTemplateExpression : rEnforcedTemplateExpressions) {
- Variable v = rEnforcedTemplateExpression.getBindsTo();
- assert v != null;
- Type c = v.getType();
- assert c != null;
- Area area = cEnforcedBottomPattern.getArea();
- assert area instanceof CoreDomain : "Missing CoreDomain for doRDomainToMDBottomForEnforcementOfIdentityProp";
- CoreDomain cd = (CoreDomain) area;
- Rule rule = cd.getRule();
- assert rule instanceof Mapping : "Missing Mapping for doRDomainToMDBottomForEnforcementOfIdentityProp";
- Mapping m = (Mapping) rule;
- BottomPattern mb = m.getBottomPattern();
- assert mb != null;
- if (rEnforcedTemplateExpression instanceof ObjectTemplateExp) {
- for (@NonNull PropertyTemplateItem pt : ClassUtil.nullFree(((ObjectTemplateExp)rEnforcedTemplateExpression).getPart())) {
- final Property partProperty = ClassUtil.nonNullState(pt.getReferredProperty());
- // check relations
- Key key = qvtr2qvtc.getKeyforType(c);
- if ((key != null) && key.getPart().contains(partProperty)) {
- final OCLExpression partValue = ClassUtil.nonNullState(pt.getValue());
- addPropertyAssignmentToMiddleBottomPattern(v, partProperty, partValue);
- }
- }
- }
- else {
- // throw new CompilerChainException("Missing doInvokedRelationToMappingForEnforcement support for CollectionTemplateExp");
- System.err.println("Missing doRDomainToMDBottomForEnforcementOfIdentityProp support for CollectionTemplateExp");
- }
- }
- }
-
- private @NonNull /*Realized*/Variable doRVarToMRealizedVar(@NonNull Variable rv) {
- @NonNull /*Realized*/Variable mv = /*(RealizedVariable)*/ qvtr2qvtc.getCoreVariable(cMapping, rv);
- return mv;
+ private @NonNull RealizedVariable getCoreRealizedVariable(@NonNull Variable rv) {
+ @NonNull /*Realized*/Variable mv = /*(RealizedVariable)*/ getCoreVariable(rv);
+ return (@NonNull RealizedVariable) mv;
}
protected @NonNull TypedModel getCoreTypedModel(@NonNull TypedModel rTypedModel) {
@@ -514,7 +535,7 @@ import org.eclipse.qvtd.pivot.qvttemplate.TemplateExp;
}
protected @NonNull Variable getCoreVariable(@NonNull Variable rVariable) { // doRVarToMVar
- return qvtr2qvtc.getCoreVariable(cMapping, rVariable);
+ return ClassUtil.nonNullState(rVariable2cVariable.get(rVariable));
}
protected @NonNull List<@NonNull Variable> getDomainVariables(@NonNull RelationDomain rRelationDomain) {
@@ -544,6 +565,25 @@ import org.eclipse.qvtd.pivot.qvttemplate.TemplateExp;
relationDomains.remove(rEnforcedDomain);
return relationDomains;
}
+
+ public @NonNull String getSafeName(@NonNull Element newElement, @NonNull String name) {
+ Element oldElement = name2element.get(name);
+ if (oldElement == newElement) {
+ return name;
+ }
+ if (oldElement == null) {
+ name2element.put(name, newElement);
+ return name;
+ }
+ for (int i = 1; true; i++) {
+ String newName = name + "_" + i;
+ oldElement = name2element.get(newName);
+ if (oldElement == null) {
+ name2element.put(newName, newElement);
+ return newName;
+ }
+ }
+ }
protected @NonNull List<@NonNull TemplateExp> getTemplateExpressions(@NonNull RelationDomain rRelationDomain) {
List<@NonNull TemplateExp> rTemplateExpressions = new ArrayList<@NonNull TemplateExp>();
@@ -578,9 +618,11 @@ import org.eclipse.qvtd.pivot.qvttemplate.TemplateExp;
TemplateExp rTemplateExpression = qvtr2qvtc.getTemplateExpression(rDomainVariable);
// if (dvte instanceof ObjectTemplateExp) {
// tp=dv:T{...} => tcv.tp := dv;
- Variable cVariable = getCoreVariable(rDomainVariable);
- Property cProperty = getProperty(cMiddleRealizedVariable.getType(), rDomainVariable);
- addPropertyAssignment(cMiddleBottomPattern, cMiddleRealizedVariable, cProperty, createVariableExp(cVariable));
+ Property cProperty = basicGetProperty(cMiddleRealizedVariable.getType(), rDomainVariable);
+ if (cProperty != null) { // null for dead variables
+ Variable cVariable = getCoreVariable(rDomainVariable);
+ addPropertyAssignment(cMiddleBottomPattern, cMiddleRealizedVariable, cProperty, createVariableExp(cVariable));
+ }
// }
/* else if (dvte instanceof CollectionTemplateExp) {
// tp=dv:T{...} => tcv.tp := dv;
@@ -605,9 +647,17 @@ import org.eclipse.qvtd.pivot.qvttemplate.TemplateExp;
Set<@NonNull Predicate> predicatesWithVarBindings = selectPredicatesThatReferToVariables(predicatesWithoutVarBindings, nonRootEnforcedBottomDomainVariables);
Set<@NonNull Predicate> remainingPredicatesWithoutVarBindings = new HashSet<@NonNull Predicate>(predicatesWithoutVarBindings);
remainingPredicatesWithoutVarBindings.removeAll(predicatesWithVarBindings);
- for (@NonNull TemplateExp rEnforcedTemplateExpression : rEnforcedTemplateExpressions) {
- Variable rTemplateVariable = ClassUtil.nonNullState(rEnforcedTemplateExpression.getBindsTo());
- Type rTemplateVariableType = ClassUtil.nonNullState(rTemplateVariable.getType());
+ for (@NonNull TemplateExp rEnforcedTemplateExpression/*te*/ : rEnforcedTemplateExpressions) {
+ mapEnforcedDomain(rEnforcedTemplateExpression);
+ }
+ }
+
+ // RDomainToMDBottomForEnforcement
+ private void mapEnforcedDomain(@NonNull TemplateExp rEnforcedTemplateExpression/*te*/) throws CompilerChainException
+ {
+// for (@NonNull TemplateExp rEnforcedTemplateExpression/*te*/ : rEnforcedTemplateExpressions) {
+ Variable rTemplateVariable/*v*/ = ClassUtil.nonNullState(rEnforcedTemplateExpression.getBindsTo());
+ Type rTemplateVariableType/*c*/ = ClassUtil.nonNullState(rTemplateVariable.getType());
Key key = qvtr2qvtc.getKeyforType(rTemplateVariableType);
// if (key == null){
// // Nothing to do
@@ -615,16 +665,45 @@ import org.eclipse.qvtd.pivot.qvttemplate.TemplateExp;
/*else*/ if (rEnforcedTemplateExpression instanceof ObjectTemplateExp) {
for (@NonNull PropertyTemplateItem pt : ClassUtil.nullFree(((ObjectTemplateExp)rEnforcedTemplateExpression).getPart())) {
Property rPartProperty = ClassUtil.nonNullState(pt.getReferredProperty());
- OCLExpression rPartValue = ClassUtil.nonNullState(pt.getValue());
+ OCLExpression rPartValue/*pte*/ = ClassUtil.nonNullState(pt.getValue());
if ((key != null) && key.getPart().contains(rPartProperty)) {
// body of RDomainToMDBottomForEnforcementOfIdentityProp
addPropertyAssignmentToMiddleBottomPattern(rTemplateVariable, rPartProperty, rPartValue);
}
- else if (!(rPartValue instanceof TemplateExp)) {
+ else if (rPartValue instanceof TemplateExp) {
+ // body of RDomainToMDBottomForEnforcementOfNonIdentityPropObject
+ TemplateExp pte = (TemplateExp)rPartValue;
+ Variable pv = pte.getBindsTo();
+ Mapping composedMapping = cMapping; //qvtr2qvtc.createMapping(); //whenMapping(rRelation, cMapping.getName()+"_for_"+pv.name);
+// GuardPattern composedMappingGuardPattern = ClassUtil.nonNullState(composedMapping.getGuardPattern());
+ CoreDomain composedEnforcedDomain = cEnforcedDomain;//qvtr2qvtc.whenCoreDomain(composedMapping, rEnforcedDomainName);
+// composedEnforcedDomain.setIsEnforceable(true);
+// composedEnforcedDomain.setTypedModel(cEnforcedTypedModel);
+// GuardPattern composedEnforcedGuardPattern = composedEnforcedDomain.getGuardPattern();
+ BottomPattern composedEnforcedBottomPattern = cEnforcedBottomPattern;//ClassUtil.nonNullState(composedEnforcedDomain.getBottomPattern());
+
+
+// /*Realized*/Variable cTargetVariable/*mpv*/ = mapRealizedVariable(pv);
+ /*Realized*/Variable cTargetVariable/*mpv*/ = rWhenVariables.contains(pv) ? getCoreVariable(pv) : whenRealizedVariable(composedEnforcedBottomPattern, pv);
+
+ Variable cTemplateVariable/*mv*/ = getCoreVariable(rTemplateVariable);
+ Property cTargetProperty = getProperty(cTemplateVariable.getType(), rPartProperty);
+ addPropertyAssignment(composedEnforcedBottomPattern, cTemplateVariable, cTargetProperty, createVariableExp(cTargetVariable));
+// FIXME mapEnforcedDomain(pte);
+// cMapping.getLocal().add(composedMapping);
+ Property cTargetProperty2 = getProperty(cMiddleRealizedVariable.getType(), cTargetVariable);
+ addPropertyAssignment(cMiddleBottomPattern, cMiddleRealizedVariable, cTargetProperty2, createVariableExp(cTargetVariable));
+ }
+ else {
// body of RDomainToMDBottomForEnforcementOfNonIdentityPropPrimitive
- Mapping composedMapping = qvtr2qvtc.createMapping(); //whenMapping(rRelation, cMapping.getName()+"_forNonIdentityProp");
- BottomPattern composedBottomPattern = ClassUtil.nonNullState(composedMapping.getBottomPattern());
+ Mapping composedMapping = cMapping; //qvtr2qvtc.createMapping(); //whenMapping(rRelation, cMapping.getName()+"_forNonIdentityProp");
+ BottomPattern composedBottomPattern = cMiddleBottomPattern; //BClassUtil.nonNullState(composedMapping.getBottomPattern());
// composedMapping.getGuardPattern();
+ GuardPattern composedMappingGuardPattern = ClassUtil.nonNullState(composedMapping.getGuardPattern());
+ CoreDomain composedEnforcedDomain = cEnforcedDomain;//qvtr2qvtc.whenCoreDomain(composedMapping, rEnforcedDomainName);
+ GuardPattern composedEnforcedGuardPattern = cEnforcedGuardPattern;//composedEnforcedDomain.getGuardPattern();
+ // where
+ @SuppressWarnings("unused")BottomPattern composedMappingBottomPattern = cMiddleBottomPattern;//ClassUtil.nonNullState(composedMapping.getBottomPattern());
Variable cTemplateVariable = getCoreVariable(rTemplateVariable);
//RDomainToMComposedMappingGuardrEnforcedDomain
for (@NonNull TemplateExp rTemplateExpression : rEnforcedTemplateExpressions) {
@@ -632,30 +711,19 @@ import org.eclipse.qvtd.pivot.qvttemplate.TemplateExp;
// check
Variable rReferredVariable = (Variable) ClassUtil.nonNullState(((VariableExp) rPartValue).getReferredVariable());
if (isVarBoundToSomeOtherTemplate((ObjectTemplateExp) rTemplateExpression, rEnforcedTemplateExpression, rReferredVariable)) {
- String rEnforcedDomainName = ClassUtil.nonNullState(rEnforcedDomain.getName());
- TypedModel rTypedModel = rEnforcedDomain.getTypedModel();
- if (rTransformation != rTypedModel.getTransformation())
- return;
- // init
- GuardPattern composedMappingGuardPattern = ClassUtil.nonNullState(composedMapping.getGuardPattern());
- CoreDomain composedEnforcedDomain = qvtr2qvtc.whenCoreDomain(composedMapping, rEnforcedDomainName);
- GuardPattern composedEnforcedGuardPattern = composedEnforcedDomain.getGuardPattern();
- // where
- @SuppressWarnings("unused")BottomPattern composedMappingBottomPattern = ClassUtil.nonNullState(composedMapping.getBottomPattern());
Variable cReferredVariable = getCoreVariable(rReferredVariable);
// assign
Property cTargetProperty = getProperty(cReferredVariable.getType(), cReferredVariable);
NavigationCallExp cPropertyCallExp = createNavigationCallExp(createVariableExp(cMiddleRealizedVariable), cTargetProperty);
addConditionPredicate(composedMappingGuardPattern, cPropertyCallExp, createVariableExp(cReferredVariable));
- TypedModel cTypedModel = getCoreTypedModel(rTypedModel);
- composedEnforcedDomain.setTypedModel(cTypedModel);
+// composedEnforcedDomain.setTypedModel(cEnforcedTypedModel);
composedEnforcedGuardPattern.getBindsTo().add(cReferredVariable);
- composedEnforcedDomain.setGuardPattern(composedEnforcedGuardPattern);
+// composedEnforcedDomain.setGuardPattern(composedEnforcedGuardPattern);
}
}
Property cTargetProperty = getProperty(cTemplateVariable.getType(), rPartProperty);
addPropertyAssignment(composedBottomPattern, cTemplateVariable, cTargetProperty, mapExpression(rPartValue));
- cMapping.getLocal().add(composedMapping);
+// cMapping.getLocal().add(composedMapping);
}
}
}
@@ -674,9 +742,32 @@ import org.eclipse.qvtd.pivot.qvttemplate.TemplateExp;
Variable cTemplateVariable = getCoreVariable(rTemplateVariable);
Property cTargetProperty = getProperty(cMiddleRealizedVariable.getType(), rTemplateVariable);
addPropertyAssignment(cMiddleBottomPattern, cMiddleRealizedVariable, cTargetProperty, createVariableExp(cTemplateVariable));
- }
+// }
}
+ // 15
+ /*
+ * Creates a Predicate, who's ConditionExpression is an
+ * OperationCallExp:
+ * trace.<v.name> = v;
+ * TODO Suggest better name: RDomainPatternVariableToTracePredicate?
+ *
+ private void doRDomainToMBottomPredicateForEnforcement(@NonNull Set<@NonNull Predicate> predicatesWithoutVarBindings, @NonNull Set<@NonNull Variable> unboundDomainVars) throws CompilerChainException
+ {
+ Set<@NonNull Variable> remainingUnBoundDomainVars = new HashSet<@NonNull Variable>(unboundDomainVars);
+ remainingUnBoundDomainVars.removeAll(rEnforcedRootVariables);
+ Set<@NonNull Predicate> predicatesWithVarBindings =
+ selectPredicatesThatReferToVariables(predicatesWithoutVarBindings, remainingUnBoundDomainVars);
+ mapPredicatesToPredicates(predicatesWithVarBindings);
+ // assign
+ for (@NonNull Variable v : rEnforcedRootVariables) {
+ @NonNull Variable mv = getCoreVariable(v);
+ Property pep = getProperty(cMiddleRealizedVariable.getType(), v);
+ NavigationCallExp pe = createNavigationCallExp(createVariableExp(cMiddleRealizedVariable), pep);
+ addConditionPredicate(cMiddleBottomPattern, pe, createVariableExp(mv));
+ }
+ } */
+
/*
* The issue with this method is that all variables should have been
* transformed so all variable references can be correctly pointed.
@@ -685,10 +776,18 @@ import org.eclipse.qvtd.pivot.qvttemplate.TemplateExp;
*/
// 25
protected @NonNull OCLExpression mapExpression(@NonNull OCLExpression rExpression) {
-// OCLExpCopy oCLExpCopy = new OCLExpCopy(qvtr2qvtc);
-
-// return (OCLExpression) ClassUtil.nonNullState(oCLExpCopy.doSwitch(re));
- return qvtr2qvtc.copy(rExpression, null);
+ EcoreUtil.Copier copier = new ExpressionCopier();
+ OCLExpression eOut = (OCLExpression) copier.copy(rExpression);
+ copier.copyReferences();
+ for (EObject eSource : copier.keySet()) {
+ EObject eTarget = copier.get(eSource);
+ if (eTarget != null) {
+ assert eSource != null;
+ putTrace((Element)eTarget, (Element)eSource);
+ }
+ }
+ assert eOut != null;
+ return eOut;
}
protected void mapPredicatesToPredicates(@NonNull Iterable<@NonNull Predicate> rPredicates) { // RPredicateSetToMBPredicateSet
@@ -715,7 +814,7 @@ import org.eclipse.qvtd.pivot.qvttemplate.TemplateExp;
}
protected @NonNull RealizedVariable mapRealizedVariable(@NonNull Variable rVariable) {
- return qvtr2qvtc.whenRealizedVariable(cEnforcedBottomPattern, rVariable);
+ return whenRealizedVariable(cEnforcedBottomPattern, rVariable);
}
/**
@@ -726,7 +825,7 @@ import org.eclipse.qvtd.pivot.qvttemplate.TemplateExp;
* @param cMiddleBottomPattern the mb
*/
// RRelImplToMBottomEnforcementOperation
- protected void mapRelationImplemantationToEnforcementOperation() {
+ protected void mapRelationImplementationToEnforcementOperation() {
// TODO Code this when testing transformations with operational implementations.
@@ -734,7 +833,7 @@ import org.eclipse.qvtd.pivot.qvttemplate.TemplateExp;
protected void mapVariablesToVariables(@NonNull Iterable<@NonNull Variable> rVariables, @NonNull CorePattern cPattern) { // RVarSetToDGVarSet, RVarSetToMBVarSet
for (@NonNull Variable rVariable : rVariables) {
- qvtr2qvtc.whenVariable(cPattern, rVariable);
+ whenVariable(cPattern, rVariable);
}
}
@@ -768,7 +867,7 @@ import org.eclipse.qvtd.pivot.qvttemplate.TemplateExp;
//RWhenRelCallArgToMGuardPredicate
Variable dv = rRelationDomain.getRootVariable().get(0);
Variable v = (Variable) ClassUtil.nonNullState(ve.getReferredVariable());
- Variable vd = qvtr2qvtc.whenVariable(cMiddleGuardPattern, tc.getName()+vdId+"_v", tc);
+ Variable vd = whenVariable(cMiddleGuardPattern, tc.getName()+vdId+"_v", tc);
Variable mv = getCoreVariable(v);
Property pep = getProperty(vd.getType(), dv);
NavigationCallExp pe = createNavigationCallExp(createVariableExp(vd), pep);
@@ -787,6 +886,28 @@ import org.eclipse.qvtd.pivot.qvttemplate.TemplateExp;
}
}
+ protected void putCoreVariable(@NonNull Variable relationVariable, @NonNull Variable coreVariable) {
+// Mapping mapping = QVTcoreUtil.getContainingMapping(coreVariable);
+// assert mapping != null;
+ Variable oldVal = rVariable2cVariable.put(relationVariable, coreVariable);
+ // Variables should only be traced once
+ if (oldVal != null) {
+ System.out.println("putCoreVariable replacing value for " + relationVariable.getName());
+ }
+ putTrace(coreVariable, relationVariable);
+ }
+
+ private void putTrace(@NonNull Element coreElement, @NonNull Element relationElement) {
+ Element oldRelationElement = target2source.put(coreElement, relationElement);
+ assert oldRelationElement == null;
+ List<@NonNull Element> targets = source2targets.get(relationElement);
+ if (targets == null) {
+ targets = new ArrayList<@NonNull Element> ();
+ source2targets.put(relationElement, targets);
+ }
+ targets.add(coreElement);
+ }
+
protected @NonNull Set<@NonNull Predicate> selectPredicatesThatReferToVariables(@NonNull Set<@NonNull Predicate> rPredicates, @NonNull Set<@NonNull Variable> rVariables) {
Set<@NonNull Predicate> rPredicatesThatReferToVariables = new HashSet<@NonNull Predicate>();
for (Predicate rPredicate : rPredicates) {
@@ -810,7 +931,108 @@ import org.eclipse.qvtd.pivot.qvttemplate.TemplateExp;
@Override
public @NonNull String toString() {
- return rRelation.getName() + "::" + rEnforcedDomain.getName() + " => " + cMapping.getName() + "::" + cEnforcedDomain.getName();
+ return rRelation.getName() + "::" + rEnforcedDomainName + " => " + cMapping.getName() + "::" + cEnforcedDomain.getName();
+ }
+
+ /**
+ * Lazily create the RealizedVariable for a corePattern corresponding to a relationVariable.
+ */
+ private @NonNull RealizedVariable whenRealizedVariable(@NonNull BottomPattern corePattern, @NonNull Variable relationVariable) {
+ Map<@NonNull Variable, @NonNull RealizedVariable> variable2realizedVariable = pattern2variable2realizedVariable.get(corePattern);
+ if (variable2realizedVariable == null) {
+ variable2realizedVariable = new HashMap<@NonNull Variable, @NonNull RealizedVariable>();
+ pattern2variable2realizedVariable.put(corePattern, variable2realizedVariable);
+ }
+ RealizedVariable realizedVariable = variable2realizedVariable.get(relationVariable);
+ if (realizedVariable == null) {
+ String name = relationVariable.getName();
+ Type type = relationVariable.getType();
+ assert (name != null) && (type != null);
+ realizedVariable = QVTcoreBaseFactory.eINSTANCE.createRealizedVariable();
+ realizedVariable.setName(name);
+ realizedVariable.setType(type);
+ realizedVariable.setIsRequired(true);
+ variable2realizedVariable.put(relationVariable, realizedVariable);
+ corePattern.getRealizedVariable().add(realizedVariable);
+ putCoreVariable(relationVariable, realizedVariable);
+ }
+ return realizedVariable;
+ }
+
+ /**
+ * Lazily create the name RealizedVariable for a corePattern with a type.
+ */
+ private @NonNull RealizedVariable whenRealizedVariable(@NonNull BottomPattern corePattern, @NonNull String name, @NonNull Type type) {
+ Map<@NonNull String, @NonNull RealizedVariable> name2realizedVariable = pattern2name2realizedVariable.get(corePattern);
+ if (name2realizedVariable == null) {
+ name2realizedVariable = new HashMap<@NonNull String, @NonNull RealizedVariable>();
+ pattern2name2realizedVariable.put(corePattern, name2realizedVariable);
+ }
+ RealizedVariable realizedVariable = name2realizedVariable.get(name);
+ if (realizedVariable == null) {
+ realizedVariable = QVTcoreBaseFactory.eINSTANCE.createRealizedVariable();
+ realizedVariable.setName(name);
+ realizedVariable.setType(type);
+ realizedVariable.setIsRequired(true);;
+ name2realizedVariable.put(name, realizedVariable);
+ corePattern.getRealizedVariable().add(realizedVariable);
+// putTrace(realizedVariable, corePattern);
+ }
+ else {
+ assert realizedVariable.getType() == type;
+ }
+ return realizedVariable;
+ }
+
+ /**
+ * Lazily create the Variable for a corePattern corresponding to a relationVariable.
+ */
+ private @NonNull Variable whenVariable(@NonNull CorePattern corePattern, @NonNull Variable relationVariable) {
+ String name2 = relationVariable.getName();
+ Map<@NonNull Variable, @NonNull Variable> variable2variable = pattern2variable2variable.get(corePattern);
+ if (variable2variable == null) {
+ variable2variable = new HashMap<@NonNull Variable, @NonNull Variable>();
+ pattern2variable2variable.put(corePattern, variable2variable);
+ }
+ Variable coreVariable = variable2variable.get(relationVariable);
+ if (coreVariable == null) {
+ String name = relationVariable.getName();
+ Type type = relationVariable.getType();
+ assert (name != null) && (type != null);
+ coreVariable = PivotFactory.eINSTANCE.createVariable();
+ coreVariable.setName(name);
+ coreVariable.setType(type);
+ coreVariable.setIsRequired(relationVariable.isIsRequired());
+ variable2variable.put(relationVariable, coreVariable);
+ corePattern.getVariable().add(coreVariable);
+ putCoreVariable(relationVariable, coreVariable);
+ }
+ return coreVariable;
+ }
+
+ /**
+ * Lazily create the name Variable for a corePattern with a type.
+ */
+ protected @NonNull Variable whenVariable(@NonNull CorePattern corePattern, @NonNull String name, @NonNull Type type) {
+ Map<@NonNull String, @NonNull Variable> name2variable = pattern2name2variable.get(corePattern);
+ if (name2variable == null) {
+ name2variable = new HashMap<@NonNull String, @NonNull Variable>();
+ pattern2name2variable.put(corePattern, name2variable);
+ }
+ Variable coreVariable = name2variable.get(name);
+ if (coreVariable == null) {
+ coreVariable = PivotFactory.eINSTANCE.createVariable();
+ coreVariable.setName(name);
+ coreVariable.setType(type);
+ coreVariable.setIsRequired(true);
+ name2variable.put(name, coreVariable);
+ corePattern.getVariable().add(coreVariable);
+ putTrace(coreVariable, corePattern);
+ }
+ else {
+ assert coreVariable.getType() == type;
+ }
+ return coreVariable;
}
protected abstract void where() throws CompilerChainException;
@@ -820,11 +1042,13 @@ import org.eclipse.qvtd.pivot.qvttemplate.TemplateExp;
// Relations
protected final @NonNull Relation rRelation; // r: Parent relation of this domain
protected final @NonNull RelationalTransformation rTransformation; // Parent transformation of parent relation of enforced domain
- protected final @NonNull Set<@NonNull Variable> rAllBoundDomainVariables; // All pattern variables declared in all domains (not CollectionTemplateExp member/rest, Let/Iterator variables)
+ protected final @NonNull Set<@NonNull Variable> rAllBoundDomainVariables; // ??All pattern variables declared in all domains (not CollectionTemplateExp member/rest, Let/Iterator variables)
protected final @NonNull Set<@NonNull Variable> rWhenVariables; // All pattern variables used in when calls
- protected final @NonNull Set<@NonNull Variable> rWhereVariables; // All pattern variables used as where calls
+ protected final @NonNull Set<@NonNull Variable> rWhereVariables; // All pattern variables used in where calls
protected final @NonNull Set<@NonNull Predicate> rPredicates; // All non-RelationCallExp predicates
- protected final @NonNull Set<@NonNull Variable> rMiddleDomainVariables; // All pattern variables shared by more than one domain
+ protected final @NonNull Set<@NonNull Variable> rSharedVariables; // All pattern variables shared by more than one domain
+// protected final @NonNull Set<@NonNull Variable> rUniquePatternVariables; // All pattern variables that bind to exactly one object
+// protected final @NonNull Set<@NonNull Variable> rNonUniquePatternVariables; // All pattern variables that bind to more than one object, typically as a Collection iterator
protected final @NonNull Set<@NonNull Variable> rMiddleBottomDomainVariables;
// Core
protected final @NonNull Transformation cTransformation; // mt: The transformation containing the result mapping
@@ -835,12 +1059,21 @@ import org.eclipse.qvtd.pivot.qvttemplate.TemplateExp;
this.rRelation = rRelation;
this.rTransformation = (RelationalTransformation) ClassUtil.nonNullState(rRelation.getTransformation());
//
+// this.rUniquePatternVariables = new HashSet<@NonNull Variable>();
+// this.rNonUniquePatternVariables = new HashSet<@NonNull Variable>();
+// for (@NonNull Domain rDomain : ClassUtil.nullFree(rRelation.getDomain())) {
+// for (@NonNull DomainPattern rDomainPattern : ClassUtil.nullFree(((RelationDomain)rDomain).getPattern())) {
+// gatherPatternVariables(this.rUniquePatternVariables, this.rNonUniquePatternVariables, true, rDomainPattern.getTemplateExpression());
+// }
+// }
this.rAllBoundDomainVariables = new HashSet<@NonNull Variable>();
for (@NonNull Domain rDomain : ClassUtil.nullFree(rRelation.getDomain())) {
for (@NonNull DomainPattern rDomainPattern : ClassUtil.nullFree(((RelationDomain)rDomain).getPattern())) {
this.rAllBoundDomainVariables.addAll(ClassUtil.nullFree(rDomainPattern.getBindsTo()));
}
}
+// rAllBoundDomainVariables.addAll(rUniquePatternVariables);
+// rAllBoundDomainVariables.addAll(rNonUniquePatternVariables);
//
this.rWhenVariables = new HashSet<@NonNull Variable>();
Pattern rWhenPattern = rRelation.getWhen();
@@ -860,17 +1093,49 @@ import org.eclipse.qvtd.pivot.qvttemplate.TemplateExp;
}
}
//
- this.rMiddleDomainVariables = qvtr2qvtc.getMiddleDomainVariables(rRelation);
+ this.rSharedVariables = qvtr2qvtc.getMiddleDomainVariables(rRelation);
//
this.rMiddleBottomDomainVariables = new HashSet<@NonNull Variable>(rWhereVariables);
rMiddleBottomDomainVariables.removeAll(rWhenVariables);
rMiddleBottomDomainVariables.removeAll(rAllBoundDomainVariables);
- rMiddleBottomDomainVariables.addAll(rMiddleDomainVariables); // FIXME this stinks
+ rMiddleBottomDomainVariables.addAll(rSharedVariables); // FIXME this stinks
//
this.cTransformation = qvtr2qvtc.getCoreTransformation(rTransformation);
}
+
+ protected @Nullable Property basicGetProperty(/*@NonNull*/ Type aClass, @NonNull NamedElement rNamedElement) throws CompilerChainException {
+ /*@NonNull*/ String name = rNamedElement.getName();
+ assert (aClass != null) && (name != null);
+ CompleteClass completeClass = environmentFactory.getCompleteModel().getCompleteClass(aClass);
+ return completeClass.getProperty(name);
+ }
- /* ============= Helpers ============= */
+ /**
+ * Add each of the domain variables within templateExpression to either uniquePatternVariables or nonUniquePatternVariables
+ * according to whether the variable has a single or multiple bindings in the overall context. The isUnique parameter is
+ * propagated during the recursion as true until a collection is traversed.
+ *
+ private void gatherPatternVariables(@NonNull Set<@NonNull Variable> uniquePatternVariables, @NonNull Set<@NonNull Variable> nonUniquePatternVariables,
+ boolean isUnique, @NonNull TemplateExp templateExpression) {
+ Variable templateVariable = ClassUtil.nonNullState(templateExpression.getBindsTo());
+ (isUnique ? uniquePatternVariables : nonUniquePatternVariables).add(templateVariable);
+ if (templateExpression instanceof ObjectTemplateExp) {
+ for (@NonNull PropertyTemplateItem propertyTemplateItem : ClassUtil.nullFree(((ObjectTemplateExp)templateExpression).getPart())) {
+ Property property = propertyTemplateItem.getReferredProperty();
+ OCLExpression value = propertyTemplateItem.getValue();
+ if (value instanceof TemplateExp) {
+ gatherPatternVariables(uniquePatternVariables, nonUniquePatternVariables, isUnique && !property.isIsMany(), (@NonNull TemplateExp) value);
+ }
+ }
+ }
+ else if (templateExpression instanceof CollectionTemplateExp) {
+ for (@NonNull OCLExpression memberExpression : ClassUtil.nullFree(((CollectionTemplateExp)templateExpression).getMember())) {
+ if (memberExpression instanceof TemplateExp) {
+ gatherPatternVariables(uniquePatternVariables, nonUniquePatternVariables, false, (@NonNull TemplateExp) memberExpression);
+ }
+ }
+ }
+ } */
protected @NonNull Property getProperty(/*@NonNull*/ Type aClass, @NonNull NamedElement rNamedElement) throws CompilerChainException {
/*@NonNull*/ String name = rNamedElement.getName();
diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/Checked.ecore b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/Checked.ecore
new file mode 100644
index 000000000..91306da6c
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/Checked.ecore
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="Checked" nsURI="http://www.eclipse.org/qvtd/xtext/qvtrelation/tests/rel2core/Checked"
+ nsPrefix="Checked">
+ <eClassifiers xsi:type="ecore:EClass" name="CheckedClass">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="checkedProperty" lowerBound="1"
+ eType="#//CheckedClass">
+ <eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
+ <details key="body" value="TObjectTemplateToTraceClassProps"/>
+ <details key="lower" value="1"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/Checked2Enforced.ecore b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/Checked2Enforced.ecore
new file mode 100644
index 000000000..183f0648d
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/Checked2Enforced.ecore
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="Checked2Enforced" nsURI="http://www.eclipse.org/qvtd/xtext/qvtrelation/tests/rel2core/Checked2Enforced"
+ nsPrefix="Checked2Enforced">
+ <eClassifiers xsi:type="ecore:EClass" name="TChecked2Enforced">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="checkedRootVariable" lowerBound="1"
+ eType="ecore:EClass Checked.ecore#//CheckedClass">
+ <eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
+ <details key="body" value="TObjectTemplateToTraceClassProps"/>
+ <details key="lower" value="1"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="enforcedRootVariable" lowerBound="1"
+ eType="ecore:EClass Enforced.ecore#//EnforcedClass">
+ <eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
+ <details key="body" value="TObjectTemplateToTraceClassProps"/>
+ <details key="lower" value="1"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/Enforced.ecore b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/Enforced.ecore
new file mode 100644
index 000000000..a3bfce42c
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/Enforced.ecore
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="Enforced" nsURI="http://www.eclipse.org/qvtd/xtext/qvtrelation/tests/rel2core/Enforced"
+ nsPrefix="Enforced">
+ <eClassifiers xsi:type="ecore:EClass" name="EnforcedClass">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="enforcedProperty" lowerBound="1"
+ eType="#//EnforcedClass">
+ <eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
+ <details key="body" value="TObjectTemplateToTraceClassProps"/>
+ <details key="lower" value="1"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/InvokedRelationToMappingForEnforcement.java b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/InvokedRelationToMappingForEnforcement.java
index 9fb1ee605..23b17b7b6 100644
--- a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/InvokedRelationToMappingForEnforcement.java
+++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/InvokedRelationToMappingForEnforcement.java
@@ -26,10 +26,6 @@ import org.eclipse.ocl.pivot.utilities.ClassUtil;
import org.eclipse.qvtd.compiler.CompilerChainException;
import org.eclipse.qvtd.pivot.qvtbase.Domain;
import org.eclipse.qvtd.pivot.qvtbase.Predicate;
-import org.eclipse.qvtd.pivot.qvtbase.TypedModel;
-import org.eclipse.qvtd.pivot.qvtcorebase.BottomPattern;
-import org.eclipse.qvtd.pivot.qvtcorebase.CoreDomain;
-import org.eclipse.qvtd.pivot.qvtcorebase.GuardPattern;
import org.eclipse.qvtd.pivot.qvtrelation.Relation;
import org.eclipse.qvtd.pivot.qvtrelation.RelationCallExp;
import org.eclipse.qvtd.pivot.qvtrelation.RelationDomain;
@@ -39,88 +35,88 @@ import org.eclipse.qvtd.pivot.qvttemplate.TemplateExp;
{
private class InvokedEnforceableRelationDomain2CoreMapping extends AbstractEnforceableRelationDomain2CoreMapping
{
- private @NonNull Relation rInvokingRelation;
- private @NonNull RelationCallExp rInvocation;
-
- public InvokedEnforceableRelationDomain2CoreMapping(@NonNull RelationCallExp rInvocation, @NonNull RelationDomain rEnforcedDomain, @NonNull String cMappingName) {
- super(rEnforcedDomain, cMappingName);
- this.rInvocation = rInvocation;
- this.rInvokingRelation = qvtr2qvtc.getInvokingRelationForRelationCallExp(rInvocation);
- }
-
- private void doIROppositeDomainsToMappingForEnforcement() throws CompilerChainException {
- for (@NonNull RelationDomain rOtherDomain : rOtherDomains) {
- // check
- String rOtherDomainName = ClassUtil.nonNullState(rOtherDomain.getName());
- TypedModel rOtherTypedModel = ClassUtil.nonNullState(rOtherDomain.getTypedModel());
+ protected class InvokedOtherRelationDomain2CoreDomain extends AbstractOtherRelationDomain2CoreDomain
+ {
+ public InvokedOtherRelationDomain2CoreDomain(@NonNull RelationDomain rOtherDomain) {
+ super(rOtherDomain);
+ }
+
+ // body of IROppositeDomainsToMappingForEnforcement
+ @Override
+ public void mapOtherDomainToDomainVariablesAndPatterns() throws CompilerChainException {
List<@NonNull Variable> rOtherDomainVariables = getDomainVariables(rOtherDomain); //ClassUtil.nullFree(rOtherDomainPattern.getBindsTo());
List<@NonNull TemplateExp> rOtherTemplateExpressions = getTemplateExpressions(rOtherDomain);
List<@NonNull Variable> rOtherRootVariables = getRootVariables(rOtherDomain);
- // when
- // init
- CoreDomain cOtherDomain = qvtr2qvtc.whenCoreDomain(cMapping, rOtherDomainName);
- GuardPattern cOtherGuardPattern = ClassUtil.nonNullState(cOtherDomain.getGuardPattern());
- BottomPattern cOtherBottomPattern = ClassUtil.nonNullState(cOtherDomain.getBottomPattern());
- // where
+ //
Set<@NonNull Variable> rOtherGuardVariables = new HashSet<@NonNull Variable>(rOtherDomainVariables);
rOtherGuardVariables.retainAll(rWhenVariables);
rOtherGuardVariables.addAll(rOtherRootVariables);
+ //
Set<@NonNull Variable> rOtherBottomVariables = new HashSet<@NonNull Variable>(rOtherDomainVariables);
rOtherBottomVariables.removeAll(rWhenVariables);
- rOtherBottomVariables.removeAll(rMiddleDomainVariables);
+ rOtherBottomVariables.removeAll(rSharedVariables);
rOtherBottomVariables.removeAll(rOtherRootVariables);
+ //
Set<@NonNull Variable> rMiddleBottomVariables = new HashSet<@NonNull Variable>(rOtherDomainVariables);
rMiddleBottomVariables.removeAll(rWhenVariables);
- rMiddleBottomVariables.retainAll(rMiddleDomainVariables);
+ rMiddleBottomVariables.retainAll(rSharedVariables);
rMiddleBottomVariables.removeAll(rOtherRootVariables);
-
+ //
mapVariablesToVariables(rOtherGuardVariables, cOtherGuardPattern);
mapVariablesToVariables(rOtherBottomVariables, cOtherBottomPattern);
mapVariablesToVariables(rMiddleBottomVariables, cMiddleBottomPattern);
for (@NonNull TemplateExp rOtherTemplateExpression : rOtherTemplateExpressions) {
addTemplateExpressionToMiddleBottom(rOtherTemplateExpression);
}
- // assign
- TypedModel cOtherTypedModel = getCoreTypedModel(rOtherTypedModel);
- cOtherDomain.setTypedModel(cOtherTypedModel);
- cOtherDomain.setIsCheckable(rOtherDomain.isIsCheckable());
- cOtherDomain.setIsEnforceable(false);
- cOtherDomain.setGuardPattern(cOtherGuardPattern);
}
}
+
+ private @NonNull Relation rInvokingRelation;
+ private @NonNull RelationCallExp rInvocation;
- // ?
- private void doRInvokerToMGuard() throws CompilerChainException {
+ public InvokedEnforceableRelationDomain2CoreMapping(@NonNull RelationCallExp rInvocation, @NonNull RelationDomain rEnforcedDomain, @NonNull String cMappingName) {
+ super(rEnforcedDomain, cMappingName);
+ this.rInvocation = rInvocation;
+ this.rInvokingRelation = qvtr2qvtc.getInvokingRelationForRelationCallExp(rInvocation);
+ }
+
+ @Override
+ protected @NonNull AbstractOtherRelationDomain2CoreDomain createOtherDomain2CoreDomain( @NonNull RelationDomain rRelationDomain) {
+ return new InvokedOtherRelationDomain2CoreDomain(rRelationDomain);
+ }
+
+ // RInvokerToMGuard
+ private void mapInvokerToGuardPredicates() throws CompilerChainException {
// where
List<@NonNull Domain> dseq = new ArrayList<@NonNull Domain>(ClassUtil.nullFree(rRelation.getDomain()));
- List<@NonNull OCLExpression> arguments = ClassUtil.nullFree(rInvocation.getArgument());
- for (@NonNull OCLExpression arg : arguments) {
- VariableExp a = (VariableExp) arg;
- @NonNull RelationDomain rd = (RelationDomain) dseq.get(arguments.indexOf(a));
- doRInvokerToMGuardPredicate(a);
+ List<@NonNull OCLExpression> rArguments = ClassUtil.nullFree(rInvocation.getArgument());
+ for (@NonNull OCLExpression rArgument : rArguments) {
+ VariableExp rArgumentVariableExp = (VariableExp)rArgument;
+ @NonNull RelationDomain rArgumentDomain = (RelationDomain) dseq.get(rArguments.indexOf(rArgumentVariableExp)); // FIXME multi-roots
+ // RInvokerToMGuardPredicate
+ Type traceClass = qvtr2qvtc.getTraceClass(rInvokingRelation);
+ Variable rArgumentVariable = (Variable) ClassUtil.nonNullState(rArgumentVariableExp.getReferredVariable());
+ Variable rRootVariable = ClassUtil.nonNullState(rArgumentDomain.getRootVariable().get(0));
+ Variable vd = whenVariable(cMiddleGuardPattern, traceClass.getName()+"_v", traceClass);
+ Variable cRootVariable = getCoreVariable(rRootVariable);
+ Property cProperty = getProperty(vd.getType(), rArgumentVariable);
+ NavigationCallExp cTraceValue = createNavigationCallExp(createVariableExp(vd), cProperty);
+ addConditionPredicate(cMiddleGuardPattern, cTraceValue, createVariableExp(cRootVariable));
}
}
- private void doRInvokerToMGuardPredicate(@NonNull VariableExp ve) throws CompilerChainException {
- Type tc = qvtr2qvtc.getTraceClass(rInvokingRelation);
- Variable v = (Variable) ClassUtil.nonNullState(ve.getReferredVariable());
- Variable dv = ClassUtil.nonNullState(rEnforcedDomain.getRootVariable().get(0));
- Variable vd = qvtr2qvtc.whenVariable(cMiddleGuardPattern, tc.getName()+"_v", tc);
- Variable mdv = getCoreVariable(dv);
- Property pep = getProperty(vd.getType(), v);
- NavigationCallExp pe = createNavigationCallExp(createVariableExp(vd), pep);
- addConditionPredicate(cMiddleGuardPattern, pe, createVariableExp(mdv));
- }
-
@Override
protected void where() throws CompilerChainException {
Set<@NonNull Variable> rEnforcedBottomDomainVariables = new HashSet<@NonNull Variable>(rEnforcedDomainVariables);
rEnforcedBottomDomainVariables.removeAll(rWhenVariables);
- rEnforcedBottomDomainVariables.removeAll(rMiddleDomainVariables);
+ rEnforcedBottomDomainVariables.removeAll(rSharedVariables);
rEnforcedBottomDomainVariables.removeAll(rEnforcedRootVariables);
+ //
Set<@NonNull Predicate> rPredicatesWithVariableBindings = selectPredicatesThatReferToVariables(rPredicates, rEnforcedBottomDomainVariables);
+ //
Set<@NonNull Predicate> rPredicatesWithoutVariableBindings = new HashSet<@NonNull Predicate>(rPredicates);
rPredicatesWithoutVariableBindings.removeAll(rPredicatesWithVariableBindings);
+ //
Set<@NonNull Variable> rEnforcedDomainGuardVariables = new HashSet<@NonNull Variable>(rEnforcedDomainVariables);
rEnforcedDomainGuardVariables.retainAll(rWhenVariables);
rEnforcedDomainGuardVariables.addAll(rEnforcedRootVariables);
@@ -131,12 +127,16 @@ import org.eclipse.qvtd.pivot.qvttemplate.TemplateExp;
//T4
mapVariablesToVariables(rMiddleBottomDomainVariables, cMiddleBottomPattern);
//T3
- doIROppositeDomainsToMappingForEnforcement();
- doRInvokerToMGuard();
+
+ // IROppositeDomainsToMappingForEnforcement
+ for (@NonNull AbstractOtherRelationDomain2CoreDomain otherDomain2coreDomain : otherDomain2coreDomains) {
+ otherDomain2coreDomain.mapOtherDomainToDomainVariablesAndPatterns();
+ }
+ mapInvokerToGuardPredicates();
mapDomainVariablesToMiddleVariableAssignments(rOtherDomainVariables);
mapWhenPatternToGuardPatterns();
mapEnforcedDomain(rPredicatesWithoutVariableBindings, rEnforcedBottomDomainVariables);
- mapRelationImplemantationToEnforcementOperation();
+ mapRelationImplementationToEnforcementOperation();
}
}
@@ -149,6 +149,7 @@ import org.eclipse.qvtd.pivot.qvttemplate.TemplateExp;
// check() {
@NonNull List<@NonNull InvokedEnforceableRelationDomain2CoreMapping> enforceableRelationDomain2coreMappings = new ArrayList<@NonNull InvokedEnforceableRelationDomain2CoreMapping>();
for (@NonNull RelationCallExp rInvocation : qvtr2qvtc.getRelationCallExpsForRelation(rRelation)) {
+ System.out.println("invocation" + rRelation + " from " + rInvocation);
for (@NonNull Domain rDomain : ClassUtil.nullFree(rRelation.getDomain())) {
if (rDomain.isIsEnforceable()) {
RelationDomain rEnforcedDomain = (RelationDomain)rDomain;
@@ -173,7 +174,6 @@ import org.eclipse.qvtd.pivot.qvttemplate.TemplateExp;
@NonNull Relation rInvokingRelation = qvtr2qvtc.getInvokingRelationForRelationCallExp(rInvocation);
@NonNull String rRelationName = ClassUtil.nonNullState(rRelation.getName());
@NonNull String rRelationNameName = ClassUtil.nonNullState(rInvokingRelation.getName());
- @NonNull String rEnforcedDomainName = ClassUtil.nonNullState(rEnforcedDomain.getName());
- return rRelationName + '_' + rRelationNameName + '_' + rEnforcedDomainName;
+ return rRelationName + '_' + rRelationNameName + '_' + rEnforcedDomain.getName();
}
}
diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/Principles.qvtc b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/Principles.qvtc
new file mode 100644
index 000000000..168d31edd
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/Principles.qvtc
@@ -0,0 +1,39 @@
+import Checked : 'Checked.ecore';
+import Checked2Enforced : 'Checked2Enforced.ecore';
+import Enforced : 'Enforced.ecore';
+
+transformation Principles
+{
+ middle imports Checked2Enforced;
+ checkedDomain imports Checked;
+ enforcedDomain imports Enforced;
+}
+
+map Checked2Enforced__enforced in Principles
+{
+ check checkedDomain(
+ checkedRootVariable:CheckedClass
+ |) {}
+
+ enforce enforcedDomain() {
+ realize enforcedRootVariable:EnforcedClass
+ |}
+
+ enforce middle() {
+ realize Checked2Enforced__enforced_v : TChecked2Enforced
+ |}
+
+ where() {
+/* RelationToTraceClass_core_v.relation := relation;
+ RelationToTraceClass_core_v.relationDomain := relationDomain;
+ RelationToTraceClass_core_v.relationDomainPattern := relationDomainPattern;
+ RelationToTraceClass_core_v.relationName := relationName;
+ RelationToTraceClass_core_v.rootTemplateExp := rootTemplateExp;
+ RelationToTraceClass_core_v.traceClass := traceClass;
+ relation.name := relationName;
+ relationDomain.rule := relation;
+ relationDomainPattern.RelationDomain := relationDomain;
+ relationDomainPattern.templateExpression := rootTemplateExp;
+ traceClass.name := 'T' + relationName; */
+ }
+} \ No newline at end of file
diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/Principles.qvtr b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/Principles.qvtr
new file mode 100644
index 000000000..d648dfe83
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/Principles.qvtr
@@ -0,0 +1,16 @@
+import CheckedMM : 'Checked.ecore';
+import EnforcedMM : 'Enforced.ecore';
+
+transformation Principles(checkedDomain:CheckedMM, enforcedDomain:EnforcedMM)
+{
+ relation Checked2Enforced {
+ domain checkedDomain
+ checkedRootVariable:CheckedClass {
+
+ };
+ enforce domain enforcedDomain
+ enforcedRootVariable:EnforcedClass {
+
+ };
+ }
+} \ No newline at end of file
diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/Principles.textile b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/Principles.textile
new file mode 100644
index 000000000..64b0371c8
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/Principles.textile
@@ -0,0 +1,122 @@
+h3. Relation
+
+Defines domain2domain equivalence of values (objects, or collections)
+
+h3. TraceClass
+
+(supports multidirectional)
+
+h4. Incremental TraceClass
+
+caches everything needed for re-execution, therefore all accessed variable including those accessed by queries.
+RelToCore only attempts direct accesses. Transitive support could require an indeterminate structure.
+Incremental uch better handled by run-time analysis rather than compile-time bloat.
+
+h4. Necessary TraceClass Properties
+
+One property of each domain variable necessary to uniquely distinquish the relation invocation from all its siblings.
+Since not supporting incremental, there is no need for trace-properties for values derived by to-one navigation.
+
+h4. Explicit CollectionTemplate TraceClass Properties
+
+The entire collection has a bound variable; this is a trace class property.
+Members may vay for distinct invocations => each member is a trace class property.
+Rest can be deduced by all less enumerated members => rest is not a trace class property
+
+h3. Implicit Collection matches
+
+aParent:Parent { children = aChild:Child }
+
+Is this a pattern for children=Set{aChild} or children->includes(aChild) (which is also aChild.Parent=aParent) ?
+7.11.2.4 specifies the includes interpretation.
+
+parent:Parent { children = theChildren:Set(Child){aChild++_}} is children->includes(aChild)
+parent:Parent { children = theChildren:Set(Child){aChild}} is children=Set{aChild}
+
+The shorthand trace is {aParent,aChild}
+The explicit includes trace is {aParent,theChildren,aChild}
+The explicit exact trace is {aParent,theChildren,aChild}
+
+theChildren is to-one navigable from aParent, so theChildren is NOT part of the trace.
+
+h3. Nested Implicit Collection matches
+
+Given
+check abcd a:A{bs = b:B{cs = c:C{ds = d:D{}}}
+enforce wxyz w:W{xs = x:X{ys = y:Y{zs = z:Z{}}}
+
+Does this require the invoker to discover a,b,c,d 'before' invocation so that each of a,b,c,d are traced as single objects.
+Corrolary all actions for a,b,c are repeated redundantly for d. Ripples to requiring collection QVTc semnatics.
+
+Or does it require the invoker to discover a, with b,c,d being iterated over a nest of composed mappings?
+
+QVTr: who cares, just do it.
+QVTc: a nest of composed mappings exposes the functionality.
+
+If functionality is all in the a,b,c,d mapping, what happens when there are no ds, the a,b,c must still happen. Composed mappings give this optional behaviour internally. Otherwuse we need more mappings. (QVTc2QVTu splits the composed mappings into the more mappings.)
+
+How are a/w, b/x, c/y, d/z correlated?
+
+"where b2x(b,x)" is an obvious indication that b,x share a composed mapping.
+
+Maybe check and enforce provoke independent composed mapping nests that merge to satisfy mutual variable visiblity.
+
+[Final AttributeToColumn example of Rule 6 is very smelly for an attribute-less class. The use of "attribute" rather than "attributes" has hidden the mutiple. The smelly c.attribute=a meaning c.attributes->includes(a) can be rewritten as a.Class=c to remove the smell.]
+
+aName:String,bName:String,cName:String;
+check abcd a:A{name=aName, bs = b:B{name=bName, cs = c:C{name=cName,ds = d:D{name=dName}}}
+enforce wxyz w:W{name=aName, xs = x:X{name=bName, ys = y:Y{name=cName, zs = z:Z{name=dName}}}
+
+If seen as an optional iteration nest wrt a=>w, bName,cName are multi-valued.
+If seen as ancestry for d=>z, are the ancestor assignments redundant/poor style/pattern matches?
+If seen as a one-valued truth for a,b,c,d then w,x,y,z are find/create. No d is not a truth.
+
+[?? to allow no d, we could allow ds = d:D[?]{name=dName}??]
+
+one-valued truth seems to be promising interpretation.
+
+But which of w,x,y,z are realized? All of them excepting those re-used by when/key.
+
+h2. Annotated Mapping Rules
+
+This section clarifies the approach taken to the QVT's 10.2 Mappinf Rules section.
+
+h3. Rule 1
+
+bq. Corresponding to each relation there exists a trace class in core. The trace class contains a property corresponding to each
+object node in the pattern of each domain of the relation. For example:
+
+bq. relation ClassToTable
+{
+checkonly domain uml c:Class {namespace=p:Package {}, kind='Persistent',
+name=cn}
+checkonly domain rdbms t:Table {schema=s:Schema {}, name=cn}
+}
+
+bq. class TClassToTable
+{
+c: Class;
+p: Package;
+t: Table;
+s: Schema;
+}
+
+bq. For mapping to core we distinguish between two kinds of relations of a transformation: top-level relations and invoked
+relations. By a top-level relation we mean a relation that is not invoked from the where clause of any other relation; by an
+invoked relation we mean a relation that is invoked from the where clause of another relation.
+
+bq. A top-level relation maps to a single core mapping (perhaps with composed mappings), whereas an invoked relation maps
+to a separate mapping for each invoker-invoked combination.
+
+bq. For mapping to core we also distinguish between check-only relations and enforceable relations. A check-only relation
+maps to a single core mapping, whereas an enforceable relation may map to a composite hierarchy of core mappings.
+
+h3. Rule 1 Notes
+
+The surrounding Package is omitted. We generalize and so need a Package hierarchy copy.
+
+"corresponding to each object node in the pattern of each domain of the relation" is vague.
+- it plausibly excludes bloat from attribute values
+- it cannot include implicit/explicit collection iterators
+
+p and s have to-one relationship to c and t so are not needed in the trace.
diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/QVTrToQVTc.java b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/QVTrToQVTc.java
index e9e25deaf..da3f0a2ba 100644
--- a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/QVTrToQVTc.java
+++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/QVTrToQVTc.java
@@ -80,13 +80,10 @@ import org.eclipse.qvtd.pivot.qvtcore.CoreModel;
import org.eclipse.qvtd.pivot.qvtcore.Mapping;
import org.eclipse.qvtd.pivot.qvtcore.QVTcoreFactory;
import org.eclipse.qvtd.pivot.qvtcore.utilities.QVTcoreHelper;
-import org.eclipse.qvtd.pivot.qvtcore.utilities.QVTcoreUtil;
import org.eclipse.qvtd.pivot.qvtcorebase.BottomPattern;
import org.eclipse.qvtd.pivot.qvtcorebase.CoreDomain;
-import org.eclipse.qvtd.pivot.qvtcorebase.CorePattern;
import org.eclipse.qvtd.pivot.qvtcorebase.GuardPattern;
import org.eclipse.qvtd.pivot.qvtcorebase.QVTcoreBaseFactory;
-import org.eclipse.qvtd.pivot.qvtcorebase.RealizedVariable;
import org.eclipse.qvtd.pivot.qvtrelation.DomainPattern;
import org.eclipse.qvtd.pivot.qvtrelation.Key;
import org.eclipse.qvtd.pivot.qvtrelation.Relation;
@@ -124,45 +121,6 @@ public class QVTrToQVTc
}
}
- /**
- * An ExpressionCopier deep copies an OCLExpression tree, exploiting the forward traceability of context to
- * update references and using sibling to distinguish multiple targets.
- */
- @SuppressWarnings("serial")
- protected class ExpressionCopier extends EcoreUtil.Copier
- {
- private final @Nullable Element sibling;
-
- public ExpressionCopier(@Nullable Element sibling) {
- this.sibling = sibling;
- }
-
- @Override
- public EObject get(Object oIn) {
- if (oIn instanceof Element) {
- List<Element> oOuts = source2targets.get(oIn);
- if (oOuts != null) {
- if (sibling == null) {
- assert oOuts.size() == 1;
- return oOuts.get(0);
- }
- Mapping containingMapping = QVTcoreUtil.getContainingMapping(sibling);
- assert containingMapping != null;
- Element theCopy = null;
- for (Element oOut : oOuts) {
- Mapping aMapping = QVTcoreUtil.getContainingMapping(oOut);
- if ((aMapping == containingMapping) || (aMapping == null)) {
- assert theCopy == null;
- theCopy = oOut;
- }
- }
-//FIXME assert theCopy != null;
- return theCopy;
- }
- }
- return super.get(oIn);
- }
- }
protected final @NonNull EnvironmentFactory environmentFactory;
private final @NonNull Resource qvtrResource;
@@ -173,8 +131,8 @@ public class QVTrToQVTc
* Optional configuration of the NsURI of the trace package.
*/
private @Nullable String traceNsURI = null;
- private final @NonNull Map<@NonNull Element, @NonNull Element> target2source = new HashMap<@NonNull Element, @NonNull Element>();
- private final @NonNull Map<@NonNull Element, @NonNull List<@NonNull Element>> source2targets = new HashMap<@NonNull Element, @NonNull List<@NonNull Element>>();
+ private final @NonNull Map<@NonNull Element, @NonNull Element> globalTarget2source = new HashMap<@NonNull Element, @NonNull Element>();
+ private final @NonNull Map<@NonNull Element, @NonNull List<@NonNull Element>> globalSource2targets = new HashMap<@NonNull Element, @NonNull List<@NonNull Element>>();
private final @NonNull List<org.eclipse.ocl.pivot.@NonNull Package> tracePackages = new ArrayList<org.eclipse.ocl.pivot.@NonNull Package>();
// private final @NonNull List<@NonNull Transformation> coreTransformations = new ArrayList<@NonNull Transformation>();
@@ -190,30 +148,6 @@ public class QVTrToQVTc
private final @NonNull Map<@NonNull RelationCallExp, @NonNull Relation> rInvocation2invokingRelation = new HashMap<@NonNull RelationCallExp, @NonNull Relation>();
private @NonNull CoreModel coreModel;
-
- /**
- * The lazily created named RealizedVariables in each CorePattern.
- */
- private @NonNull Map<@NonNull CorePattern, @NonNull Map<@NonNull String, @NonNull RealizedVariable>> pattern2name2realizedVariable
- = new HashMap<@NonNull CorePattern, @NonNull Map<@NonNull String, @NonNull RealizedVariable>>();
-
- /**
- * The lazily created named RealizedVariables in each CorePattern.
- */
- private @NonNull Map<@NonNull CorePattern, @NonNull Map<@NonNull String, @NonNull Variable>> pattern2name2variable
- = new HashMap<@NonNull CorePattern, @NonNull Map<@NonNull String, @NonNull Variable>>();
-
- /**
- * The lazily created RealizedVariables per Relation Variable in each CorePattern.
- */
- private @NonNull Map<@NonNull CorePattern, @NonNull Map<@NonNull Variable, @NonNull RealizedVariable>> pattern2variable2realizedVariable
- = new HashMap<@NonNull CorePattern, @NonNull Map<@NonNull Variable, @NonNull RealizedVariable>>();
-
- /**
- * The lazily created Core Variable for each Relation Variable in each CorePattern.
- */
- private @NonNull Map<@NonNull CorePattern, @NonNull Map<@NonNull Variable, @NonNull Variable>> pattern2variable2variable
- = new HashMap<@NonNull CorePattern, @NonNull Map<@NonNull Variable, @NonNull Variable>>();
/**
* The core Transformation for each RelationalTransformation.
@@ -245,16 +179,6 @@ public class QVTrToQVTc
private @NonNull Map<@NonNull Transformation, @NonNull Map<@NonNull String, @NonNull Mapping>> transformation2name2mapping
= new HashMap<@NonNull Transformation, @NonNull Map<@NonNull String, @NonNull Mapping>>();
- /**
- * The core Variable for each relation Variable in a chosen mapping.
- */
- private final @NonNull Map<@NonNull Mapping, @NonNull Map<@NonNull Variable, @NonNull Variable>> mapping2variable2variable = new HashMap<@NonNull Mapping, @NonNull Map<@NonNull Variable, @NonNull Variable>>();
-
- /**
- * The names allocated in each relation.
- */
- private final @NonNull Map<@NonNull Relation, @NonNull Map<@NonNull String, @NonNull Element>> rule2name2element = new HashMap<@NonNull Relation, @NonNull Map<@NonNull String, @NonNull Element>>();
-
public QVTrToQVTc(@NonNull EnvironmentFactory environmentFactory, @NonNull Resource qvtrResource, @NonNull Resource qvtcResource) {
this.environmentFactory = environmentFactory;
this.qvtrResource = qvtrResource;
@@ -323,29 +247,6 @@ public class QVTrToQVTc
}
}
-
- public void addDebugCopies(@NonNull Map<EObject, EObject> copier) {
- for (EObject eSource : copier.keySet()) {
- EObject eTarget = copier.get(eSource);
- if (eTarget != null) {
- assert eSource != null;
- putTrace((Element)eTarget, (Element)eSource);
- }
- }
- }
-
- /*public*/ @NonNull <T extends Element> T copy(@NonNull T eIn, @Nullable Element sibling) {
-// if (eIn == null) {
-// return null;
-// }
- EcoreUtil.Copier copier = new ExpressionCopier(sibling);
- @SuppressWarnings("unchecked") T eOut = (T) copier.copy(eIn);
- copier.copyReferences();
- addDebugCopies(copier);
- assert eOut != null;
- return eOut;
- }
-
public @NonNull Mapping createMapping() {
Mapping coreMapping = QVTcoreFactory.eINSTANCE.createMapping();
GuardPattern guardPattern = QVTcoreBaseFactory.eINSTANCE.createGuardPattern();
@@ -369,11 +270,6 @@ public class QVTrToQVTc
/*public*/ @NonNull Transformation getCoreTransformation(@NonNull RelationalTransformation relationalTransformation) {
return ClassUtil.nonNullState(relationalTransformation2coreTransformation.get(relationalTransformation));
}
-
- /*public*/ @NonNull Variable getCoreVariable(@NonNull Mapping mapping, @NonNull Variable relationVariable) {
- Map<@NonNull Variable, @NonNull Variable> variable2variable = mapping2variable2variable.get(mapping);
- return ClassUtil.nonNullState(ClassUtil.nonNullState(variable2variable).get(relationVariable));
- }
/* public @NonNull DomainPattern getDomainPattern(@NonNull Domain d) {
List<@NonNull DomainPattern> pattern = ClassUtil.nullFree(((RelationDomain) d).getPattern());
@@ -403,9 +299,9 @@ public class QVTrToQVTc
Set<@NonNull Variable> rDomainVariables = new HashSet<@NonNull Variable>();
Set<@NonNull Variable> rMiddleDomainVariables = new HashSet<@NonNull Variable>();
for (@NonNull Domain rDomain : ClassUtil.nullFree(rRelation.getDomain())) {
- for (@NonNull DomainPattern rDomainPattern : ClassUtil.nullFree(((RelationDomain) rDomain).getPattern())) {
- for (Variable rVariable : rDomainPattern.getBindsTo()) {
- if ((rVariable != null) && !rDomainVariables.add(rVariable)) {
+ for (@NonNull DomainPattern rDomainPattern : ClassUtil.nullFree(((RelationDomain)rDomain).getPattern())) {
+ for (@NonNull Variable rVariable : ClassUtil.nullFree(rDomainPattern.getBindsTo())) {
+ if (!rDomainVariables.add(rVariable)) {
rMiddleDomainVariables.add(rVariable); // Accumulate second (and higher) usages
}
}
@@ -448,30 +344,6 @@ public class QVTrToQVTc
}
/* ============= Queries ============= */
-
- public @NonNull String getSafeName(@NonNull Relation relation, @NonNull Element newElement, @NonNull String name) {
- Map<@NonNull String, @NonNull Element> name2element = rule2name2element.get(relation);
- if (name2element == null) {
- name2element = new HashMap<@NonNull String, @NonNull Element>();
- rule2name2element.put(relation, name2element);
- }
- Element oldElement = name2element.get(name);
- if (oldElement == newElement) {
- return name;
- }
- if (oldElement == null) {
- name2element.put(name, newElement);
- return name;
- }
- for (int i = 1; true; i++) {
- String newName = name + "_" + i;
- oldElement = name2element.get(newName);
- if (oldElement == null) {
- name2element.put(newName, newElement);
- return newName;
- }
- }
- }
public @NonNull StandardLibrary getStandardLibrary() {
return environmentFactory.getStandardLibrary();
@@ -542,43 +414,26 @@ public class QVTrToQVTc
/*public*/ void putCoreTransformation(@NonNull RelationalTransformation relationTransformation, @NonNull Transformation coreTransformation) {
relationalTransformation2coreTransformation.put(relationTransformation, coreTransformation);
- putTrace(coreTransformation, relationTransformation);
- }
-
-
- /*public*/ void putCoreVariable(@NonNull Variable relationVariable, @NonNull Variable coreVariable) {
- Mapping mapping = QVTcoreUtil.getContainingMapping(coreVariable);
- assert mapping != null;
- Map<@NonNull Variable, @NonNull Variable> variable2variable = mapping2variable2variable.get(mapping);
- if (variable2variable == null) {
- variable2variable = new HashMap<@NonNull Variable, @NonNull Variable>();
- mapping2variable2variable.put(mapping, variable2variable);
- }
- Variable oldVal = variable2variable.put(relationVariable, coreVariable);
- // Variables should only be traced once
- if (oldVal != null) {
- System.out.println("putCoreVariable replacing value for " + relationVariable.getName());
- }
- putTrace(coreVariable, relationVariable);
- }
-
- /*public*/ void putRelationTrace(@NonNull Relation r, org.eclipse.ocl.pivot.@NonNull Class traceClass) {
- relationToTraceClass.put(r, traceClass);
-// putTrace(traceClass, r);
+ putGlobalTrace(coreTransformation, relationTransformation);
}
- private void putTrace(@NonNull Element coreElement, @NonNull Element relationElement) {
+ /*private*/ void putGlobalTrace(@NonNull Element coreElement, @NonNull Element relationElement) {
// if (relationElement != null) {
- Element oldRelationElement = target2source.put(coreElement, relationElement);
+ Element oldRelationElement = globalTarget2source.put(coreElement, relationElement);
assert oldRelationElement == null;
- List<@NonNull Element> targets = source2targets.get(relationElement);
+ List<@NonNull Element> targets = globalSource2targets.get(relationElement);
if (targets == null) {
targets = new ArrayList<@NonNull Element> ();
- source2targets.put(relationElement, targets);
+ globalSource2targets.put(relationElement, targets);
}
targets.add(coreElement);
// }
}
+
+ /*public*/ void putRelationTrace(@NonNull Relation r, org.eclipse.ocl.pivot.@NonNull Class traceClass) {
+ relationToTraceClass.put(r, traceClass);
+// putTrace(traceClass, r);
+ }
/*public*/ void putTracePackage(@NonNull RelationalTransformation rt, org.eclipse.ocl.pivot.@NonNull Package tracePackage) {
relationalTransformation2tracePackage.put(rt, tracePackage);
@@ -850,6 +705,7 @@ public class QVTrToQVTc
if (rule instanceof Relation) {
Relation rRelation = (Relation)rule;
if (rRelation.isIsTopLevel()) {
+ System.out.println("topLevel " + rRelation);
TopLevelRelationToMappingForEnforcement topLevelRelationToMappingForEnforcement = new TopLevelRelationToMappingForEnforcement(this, rRelation);
topLevelRelationToMappingForEnforcement.doTopLevelRelationToMappingForEnforcement();
}
@@ -965,63 +821,13 @@ public class QVTrToQVTc
Mapping coreMapping = name2mapping.get(name);
if (coreMapping == null) {
coreMapping = createMapping();
- putTrace(coreMapping, relation);
+ putGlobalTrace(coreMapping, relation);
coreMapping.setName(name);
coreMapping.setTransformation(coreTransformation);
name2mapping.put(name, coreMapping);
}
return coreMapping;
}
-
- /**
- * Lazily create the RealizedVariable for a corePattern corresponding to a relationVariable.
- */
- /*public*/ @NonNull RealizedVariable whenRealizedVariable(@NonNull BottomPattern corePattern, @NonNull Variable relationVariable) {
- Map<@NonNull Variable, @NonNull RealizedVariable> variable2realizedVariable = pattern2variable2realizedVariable.get(corePattern);
- if (variable2realizedVariable == null) {
- variable2realizedVariable = new HashMap<@NonNull Variable, @NonNull RealizedVariable>();
- pattern2variable2realizedVariable.put(corePattern, variable2realizedVariable);
- }
- RealizedVariable realizedVariable = variable2realizedVariable.get(relationVariable);
- if (realizedVariable == null) {
- String name = relationVariable.getName();
- Type type = relationVariable.getType();
- assert (name != null) && (type != null);
- realizedVariable = QVTcoreBaseFactory.eINSTANCE.createRealizedVariable();
- realizedVariable.setName(name);
- realizedVariable.setType(type);
- realizedVariable.setIsRequired(true);
- variable2realizedVariable.put(relationVariable, realizedVariable);
- corePattern.getRealizedVariable().add(realizedVariable);
- putCoreVariable(relationVariable, realizedVariable);
- }
- return realizedVariable;
- }
-
- /**
- * Lazily create the name RealizedVariable for a corePattern with a type.
- */
- /*public*/ @NonNull RealizedVariable whenRealizedVariable(@NonNull BottomPattern corePattern, @NonNull String name, @NonNull Type type) {
- Map<@NonNull String, @NonNull RealizedVariable> name2realizedVariable = pattern2name2realizedVariable.get(corePattern);
- if (name2realizedVariable == null) {
- name2realizedVariable = new HashMap<@NonNull String, @NonNull RealizedVariable>();
- pattern2name2realizedVariable.put(corePattern, name2realizedVariable);
- }
- RealizedVariable realizedVariable = name2realizedVariable.get(name);
- if (realizedVariable == null) {
- realizedVariable = QVTcoreBaseFactory.eINSTANCE.createRealizedVariable();
- realizedVariable.setName(name);
- realizedVariable.setType(type);
- realizedVariable.setIsRequired(true);;
- name2realizedVariable.put(name, realizedVariable);
- corePattern.getRealizedVariable().add(realizedVariable);
-// putTrace(realizedVariable, corePattern);
- }
- else {
- assert realizedVariable.getType() == type;
- }
- return realizedVariable;
- }
/**
* Lazily create the name Property for a traceClass with a type.
@@ -1058,55 +864,4 @@ public class QVTrToQVTc
}
return traceProperty;
}
-
- /**
- * Lazily create the Variable for a corePattern corresponding to a relationVariable.
- */
- /*public*/ @NonNull Variable whenVariable(@NonNull CorePattern corePattern, @NonNull Variable relationVariable) {
- Map<@NonNull Variable, @NonNull Variable> variable2variable = pattern2variable2variable.get(corePattern);
- if (variable2variable == null) {
- variable2variable = new HashMap<@NonNull Variable, @NonNull Variable>();
- pattern2variable2variable.put(corePattern, variable2variable);
- }
- Variable coreVariable = variable2variable.get(relationVariable);
- if (coreVariable == null) {
- String name = relationVariable.getName();
- Type type = relationVariable.getType();
- assert (name != null) && (type != null);
- coreVariable = PivotFactory.eINSTANCE.createVariable();
- coreVariable.setName(name);
- coreVariable.setType(type);
- coreVariable.setIsRequired(relationVariable.isIsRequired());
- variable2variable.put(relationVariable, coreVariable);
- corePattern.getVariable().add(coreVariable);
- putCoreVariable(relationVariable, coreVariable);
- }
- return coreVariable;
- }
-
- /**
- * Lazily create the name Variable for a corePattern with a type.
- */
- /*public*/ @NonNull Variable whenVariable(@NonNull CorePattern corePattern, @NonNull String name, @NonNull Type type) {
- Map<@NonNull String, @NonNull Variable> name2variable = pattern2name2variable.get(corePattern);
- if (name2variable == null) {
- name2variable = new HashMap<@NonNull String, @NonNull Variable>();
- pattern2name2variable.put(corePattern, name2variable);
- }
- Variable coreVariable = name2variable.get(name);
- if (coreVariable == null) {
- coreVariable = PivotFactory.eINSTANCE.createVariable();
- coreVariable.setName(name);
- coreVariable.setType(type);
- coreVariable.setIsRequired(true);
- name2variable.put(name, coreVariable);
- corePattern.getVariable().add(coreVariable);
- putTrace(coreVariable, corePattern);
- }
- else {
- assert coreVariable.getType() == type;
- }
- return coreVariable;
- }
-
}
diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/RelationalTransformationToTracePackage.java b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/RelationalTransformationToTracePackage.java
index 8a199fd05..364cc14eb 100644
--- a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/RelationalTransformationToTracePackage.java
+++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/RelationalTransformationToTracePackage.java
@@ -13,6 +13,7 @@ package org.eclipse.qvtd.compiler.internal.qvtr2qvtc;
import java.util.List;
import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.ocl.pivot.CollectionType;
import org.eclipse.ocl.pivot.OCLExpression;
import org.eclipse.ocl.pivot.PivotFactory;
import org.eclipse.ocl.pivot.Type;
@@ -47,51 +48,60 @@ import org.eclipse.qvtd.pivot.qvttemplate.TemplateExp;
List<org.eclipse.ocl.pivot.@NonNull Class> ownedClasses = ClassUtil.nullFree(p.getOwnedClasses());
for (@NonNull Rule r : ClassUtil.nullFree(rt.getRule())) {
if (r instanceof Relation) {
- org.eclipse.ocl.pivot.Class rc = PivotFactory.eINSTANCE.createClass();
- ownedClasses.add(rc);
- doRelationToTraceClass((Relation)r, rc);
- CompilerUtil.normalizeNameables(ClassUtil.nullFree(rc.getOwnedProperties()));
+ ownedClasses.add(doRelationToTraceClass((Relation)r));
}
}
CompilerUtil.normalizeNameables(ownedClasses);
return p;
}
- private void doRelationToTraceClass(@NonNull Relation r, org.eclipse.ocl.pivot.@NonNull Class rc) {
- qvtr2qvtc.putRelationTrace(r, rc);
- String rn = ClassUtil.nonNullState(r.getName());
- rc.setName("T"+rn);
- for (@NonNull Variable rv : qvtr2qvtc.getMiddleDomainVariables(r)) {
- createTraceProperty(rc, rv);
+ private org.eclipse.ocl.pivot.@NonNull Class doRelationToTraceClass(@NonNull Relation rRelation) {
+ @SuppressWarnings("null")org.eclipse.ocl.pivot.@NonNull Class traceClass = PivotFactory.eINSTANCE.createClass();
+ qvtr2qvtc.putRelationTrace(rRelation, traceClass);
+ traceClass.setName("T" + rRelation.getName());
+ for (@NonNull Variable rVariable : qvtr2qvtc.getMiddleDomainVariables(rRelation)) {
+ createTraceProperty(traceClass, rVariable);
}
- for (@NonNull Domain d : ClassUtil.nullFree(r.getDomain())) {
- for (@NonNull DomainPattern rdp : ClassUtil.nullFree(((RelationDomain) d).getPattern())) {
- TemplateExp t = ClassUtil.nonNullState(rdp.getTemplateExpression());
- doSubTemplateToTraceClassProps(t, rc);
+ for (@NonNull Domain rDomain : ClassUtil.nullFree(rRelation.getDomain())) {
+ for (@NonNull DomainPattern rDomainPattern : ClassUtil.nullFree(((RelationDomain)rDomain).getPattern())) {
+ TemplateExp rTemplateExp = ClassUtil.nonNullState(rDomainPattern.getTemplateExpression());
+ doSubTemplateToTraceClassProps(rTemplateExp, traceClass);
}
}
+ CompilerUtil.normalizeNameables(ClassUtil.nullFree(traceClass.getOwnedProperties()));
+ return traceClass;
}
- private void doSubTemplateToTraceClassProps(@NonNull OCLExpression t, org.eclipse.ocl.pivot.@NonNull Class rc) {
- if (t instanceof TemplateExp) {
- TemplateExp te = (TemplateExp) t;
- Variable tv = ClassUtil.nonNullState(te.getBindsTo());
+ private void doSubTemplateToTraceClassProps(@NonNull TemplateExp te, org.eclipse.ocl.pivot.@NonNull Class rc) {
+ Variable tv = ClassUtil.nonNullState(te.getBindsTo());
+ if (te instanceof CollectionTemplateExp) {
createTraceProperty(rc, tv); // ?? not required for CollectionTemplateExp's
- if (te instanceof CollectionTemplateExp) {
- CollectionTemplateExp cte = (CollectionTemplateExp) t;
- for (@NonNull OCLExpression m : ClassUtil.nullFree(cte.getMember())) {
- doSubTemplateToTraceClassProps(m, rc);
+ CollectionTemplateExp cte = (CollectionTemplateExp) te;
+ Variable collectionVariable = cte.getBindsTo();
+ CollectionType collectionType = (CollectionType)collectionVariable.getType();
+ Type elementType = ClassUtil.nonNullState(collectionType.getElementType());
+ int argIndex = 0;
+ for (@NonNull OCLExpression m : ClassUtil.nullFree(cte.getMember())) {
+ if (m instanceof TemplateExp) {
+ doSubTemplateToTraceClassProps((TemplateExp)m, rc);
}
- Variable rv = cte.getRest();
- if (rv != null) {
- createTraceProperty(rc, rv);
+ else {
+ createTraceProperty(rc, collectionVariable.getName() + "_" + argIndex, elementType);
}
+ argIndex++;
}
- else if (te instanceof ObjectTemplateExp) {
- ObjectTemplateExp ote = (ObjectTemplateExp) te;
- for (@NonNull PropertyTemplateItem pt : ClassUtil.nullFree(ote.getPart())) {
- OCLExpression value = ClassUtil.nonNullState(pt.getValue());
- doSubTemplateToTraceClassProps(value, rc);
+ Variable rv = cte.getRest();
+ if (rv != null) {
+ createTraceProperty(rc, rv);
+ }
+ }
+ else if (te instanceof ObjectTemplateExp) {
+ createTraceProperty(rc, tv); // ?? not required for CollectionTemplateExp's
+ ObjectTemplateExp ote = (ObjectTemplateExp) te;
+ for (@NonNull PropertyTemplateItem pt : ClassUtil.nullFree(ote.getPart())) {
+ OCLExpression value = ClassUtil.nonNullState(pt.getValue());
+ if (value instanceof TemplateExp) {
+ doSubTemplateToTraceClassProps((TemplateExp)value, rc);
}
}
}
@@ -102,4 +112,8 @@ import org.eclipse.qvtd.pivot.qvttemplate.TemplateExp;
Type c = ClassUtil.nonNullState(tv.getType());
qvtr2qvtc.whenTraceProperty(rc, vn, c);
}
+
+ private void createTraceProperty(org.eclipse.ocl.pivot.@NonNull Class rc, @NonNull String name, @NonNull Type type) {
+ qvtr2qvtc.whenTraceProperty(rc, name, type);
+ }
}
diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/TopLevelRelationToMappingForEnforcement.java b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/TopLevelRelationToMappingForEnforcement.java
index da38232f7..22787eef3 100644
--- a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/TopLevelRelationToMappingForEnforcement.java
+++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/TopLevelRelationToMappingForEnforcement.java
@@ -21,10 +21,6 @@ import org.eclipse.ocl.pivot.utilities.ClassUtil;
import org.eclipse.qvtd.compiler.CompilerChainException;
import org.eclipse.qvtd.pivot.qvtbase.Domain;
import org.eclipse.qvtd.pivot.qvtbase.Predicate;
-import org.eclipse.qvtd.pivot.qvtbase.TypedModel;
-import org.eclipse.qvtd.pivot.qvtcorebase.BottomPattern;
-import org.eclipse.qvtd.pivot.qvtcorebase.CoreDomain;
-import org.eclipse.qvtd.pivot.qvtcorebase.GuardPattern;
import org.eclipse.qvtd.pivot.qvtcorebase.RealizedVariable;
import org.eclipse.qvtd.pivot.qvtrelation.DomainPattern;
import org.eclipse.qvtd.pivot.qvtrelation.Relation;
@@ -36,32 +32,16 @@ import org.eclipse.qvtd.pivot.qvttemplate.TemplateExp;
{
private class TopEnforceableRelationDomain2CoreMapping extends AbstractEnforceableRelationDomain2CoreMapping
{
- private @NonNull List<@NonNull RealizedVariable> cEnforcedRootVariables; // The mapping template expression variables (the realized variable enforced by the domain pattern)
- // except when arguments
-
- public TopEnforceableRelationDomain2CoreMapping(@NonNull RelationDomain rEnforcedDomain, @NonNull String cMappingName) {
- super(rEnforcedDomain, cMappingName);
- this.cEnforcedRootVariables = new ArrayList<@NonNull RealizedVariable>(rEnforcedRootVariables.size());
- for (@NonNull Variable rEnforcedRootVariable : rEnforcedRootVariables) {
- if (!rWhenVariables.contains(rEnforcedRootVariable)) {
- this.cEnforcedRootVariables.add(mapRealizedVariable(rEnforcedRootVariable));
- }
+ protected class TopOtherRelationDomain2CoreDomain extends AbstractOtherRelationDomain2CoreDomain
+ {
+ public TopOtherRelationDomain2CoreDomain(@NonNull RelationDomain rOtherDomain) {
+ super(rOtherDomain);
}
- }
- // TROppositeDomainsToMappingForEnforcement
- public void mapOtherDomainsToDomainsVariablesAndPatterns() throws CompilerChainException {
- for (@NonNull RelationDomain rOtherDomain : rOtherDomains) {
- String rOtherDomainName = ClassUtil.nonNullState(rOtherDomain.getName());
- TypedModel rOtherTypedModel = ClassUtil.nonNullState(rOtherDomain.getTypedModel());
- TypedModel cOtherTypedModel = getCoreTypedModel(rOtherTypedModel);
- CoreDomain cOtherDomain = qvtr2qvtc.whenCoreDomain(cMapping, rOtherDomainName);
- GuardPattern cOtherGuardPattern = ClassUtil.nonNullState(cOtherDomain.getGuardPattern());
- BottomPattern cOtherBottomPattern = ClassUtil.nonNullState(cOtherDomain.getBottomPattern());
- cOtherDomain.setTypedModel(cOtherTypedModel);
- cOtherDomain.setIsCheckable(rOtherDomain.isIsCheckable());
- cOtherDomain.setIsEnforceable(false);
- cOtherDomain.setGuardPattern(cOtherGuardPattern); // FIXME redundant
+ // body of TROppositeDomainsToMappingForEnforcement
+ @Override
+ public void mapOtherDomainToDomainVariablesAndPatterns() throws CompilerChainException {
+// cOtherDomain.setGuardPattern(cOtherGuardPattern); // FIXME redundant
for (@NonNull DomainPattern rOtherDomainPattern : ClassUtil.nullFree(rOtherDomain.getPattern())) {
List<@NonNull Variable> rOtherDomainVariables = ClassUtil.nullFree(rOtherDomainPattern.getBindsTo());
TemplateExp rOtherTemplateExpression = rOtherDomainPattern.getTemplateExpression();
@@ -71,15 +51,19 @@ import org.eclipse.qvtd.pivot.qvttemplate.TemplateExp;
Set<@NonNull Variable> rOtherGuardDomainVariables = new HashSet<@NonNull Variable>(rOtherDomainVariables);
rOtherGuardDomainVariables.retainAll(rWhenVariables);
rOtherGuardDomainVariables.add(rOtherRootVariable);
+ rOtherGuardDomainVariables.removeAll(rSharedVariables);
+// rOtherGuardDomainVariables.removeAll(rNonUniquePatternVariables);
//
Set<@NonNull Variable> rOtherBottomDomainVariables = new HashSet<@NonNull Variable>(rOtherDomainVariables);
rOtherBottomDomainVariables.removeAll(rWhenVariables);
- rOtherBottomDomainVariables.removeAll(rMiddleDomainVariables);
+ rOtherBottomDomainVariables.removeAll(rSharedVariables);
+// rOtherBottomDomainVariables.removeAll(rNonUniquePatternVariables);
rOtherBottomDomainVariables.remove(rOtherRootVariable);
//
Set<@NonNull Variable> rMiddleBottomDomainVariables = new HashSet<@NonNull Variable>(rOtherDomainVariables);
rMiddleBottomDomainVariables.removeAll(rWhenVariables);
- rMiddleBottomDomainVariables.retainAll(rMiddleDomainVariables);
+ rMiddleBottomDomainVariables.retainAll(rSharedVariables);
+// rMiddleBottomDomainVariables.removeAll(rNonUniquePatternVariables);
rMiddleBottomDomainVariables.remove(rOtherRootVariable);
//
mapVariablesToVariables(rOtherGuardDomainVariables, cOtherGuardPattern);
@@ -93,6 +77,24 @@ import org.eclipse.qvtd.pivot.qvttemplate.TemplateExp;
}
}
}
+
+ private @NonNull List<@NonNull RealizedVariable> cEnforcedRootVariables; // The mapping template expression variables (the realized variable enforced by the domain pattern)
+ // except when arguments
+
+ public TopEnforceableRelationDomain2CoreMapping(@NonNull RelationDomain rEnforcedDomain, @NonNull String cMappingName) {
+ super(rEnforcedDomain, cMappingName);
+ this.cEnforcedRootVariables = new ArrayList<@NonNull RealizedVariable>(rEnforcedRootVariables.size());
+ for (@NonNull Variable rEnforcedRootVariable : rEnforcedRootVariables) {
+ if (!rWhenVariables.contains(rEnforcedRootVariable)) {
+ this.cEnforcedRootVariables.add(mapRealizedVariable(rEnforcedRootVariable));
+ }
+ }
+ }
+
+ @Override
+ protected @NonNull AbstractOtherRelationDomain2CoreDomain createOtherDomain2CoreDomain( @NonNull RelationDomain rRelationDomain) {
+ return new TopOtherRelationDomain2CoreDomain(rRelationDomain);
+ }
@Override
protected void setAttributes() {
@@ -104,7 +106,8 @@ import org.eclipse.qvtd.pivot.qvttemplate.TemplateExp;
protected void where() throws CompilerChainException {
Set<@NonNull Variable> rEnforcedBottomDomainVariables = new HashSet<@NonNull Variable>(rEnforcedDomainVariables);
rEnforcedBottomDomainVariables.removeAll(rWhenVariables);
- rEnforcedBottomDomainVariables.removeAll(rMiddleDomainVariables);
+ rEnforcedBottomDomainVariables.removeAll(rSharedVariables);
+// rEnforcedBottomDomainVariables.removeAll(rNonUniquePatternVariables);
//
Set<@NonNull Predicate> rPredicatesWithVariableBindings = selectPredicatesThatReferToVariables(rPredicates, rEnforcedBottomDomainVariables);
Set<@NonNull Predicate> rPredicatesWithoutVariableBindings = new HashSet<@NonNull Predicate>(rPredicates);
@@ -112,6 +115,8 @@ import org.eclipse.qvtd.pivot.qvttemplate.TemplateExp;
//
Set<@NonNull Variable> rEnforcedDomainGuardVariables = new HashSet<@NonNull Variable>(rEnforcedDomainVariables);
rEnforcedDomainGuardVariables.retainAll(rWhenVariables);
+ rEnforcedBottomDomainVariables.removeAll(rSharedVariables);
+// rEnforcedBottomDomainVariables.removeAll(rNonUniquePatternVariables);
//
List<@NonNull Variable> nonWhenRootVariables2 = rEnforcedRootVariables;
nonWhenRootVariables2.removeAll(rWhenVariables);
@@ -120,12 +125,14 @@ import org.eclipse.qvtd.pivot.qvttemplate.TemplateExp;
mapPredicatesToPredicates(rPredicatesWithVariableBindings);
mapVariablesToVariables(rEnforcedDomainGuardVariables, cEnforcedGuardPattern);
mapVariablesToVariables(rMiddleBottomDomainVariables, cMiddleBottomPattern);
- mapOtherDomainsToDomainsVariablesAndPatterns();
+ for (@NonNull AbstractOtherRelationDomain2CoreDomain otherDomain2coreDomain : otherDomain2coreDomains) {
+ otherDomain2coreDomain.mapOtherDomainToDomainVariablesAndPatterns();
+ }
// Invoked here so the variables are instantiated
mapDomainVariablesToMiddleVariableAssignments(rOtherDomainVariables);
mapWhenPatternToGuardPatterns();
mapEnforcedDomain(rPredicatesWithoutVariableBindings, rEnforcedBottomDomainVariables);
- mapRelationImplemantationToEnforcementOperation();
+ mapRelationImplementationToEnforcementOperation();
}
}
diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/qvtrsrc/SimplerRelToCorePivotizedBeautyfied.qvtr b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/qvtrsrc/SimplerRelToCorePivotizedBeautyfied.qvtr
index 6c27ad5ff..62f3b81b8 100644
--- a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/qvtrsrc/SimplerRelToCorePivotizedBeautyfied.qvtr
+++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/qvtrsrc/SimplerRelToCorePivotizedBeautyfied.qvtr
@@ -20,7 +20,7 @@ import qvtcore : 'platform:/resource/org.eclipse.qvtd.pivot.qvtcore/model
-transformation relToCore(relations:{qvtrelation,qvttemplate,qvtbase,pivotocl}, core:{qvtcore,qvtcorebase,qvtbase,pivotocl}) -- HHR Use Pivot metamodels
+transformation org::eclipse::qvtd::compiler::qvtr::relToCore(relations:{qvtrelation,qvttemplate,qvtbase,pivotocl}, core:{qvtcore,qvtcorebase,qvtbase,pivotocl}) -- HHR Use Pivot metamodels
{
key qvtcore::Mapping{name, transformation};
diff --git a/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/AllQVTrelationTests.java b/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/AllQVTrelationTests.java
index 7b42baf97..7a8afcf68 100644
--- a/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/AllQVTrelationTests.java
+++ b/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/AllQVTrelationTests.java
@@ -41,7 +41,7 @@ public class AllQVTrelationTests extends TestCase
// result.addTestSuite(UsageTests.class);
// }
if (!EMFPlugin.IS_ECLIPSE_RUNNING) { // FIXME should work as plugin test too
-// result.addTestSuite(QVTrCompilerTests.class);
+ result.addTestSuite(QVTrCompilerTests.class);
}
return result;
}
diff --git a/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/QVTrCompilerTests.java b/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/QVTrCompilerTests.java
index 94a8cbf85..cc1b1b675 100644
--- a/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/QVTrCompilerTests.java
+++ b/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/QVTrCompilerTests.java
@@ -397,18 +397,18 @@ public class QVTrCompilerTests extends LoadTestCase
myQVT.addUsedGenPackage("org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.genmodel", "//qvtbase");
myQVT.addUsedGenPackage("org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.genmodel", "//qvtrelation");
myQVT.addUsedGenPackage("org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.genmodel", "//qvttemplate");
- Transformation asTransformation = myQVT.compileTransformation("SimplerRelToCorePivotizedBeautyfied.qvtr", "core", projectTestName, "http://www.eclipse.org/qvtd/xtext/qvtrelation/tests/rel2core/SeqToStm");
- Class<? extends Transformer> txClass = myQVT.createGeneratedClass(asTransformation, "SimplerRelToCorePivotizedBeautyfied.genmodel");
+ Transformation asTransformation = myQVT.compileTransformation("RelToCore.qvtr", "core", projectTestName, "http://www.eclipse.org/qvtd/xtext/qvtrelation/tests/rel2core/RelToCore");
+ Class<? extends Transformer> txClass = myQVT.createGeneratedClass(asTransformation, "RelToCore.genmodel");
JavaSourceFileObject.compileClasses("../" + PROJECT_NAME + "/test-gen/" + projectTestName.replace(".", "/"), "../" + PROJECT_NAME + "/bin");
// myQVT.installClassName(projectTestName + ".SeqMM.SeqMMPackage");
// myQVT.installClassName(projectTestName + ".PSeqToStm.PSeqToStmPackage");
//
myQVT.createGeneratedExecutor(txClass);
- myQVT.loadInput("relations", "SimplerRelToCorePivotizedBeautyfied.qvtras");
+ myQVT.loadInput("relations", "Rel2Core.qvtras");
myQVT.executeTransformation();
// myQVT.getResourceSet().getResourceFactoryRegistry().getExtensionToFactoryMap().put("ecore", new EcoreResourceFactoryImpl());
// myQVT.getEnvironmentFactory().getMetamodelManager().getASResourceSet().getResourceFactoryRegistry().getExtensionToFactoryMap().put("ecore", new EcoreResourceFactoryImpl());
- myQVT.saveOutput("core", "Rel2Core_CG.ecore", "Rel2Core_expected.ecore", PivotNormalizer.INSTANCE);
+ myQVT.saveOutput("core", "Rel2Core_CG.oclas", "Rel2Core_expected.oclas", PivotNormalizer.INSTANCE);
//
// myQVT.createGeneratedExecutor(txClass);
// myQVT.loadInput("seqDgm", "SeqUM.xmi");
diff --git a/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/rel2core/SimplerRelToCorePivotizedBeautyfied.qvtr b/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/rel2core/RelToCore.qvtr
index b98dcda2e..d7f06204a 100644
--- a/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/rel2core/SimplerRelToCorePivotizedBeautyfied.qvtr
+++ b/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/rel2core/RelToCore.qvtr
@@ -20,50 +20,112 @@ import qvtcore : 'platform:/resource/org.eclipse.qvtd.pivot.qvtcore/model
-transformation org::eclipse::qvtd::xtext::qvtrelation::tests::rel2core::relToCore(relations:{qvtrelation,qvttemplate,qvtbase,pivotocl}, core:{qvtcore,qvtcorebase,qvtbase,pivotocl}) -- HHR Use Pivot metamodels
+transformation org::eclipse::qvtd::xtext::qvtrelation2::tests::rel2core::relToCore(relations:{qvtrelation,qvttemplate,qvtbase,pivotocl}, core:{qvtcore,qvtcorebase,qvtbase,pivotocl}) -- HHR Use Pivot metamodels
{
-- Rule 1: Corresponding to each relation there exists a trace class in core.
-- The trace class contains a property corresponding to each object node in the
-- pattern of each domain of the relation.
--
+ top relation PackageToTracePackage
+ {
+ packageName:String;
+ domain relations
+ relationsPackage:Package {
+ name = packageName
+ };
+ enforce domain core
+ tracePackage:Package {
+ name = packageName
+ };
+ }
+
+ top relation NestedPackageToTracePackage
+ {
+ packageName:String;
+ domain relations
+ relationsParent:Package {
+ ownedPackages = relationsChild:Package {}
+ };
+ enforce domain core
+ traceParent:Package {
+ ownedPackages = traceChild:Package {}
+ };
+ when {
+ PackageToTracePackage(relationsParent, traceParent);
+ PackageToTracePackage(relationsChild, traceChild);
+ }
+ }
+
+/* top relation TransformationToTracePackage
+ {
+ domain relations
+ rTransformation:Transformation {
+ name = transformationName:String{},
+ owningPackage = rParent:Package{}
+ };
+ enforce domain core
+ tracePackage:Package {
+ name = 'T'+transformationName,
+ owningPackage = traceParent:Package{}
+ };
+ when {
+ PackageToTracePackage(rParent, traceParent);
+ }
+ }
+
top relation RelationToTraceClass
{
- relationName:String;
- rootVariableName:String;
domain relations
- _'relation':Relation {
- name = relationName,
+ rRelation: Relation {
+ name = relationName:String{},
+ _'transformation' = rParent:Transformation{}
+ };
+ enforce domain
+ core traceClass:Class {
+ name = 'T'+relationName,
+ owningPackage = traceParent:Package{}
+ };
+ when {
+ TransformationToTracePackage(rParent, traceParent);
+ }
+ }
+
+ relation RootVariableToTraceClassProperty
+ {
+ domain relations
+ rRelation: Relation {
domain = relationDomain:RelationDomain {
pattern = relationDomainPattern:DomainPattern {
templateExpression = rootTemplateExp:TemplateExp {
bindsTo = rootVariable:Variable {
- name = rootVariableName,
+ name = rootVariableName:String{},
type = rootVariableType:Class {}
}
}
}
}
};
- enforce domain
- core traceClass:Class {
- name = 'T'+relationName,
- ownedProperties = traceClassProperty:pivotocl::Property {
- name = rootVariableName,
- type = rootVariableType
- }
+ enforce domain core
+ traceProperty:Property {
+ owningClass = traceClass:Class{},
+ name = rootVariableName,
+ type = rootVariableType
};
-/* where {
+ when {
+ RelationToTraceClass(rRelation, traceClass);
+ }
+ where {
-- CollectionTemplateToTraceClassProps(rootTemplateExp, traceClass);
- ObjectTemplateToTraceClassProps(rootTemplateExp, traceClass);
- } */
- }
+-- ObjectTemplateToTraceClassProps(rootTemplateExp, traceClass);
+ }
+ } */
/* relation CollectionTemplateToTraceClassProps
{
variableName: String;
domain relations
- t:CollectionTemplateExp {
- member = ms:Set(OCLExpression) {
+ collectionTemplateExp:CollectionTemplateExp {
+ member = members:Set(OCLExpression) {
templateExp:TemplateExp {
bindsTo = templateVariable:Variable {
name = variableName,
@@ -89,8 +151,8 @@ transformation org::eclipse::qvtd::xtext::qvtrelation::tests::rel2core::relToCor
{
variableName: String;
domain relations
- t:ObjectTemplateExp {
- part = pt:PropertyTemplateItem {
+ objectTemplateExp:ObjectTemplateExp {
+ part = propertyTemplateItem:PropertyTemplateItem {
value = templateExp:TemplateExp {
bindsTo = templateVariable:Variable {
name = variableName,
@@ -108,7 +170,7 @@ transformation org::eclipse::qvtd::xtext::qvtrelation::tests::rel2core::relToCor
};
where {
-- CollectionTemplateToTraceClassProps(templateExp, traceClass);
- ObjectTemplateToTraceClassProps(templateExp, traceClass);
+-- ObjectTemplateToTraceClassProps(templateExp, traceClass);
}
} */
} \ No newline at end of file
diff --git a/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/rel2core/samples/Rel2Core.qvtras b/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/rel2core/samples/Rel2Core.qvtras
new file mode 100644
index 000000000..988e096a9
--- /dev/null
+++ b/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/rel2core/samples/Rel2Core.qvtras
@@ -0,0 +1,8143 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<qvtr:RelationModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:pivot="http://www.eclipse.org/ocl/2015/Pivot"
+ xmlns:qvtb="http://www.eclipse.org/qvt/2015/QVTbase" xmlns:qvtr="http://www.eclipse.org/qvt/2015/QVTrelation" xmlns:qvtt="http://www.eclipse.org/qvt/2015/QVTtemplate"
+ xsi:schemaLocation="http://www.eclipse.org/ocl/2015/Pivot java://org.eclipse.ocl.pivot.PivotPackage http://www.eclipse.org/qvt/2015/QVTbase java://org.eclipse.qvtd.pivot.qvtbase.QVTbasePackage http://www.eclipse.org/qvt/2015/QVTrelation java://org.eclipse.qvtd.pivot.qvtrelation.QVTrelationPackage http://www.eclipse.org/qvt/2015/QVTtemplate java://org.eclipse.qvtd.pivot.qvttemplate.QVTtemplatePackage"
+ name="SimplerRelToCorePivotizedBeautyfied.qvtr" externalURI="platform:/resource/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/qvtrsrc/SimplerRelToCorePivotizedBeautyfied.qvtr">
+ <ownedImports name="pivotocl" importedNamespace="pivot:Package ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#P.pivot"/>
+ <ownedImports name="qvtbase" importedNamespace="pivot:Package ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#P.qvtbase"/>
+ <ownedImports name="qvttemplate" importedNamespace="pivot:Package ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#P.qvttemplate"/>
+ <ownedImports name="qvtrelation" importedNamespace="pivot:Package ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#P.qvtrelation"/>
+ <ownedImports name="qvtcorebase" importedNamespace="pivot:Package ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#P.qvtcorebase"/>
+ <ownedImports name="qvtcore" importedNamespace="pivot:Package ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcore/model/QVTcore.ecore.oclas#P.qvtcore"/>
+ <ownedPackages xmi:id="P.org" name="org">
+ <ownedPackages xmi:id="P.org.eclipse" name="eclipse">
+ <ownedPackages xmi:id="P.org.eclipse.qvtd" name="qvtd">
+ <ownedPackages xmi:id="P.org.eclipse.qvtd.compiler" name="compiler">
+ <ownedPackages xmi:id="P.org.eclipse.qvtd.compiler.qvtr" name="qvtr">
+ <ownedClasses xsi:type="qvtr:RelationalTransformation" xmi:id="T.org.eclipse.qvtd.compiler.qvtr.relToCore" name="relToCore"
+ superClasses="http://www.eclipse.org/ocl/2015/Library.oclas#T.ocl.OclElement">
+ <ownedOperations xsi:type="qvtb:Function" xmi:id="o.org.eclipse.qvtd.compiler.qvtr.relToCore.getSharedDomainVars..qvtrelation.Relation"
+ name="getSharedDomainVars" type="#//@ownedPackages.1/@ownedClasses.0">
+ <ownedParameters xmi:id="p0o.org.eclipse.qvtd.compiler.qvtr.relToCore.getSharedDomainVars..qvtrelation.Relation" name="r"
+ isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"/>
+ <queryExpression xsi:type="pivot:IterateExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.1" referredIteration="http://www.eclipse.org/ocl/2015/Library.oclas#i.ocl.Collection.iterate..T">
+ <ownedSource xsi:type="pivot:PropertyCallExp" type="#//@ownedPackages.1/@ownedClasses.2" referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Rule.domain">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#p0o.org.eclipse.qvtd.compiler.qvtr.relToCore.getSharedDomainVars..qvtrelation.Relation"/>
+ </ownedSource>
+ <ownedBody xsi:type="pivot:IfExp" type="#//@ownedPackages.1/@ownedClasses.3">
+ <ownedCondition xsi:type="pivot:OperationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Collection.isEmpty">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@ownedOperations.0/@queryExpression/@ownedResult"/>
+ </ownedCondition>
+ <ownedElse xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.0" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.UniqueCollection.intersection..$$.Collection">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@ownedOperations.0/@queryExpression/@ownedResult"/>
+ <ownedArguments xsi:type="pivot:IteratorExp" name="collect" type="#//@ownedPackages.1/@ownedClasses.4" isImplicit="true"
+ referredIteration="http://www.eclipse.org/ocl/2015/Library.oclas#i.ocl.OrderedSet.collect..T">
+ <ownedSource xsi:type="pivot:PropertyCallExp" type="#//@ownedPackages.1/@ownedClasses.5" referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#p.qvtrelation.RelationDomain.pattern">
+ <ownedSource xsi:type="pivot:OperationCallExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.oclAsType..TT">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Domain"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@ownedOperations.0/@queryExpression/@ownedIterators.0"/>
+ <ownedArguments xsi:type="pivot:TypeExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class"
+ referredType="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"/>
+ </ownedSource>
+ </ownedSource>
+ <ownedBody xsi:type="pivot:PropertyCallExp" type="#//@ownedPackages.1/@ownedClasses.6" referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Pattern.bindsTo">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.DomainPattern"
+ isImplicit="true" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@ownedOperations.0/@queryExpression/@ownedBody/@ownedElse/@ownedArguments.0/@ownedIterators.0"/>
+ </ownedBody>
+ <ownedIterators name="1_" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.DomainPattern"
+ isImplicit="true" representedParameter="http://www.eclipse.org/ocl/2015/Library.oclas#i0i.ocl.OrderedSet.collect..T"/>
+ </ownedArguments>
+ </ownedElse>
+ <ownedThen xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.1" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Collection.union..ocl.Collection">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@ownedOperations.0/@queryExpression/@ownedResult"/>
+ <ownedArguments xsi:type="pivot:IteratorExp" name="collect" type="#//@ownedPackages.1/@ownedClasses.4" isImplicit="true"
+ referredIteration="http://www.eclipse.org/ocl/2015/Library.oclas#i.ocl.OrderedSet.collect..T">
+ <ownedSource xsi:type="pivot:PropertyCallExp" type="#//@ownedPackages.1/@ownedClasses.5" referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#p.qvtrelation.RelationDomain.pattern">
+ <ownedSource xsi:type="pivot:OperationCallExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.oclAsType..TT">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Domain"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@ownedOperations.0/@queryExpression/@ownedIterators.0"/>
+ <ownedArguments xsi:type="pivot:TypeExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class"
+ referredType="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"/>
+ </ownedSource>
+ </ownedSource>
+ <ownedBody xsi:type="pivot:PropertyCallExp" type="#//@ownedPackages.1/@ownedClasses.6" referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Pattern.bindsTo">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.DomainPattern"
+ isImplicit="true" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@ownedOperations.0/@queryExpression/@ownedBody/@ownedThen/@ownedArguments.0/@ownedIterators.0"/>
+ </ownedBody>
+ <ownedIterators name="1_" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.DomainPattern"
+ isImplicit="true" representedParameter="http://www.eclipse.org/ocl/2015/Library.oclas#i0i.ocl.OrderedSet.collect..T"/>
+ </ownedArguments>
+ </ownedThen>
+ </ownedBody>
+ <ownedIterators name="d" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Domain"
+ representedParameter="http://www.eclipse.org/ocl/2015/Library.oclas#i0i.ocl.Collection.iterate..T"/>
+ <ownedResult name="vars" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" representedParameter="http://www.eclipse.org/ocl/2015/Library.oclas#a0i.ocl.Collection.iterate..T">
+ <ownedInit xsi:type="pivot:CollectionLiteralExp" type="#//@ownedPackages.1/@ownedClasses.7" kind="Set"/>
+ </ownedResult>
+ </queryExpression>
+ </ownedOperations>
+ <ownedOperations xsi:type="qvtb:Function" xmi:id="o.org.eclipse.qvtd.compiler.qvtr.relToCore.getWhenVars..qvtrelation.Relation"
+ name="getWhenVars" type="#//@ownedPackages.1/@ownedClasses.0">
+ <ownedParameters xmi:id="p0o.org.eclipse.qvtd.compiler.qvtr.relToCore.getWhenVars..qvtrelation.Relation" name="r" isRequired="false"
+ type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"/>
+ <queryExpression xsi:type="pivot:LetExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.1">
+ <ownedIn xsi:type="pivot:IterateExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.1" referredIteration="http://www.eclipse.org/ocl/2015/Library.oclas#i.ocl.Collection.iterate..T">
+ <ownedSource xsi:type="pivot:PropertyCallExp" type="#//@ownedPackages.1/@ownedClasses.2" referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Rule.domain">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#p0o.org.eclipse.qvtd.compiler.qvtr.relToCore.getWhenVars..qvtrelation.Relation"/>
+ </ownedSource>
+ <ownedBody xsi:type="pivot:IfExp" type="#//@ownedPackages.1/@ownedClasses.3">
+ <ownedCondition xsi:type="pivot:OperationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Collection.isEmpty">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@ownedOperations.1/@queryExpression/@ownedIn/@ownedResult"/>
+ </ownedCondition>
+ <ownedElse xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.0" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.UniqueCollection.intersection..$$.Collection">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@ownedOperations.1/@queryExpression/@ownedIn/@ownedResult"/>
+ <ownedArguments xsi:type="pivot:IteratorExp" name="collect" type="#//@ownedPackages.1/@ownedClasses.4" isImplicit="true"
+ referredIteration="http://www.eclipse.org/ocl/2015/Library.oclas#i.ocl.OrderedSet.collect..T">
+ <ownedSource xsi:type="pivot:PropertyCallExp" type="#//@ownedPackages.1/@ownedClasses.5" referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#p.qvtrelation.RelationDomain.pattern">
+ <ownedSource xsi:type="pivot:OperationCallExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.oclAsType..TT">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Domain"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@ownedOperations.1/@queryExpression/@ownedIn/@ownedIterators.0"/>
+ <ownedArguments xsi:type="pivot:TypeExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class"
+ referredType="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"/>
+ </ownedSource>
+ </ownedSource>
+ <ownedBody xsi:type="pivot:PropertyCallExp" type="#//@ownedPackages.1/@ownedClasses.6" referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Pattern.bindsTo">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.DomainPattern"
+ isImplicit="true" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@ownedOperations.1/@queryExpression/@ownedIn/@ownedBody/@ownedElse/@ownedArguments.0/@ownedIterators.0"/>
+ </ownedBody>
+ <ownedIterators name="1_" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.DomainPattern"
+ isImplicit="true" representedParameter="http://www.eclipse.org/ocl/2015/Library.oclas#i0i.ocl.OrderedSet.collect..T"/>
+ </ownedArguments>
+ </ownedElse>
+ <ownedThen xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.1" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Collection.union..ocl.Collection">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@ownedOperations.1/@queryExpression/@ownedIn/@ownedResult"/>
+ <ownedArguments xsi:type="pivot:IteratorExp" name="collect" type="#//@ownedPackages.1/@ownedClasses.4" isImplicit="true"
+ referredIteration="http://www.eclipse.org/ocl/2015/Library.oclas#i.ocl.OrderedSet.collect..T">
+ <ownedSource xsi:type="pivot:PropertyCallExp" type="#//@ownedPackages.1/@ownedClasses.5" referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#p.qvtrelation.RelationDomain.pattern">
+ <ownedSource xsi:type="pivot:OperationCallExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.oclAsType..TT">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Domain"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@ownedOperations.1/@queryExpression/@ownedIn/@ownedIterators.0"/>
+ <ownedArguments xsi:type="pivot:TypeExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class"
+ referredType="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"/>
+ </ownedSource>
+ </ownedSource>
+ <ownedBody xsi:type="pivot:PropertyCallExp" type="#//@ownedPackages.1/@ownedClasses.6" referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Pattern.bindsTo">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.DomainPattern"
+ isImplicit="true" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@ownedOperations.1/@queryExpression/@ownedIn/@ownedBody/@ownedThen/@ownedArguments.0/@ownedIterators.0"/>
+ </ownedBody>
+ <ownedIterators name="1_" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.DomainPattern"
+ isImplicit="true" representedParameter="http://www.eclipse.org/ocl/2015/Library.oclas#i0i.ocl.OrderedSet.collect..T"/>
+ </ownedArguments>
+ </ownedThen>
+ </ownedBody>
+ <ownedIterators name="d" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Domain"
+ representedParameter="http://www.eclipse.org/ocl/2015/Library.oclas#i0i.ocl.Collection.iterate..T"/>
+ <ownedResult name="vars" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" representedParameter="http://www.eclipse.org/ocl/2015/Library.oclas#a0i.ocl.Collection.iterate..T">
+ <ownedInit xsi:type="pivot:CollectionLiteralExp" type="#//@ownedPackages.1/@ownedClasses.7" kind="Set"/>
+ </ownedResult>
+ </ownedIn>
+ <ownedVariable name="vs" type="#//@ownedPackages.1/@ownedClasses.0">
+ <ownedInit xsi:type="pivot:CollectionLiteralExp" type="#//@ownedPackages.1/@ownedClasses.7" kind="Set"/>
+ </ownedVariable>
+ </queryExpression>
+ </ownedOperations>
+ <ownedOperations xsi:type="qvtb:Function" xmi:id="o.org.eclipse.qvtd.compiler.qvtr.relToCore.getVarsOfExp..pivot.OCLExpression"
+ name="getVarsOfExp" type="#//@ownedPackages.1/@ownedClasses.0">
+ <ownedParameters xmi:id="p0o.org.eclipse.qvtd.compiler.qvtr.relToCore.getVarsOfExp..pivot.OCLExpression" name="e" isRequired="false"
+ type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OCLExpression"/>
+ <queryExpression xsi:type="pivot:LetExp" type="#//@ownedPackages.1/@ownedClasses.8">
+ <ownedIn xsi:type="pivot:IfExp" type="#//@ownedPackages.1/@ownedClasses.8">
+ <ownedCondition xsi:type="pivot:OperationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.oclIsTypeOf..ocl.OclType">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OCLExpression"
+ referredVariable="#p0o.org.eclipse.qvtd.compiler.qvtr.relToCore.getVarsOfExp..pivot.OCLExpression"/>
+ <ownedArguments xsi:type="pivot:TypeExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class"
+ referredType="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.VariableExp"/>
+ </ownedCondition>
+ <ownedElse xsi:type="pivot:IfExp" type="#//@ownedPackages.1/@ownedClasses.0">
+ <ownedCondition xsi:type="pivot:OperationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.oclIsTypeOf..ocl.OclType">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OCLExpression"
+ referredVariable="#p0o.org.eclipse.qvtd.compiler.qvtr.relToCore.getVarsOfExp..pivot.OCLExpression"/>
+ <ownedArguments xsi:type="pivot:TypeExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class"
+ referredType="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OperationCallExp"/>
+ </ownedCondition>
+ <ownedElse xsi:type="pivot:IfExp" type="#//@ownedPackages.1/@ownedClasses.0">
+ <ownedCondition xsi:type="pivot:OperationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.oclIsTypeOf..ocl.OclType">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OCLExpression"
+ referredVariable="#p0o.org.eclipse.qvtd.compiler.qvtr.relToCore.getVarsOfExp..pivot.OCLExpression"/>
+ <ownedArguments xsi:type="pivot:TypeExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class"
+ referredType="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.PropertyCallExp"/>
+ </ownedCondition>
+ <ownedElse xsi:type="pivot:IfExp" type="#//@ownedPackages.1/@ownedClasses.0">
+ <ownedCondition xsi:type="pivot:OperationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.oclIsTypeOf..ocl.OclType">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OCLExpression"
+ referredVariable="#p0o.org.eclipse.qvtd.compiler.qvtr.relToCore.getVarsOfExp..pivot.OCLExpression"/>
+ <ownedArguments xsi:type="pivot:TypeExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class"
+ referredType="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationCallExp"/>
+ </ownedCondition>
+ <ownedElse xsi:type="pivot:VariableExp" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@ownedOperations.2/@queryExpression/@ownedVariable"/>
+ <ownedThen xsi:type="pivot:LetExp" type="#//@ownedPackages.1/@ownedClasses.0">
+ <ownedIn xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.0" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.UniqueCollection.union..ocl.UniqueCollection">
+ <ownedSource xsi:type="pivot:VariableExp" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@ownedOperations.2/@queryExpression/@ownedVariable"/>
+ <ownedArguments xsi:type="pivot:IterateExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0"
+ referredIteration="http://www.eclipse.org/ocl/2015/Library.oclas#i.ocl.Collection.iterate..T">
+ <ownedSource xsi:type="pivot:PropertyCallExp" type="#//@ownedPackages.1/@ownedClasses.9" referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#p.qvtrelation.RelationCallExp.argument">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationCallExp"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@ownedOperations.2/@queryExpression/@ownedIn/@ownedElse/@ownedElse/@ownedElse/@ownedThen/@ownedVariable"/>
+ </ownedSource>
+ <ownedBody xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.0" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.UniqueCollection.union..ocl.UniqueCollection">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@ownedOperations.2/@queryExpression/@ownedIn/@ownedElse/@ownedElse/@ownedElse/@ownedThen/@ownedIn/@ownedArguments.0/@ownedResult"/>
+ <ownedArguments xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.0" referredOperation="#o.org.eclipse.qvtd.compiler.qvtr.relToCore.getVarsOfExp..pivot.OCLExpression">
+ <ownedArguments xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OCLExpression"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@ownedOperations.2/@queryExpression/@ownedIn/@ownedElse/@ownedElse/@ownedElse/@ownedThen/@ownedIn/@ownedArguments.0/@ownedIterators.0"/>
+ </ownedArguments>
+ </ownedBody>
+ <ownedIterators name="a" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OCLExpression"
+ representedParameter="http://www.eclipse.org/ocl/2015/Library.oclas#i0i.ocl.Collection.iterate..T"/>
+ <ownedResult name="avs" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" representedParameter="http://www.eclipse.org/ocl/2015/Library.oclas#a0i.ocl.Collection.iterate..T">
+ <ownedInit xsi:type="pivot:CollectionLiteralExp" type="#//@ownedPackages.1/@ownedClasses.7" kind="Set"/>
+ </ownedResult>
+ </ownedArguments>
+ </ownedIn>
+ <ownedVariable name="rc" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationCallExp">
+ <ownedInit xsi:type="pivot:OperationCallExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationCallExp"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.oclAsType..TT">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OCLExpression"
+ referredVariable="#p0o.org.eclipse.qvtd.compiler.qvtr.relToCore.getVarsOfExp..pivot.OCLExpression"/>
+ <ownedArguments xsi:type="pivot:TypeExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class"
+ referredType="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationCallExp"/>
+ </ownedInit>
+ </ownedVariable>
+ </ownedThen>
+ </ownedElse>
+ <ownedThen xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.0" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.UniqueCollection.union..ocl.UniqueCollection">
+ <ownedSource xsi:type="pivot:VariableExp" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@ownedOperations.2/@queryExpression/@ownedVariable"/>
+ <ownedArguments xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.0" referredOperation="#o.org.eclipse.qvtd.compiler.qvtr.relToCore.getVarsOfExp..pivot.OCLExpression">
+ <ownedArguments xsi:type="pivot:PropertyCallExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OCLExpression"
+ referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.CallExp.ownedSource">
+ <ownedSource xsi:type="pivot:OperationCallExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.PropertyCallExp"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.oclAsType..TT">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OCLExpression"
+ referredVariable="#p0o.org.eclipse.qvtd.compiler.qvtr.relToCore.getVarsOfExp..pivot.OCLExpression"/>
+ <ownedArguments xsi:type="pivot:TypeExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class"
+ referredType="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.PropertyCallExp"/>
+ </ownedSource>
+ </ownedArguments>
+ </ownedArguments>
+ </ownedThen>
+ </ownedElse>
+ <ownedThen xsi:type="pivot:LetExp" type="#//@ownedPackages.1/@ownedClasses.0">
+ <ownedIn xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.0" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.UniqueCollection.union..ocl.UniqueCollection">
+ <ownedSource xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.0" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.UniqueCollection.union..ocl.UniqueCollection">
+ <ownedSource xsi:type="pivot:VariableExp" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@ownedOperations.2/@queryExpression/@ownedVariable"/>
+ <ownedArguments xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.0" referredOperation="#o.org.eclipse.qvtd.compiler.qvtr.relToCore.getVarsOfExp..pivot.OCLExpression">
+ <ownedArguments xsi:type="pivot:PropertyCallExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OCLExpression"
+ referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.CallExp.ownedSource">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OperationCallExp"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@ownedOperations.2/@queryExpression/@ownedIn/@ownedElse/@ownedThen/@ownedVariable"/>
+ </ownedArguments>
+ </ownedArguments>
+ </ownedSource>
+ <ownedArguments xsi:type="pivot:IterateExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredIteration="http://www.eclipse.org/ocl/2015/Library.oclas#i.ocl.Collection.iterate..T">
+ <ownedSource xsi:type="pivot:PropertyCallExp" type="#//@ownedPackages.1/@ownedClasses.9" referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.OperationCallExp.ownedArguments">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OperationCallExp"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@ownedOperations.2/@queryExpression/@ownedIn/@ownedElse/@ownedThen/@ownedVariable"/>
+ </ownedSource>
+ <ownedBody xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.0" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.UniqueCollection.union..ocl.UniqueCollection">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@ownedOperations.2/@queryExpression/@ownedIn/@ownedElse/@ownedThen/@ownedIn/@ownedArguments.0/@ownedResult"/>
+ <ownedArguments xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.0" referredOperation="#o.org.eclipse.qvtd.compiler.qvtr.relToCore.getVarsOfExp..pivot.OCLExpression">
+ <ownedArguments xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OCLExpression"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@ownedOperations.2/@queryExpression/@ownedIn/@ownedElse/@ownedThen/@ownedIn/@ownedArguments.0/@ownedIterators.0"/>
+ </ownedArguments>
+ </ownedBody>
+ <ownedIterators name="a" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OCLExpression"
+ representedParameter="http://www.eclipse.org/ocl/2015/Library.oclas#i0i.ocl.Collection.iterate..T"/>
+ <ownedResult name="avs" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" representedParameter="http://www.eclipse.org/ocl/2015/Library.oclas#a0i.ocl.Collection.iterate..T">
+ <ownedInit xsi:type="pivot:CollectionLiteralExp" type="#//@ownedPackages.1/@ownedClasses.7" kind="Set"/>
+ </ownedResult>
+ </ownedArguments>
+ </ownedIn>
+ <ownedVariable name="oc" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OperationCallExp">
+ <ownedInit xsi:type="pivot:OperationCallExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OperationCallExp"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.oclAsType..TT">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OCLExpression"
+ referredVariable="#p0o.org.eclipse.qvtd.compiler.qvtr.relToCore.getVarsOfExp..pivot.OCLExpression"/>
+ <ownedArguments xsi:type="pivot:TypeExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class"
+ referredType="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OperationCallExp"/>
+ </ownedInit>
+ </ownedVariable>
+ </ownedThen>
+ </ownedElse>
+ <ownedThen xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.8" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Set.including..T">
+ <ownedSource xsi:type="pivot:VariableExp" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@ownedOperations.2/@queryExpression/@ownedVariable"/>
+ <ownedArguments xsi:type="pivot:PropertyCallExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.VariableDeclaration"
+ referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.VariableExp.referredVariable">
+ <ownedSource xsi:type="pivot:OperationCallExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.VariableExp"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.oclAsType..TT">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OCLExpression"
+ referredVariable="#p0o.org.eclipse.qvtd.compiler.qvtr.relToCore.getVarsOfExp..pivot.OCLExpression"/>
+ <ownedArguments xsi:type="pivot:TypeExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class"
+ referredType="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.VariableExp"/>
+ </ownedSource>
+ </ownedArguments>
+ </ownedThen>
+ </ownedIn>
+ <ownedVariable name="vs" type="#//@ownedPackages.1/@ownedClasses.0">
+ <ownedInit xsi:type="pivot:CollectionLiteralExp" type="#//@ownedPackages.1/@ownedClasses.7" kind="Set"/>
+ </ownedVariable>
+ </queryExpression>
+ </ownedOperations>
+ <ownedOperations xsi:type="qvtb:Function" xmi:id="o.org.eclipse.qvtd.compiler.qvtr.relToCore.filterOutPredicatesThatReferToVars..$$.Set..$$.Set"
+ name="filterOutPredicatesThatReferToVars" type="#//@ownedPackages.1/@ownedClasses.10">
+ <ownedParameters xmi:id="p0o.org.eclipse.qvtd.compiler.qvtr.relToCore.filterOutPredicatesThatReferToVars..$$.Set..$$.Set"
+ name="rpSet" type="#//@ownedPackages.1/@ownedClasses.10"/>
+ <ownedParameters xmi:id="p1o.org.eclipse.qvtd.compiler.qvtr.relToCore.filterOutPredicatesThatReferToVars..$$.Set..$$.Set"
+ name="ownrdVars" type="#//@ownedPackages.1/@ownedClasses.0"/>
+ <queryExpression xsi:type="pivot:IterateExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.10" referredIteration="http://www.eclipse.org/ocl/2015/Library.oclas#i.ocl.Collection.iterate..T">
+ <ownedSource xsi:type="pivot:VariableExp" type="#//@ownedPackages.1/@ownedClasses.10" referredVariable="#p0o.org.eclipse.qvtd.compiler.qvtr.relToCore.filterOutPredicatesThatReferToVars..$$.Set..$$.Set"/>
+ <ownedBody xsi:type="pivot:IfExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.10">
+ <ownedCondition xsi:type="pivot:OperationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Collection.isEmpty">
+ <ownedSource xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.0" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Collection.intersection..$$.UniqueCollection">
+ <ownedSource xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.0" referredOperation="#o.org.eclipse.qvtd.compiler.qvtr.relToCore.getVarsOfExp..pivot.OCLExpression">
+ <ownedArguments xsi:type="pivot:PropertyCallExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OCLExpression"
+ referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Predicate.conditionExpression">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Predicate"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@ownedOperations.3/@queryExpression/@ownedIterators.0"/>
+ </ownedArguments>
+ </ownedSource>
+ <ownedArguments xsi:type="pivot:VariableExp" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#p1o.org.eclipse.qvtd.compiler.qvtr.relToCore.filterOutPredicatesThatReferToVars..$$.Set..$$.Set"/>
+ </ownedSource>
+ </ownedCondition>
+ <ownedElse xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.10" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@ownedOperations.3/@queryExpression/@ownedResult"/>
+ <ownedThen xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.10" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Set.including..T">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.10" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@ownedOperations.3/@queryExpression/@ownedResult"/>
+ <ownedArguments xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Predicate"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@ownedOperations.3/@queryExpression/@ownedIterators.0"/>
+ </ownedThen>
+ </ownedBody>
+ <ownedIterators name="p" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Predicate"
+ representedParameter="http://www.eclipse.org/ocl/2015/Library.oclas#i0i.ocl.Collection.iterate..T"/>
+ <ownedResult name="fpSet" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.10" representedParameter="http://www.eclipse.org/ocl/2015/Library.oclas#a0i.ocl.Collection.iterate..T">
+ <ownedInit xsi:type="pivot:CollectionLiteralExp" type="#//@ownedPackages.1/@ownedClasses.7" kind="Set"/>
+ </ownedResult>
+ </queryExpression>
+ </ownedOperations>
+ <ownedOperations xsi:type="qvtb:Function" xmi:id="o.org.eclipse.qvtd.compiler.qvtr.relToCore.isVarBoundToSomeOtherTemplate..qvttemplate.ObjectTemplateExp..qvttemplate.ObjectTemplateExp..pivot.Variable"
+ name="isVarBoundToSomeOtherTemplate" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean">
+ <ownedParameters xmi:id="p0o.org.eclipse.qvtd.compiler.qvtr.relToCore.isVarBoundToSomeOtherTemplate..qvttemplate.ObjectTemplateExp..qvttemplate.ObjectTemplateExp..pivot.Variable"
+ name="rootTe" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"/>
+ <ownedParameters xmi:id="p1o.org.eclipse.qvtd.compiler.qvtr.relToCore.isVarBoundToSomeOtherTemplate..qvttemplate.ObjectTemplateExp..qvttemplate.ObjectTemplateExp..pivot.Variable"
+ name="skipTe" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"/>
+ <ownedParameters xmi:id="p2o.org.eclipse.qvtd.compiler.qvtr.relToCore.isVarBoundToSomeOtherTemplate..qvttemplate.ObjectTemplateExp..qvttemplate.ObjectTemplateExp..pivot.Variable"
+ name="v" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/>
+ <queryExpression xsi:type="pivot:IfExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean">
+ <ownedCondition xsi:type="pivot:OperationCallExp" name="=" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.%61%..ocl.OclSelf">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"
+ referredVariable="#p0o.org.eclipse.qvtd.compiler.qvtr.relToCore.isVarBoundToSomeOtherTemplate..qvttemplate.ObjectTemplateExp..qvttemplate.ObjectTemplateExp..pivot.Variable"/>
+ <ownedArguments xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"
+ referredVariable="#p1o.org.eclipse.qvtd.compiler.qvtr.relToCore.isVarBoundToSomeOtherTemplate..qvttemplate.ObjectTemplateExp..qvttemplate.ObjectTemplateExp..pivot.Variable"/>
+ </ownedCondition>
+ <ownedElse xsi:type="pivot:IfExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean">
+ <ownedCondition xsi:type="pivot:OperationCallExp" name="=" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.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 ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#p.qvttemplate.TemplateExp.bindsTo">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"
+ referredVariable="#p0o.org.eclipse.qvtd.compiler.qvtr.relToCore.isVarBoundToSomeOtherTemplate..qvttemplate.ObjectTemplateExp..qvttemplate.ObjectTemplateExp..pivot.Variable"/>
+ </ownedSource>
+ <ownedArguments xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ referredVariable="#p2o.org.eclipse.qvtd.compiler.qvtr.relToCore.isVarBoundToSomeOtherTemplate..qvttemplate.ObjectTemplateExp..qvttemplate.ObjectTemplateExp..pivot.Variable"/>
+ </ownedCondition>
+ <ownedElse xsi:type="pivot:IteratorExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredIteration="http://www.eclipse.org/ocl/2015/Library.oclas#i.ocl.Collection.exists..T">
+ <ownedSource xsi:type="pivot:IteratorExp" type="#//@ownedPackages.1/@ownedClasses.11" referredIteration="http://www.eclipse.org/ocl/2015/Library.oclas#i.ocl.Bag.select..T">
+ <ownedSource xsi:type="pivot:IteratorExp" name="collect" type="#//@ownedPackages.1/@ownedClasses.11" isImplicit="true"
+ referredIteration="http://www.eclipse.org/ocl/2015/Library.oclas#i.ocl.Set.collect..T">
+ <ownedSource xsi:type="pivot:PropertyCallExp" type="#//@ownedPackages.1/@ownedClasses.12" referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#p.qvttemplate.ObjectTemplateExp.part">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"
+ referredVariable="#p0o.org.eclipse.qvtd.compiler.qvtr.relToCore.isVarBoundToSomeOtherTemplate..qvttemplate.ObjectTemplateExp..qvttemplate.ObjectTemplateExp..pivot.Variable"/>
+ </ownedSource>
+ <ownedBody xsi:type="pivot:PropertyCallExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OCLExpression"
+ referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#p.qvttemplate.PropertyTemplateItem.value">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.PropertyTemplateItem"
+ isImplicit="true" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@ownedOperations.4/@queryExpression/@ownedElse/@ownedElse/@ownedSource/@ownedSource/@ownedIterators.0"/>
+ </ownedBody>
+ <ownedIterators name="1_" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.PropertyTemplateItem"
+ isImplicit="true" representedParameter="http://www.eclipse.org/ocl/2015/Library.oclas#i0i.ocl.Set.collect..T"/>
+ </ownedSource>
+ <ownedBody xsi:type="pivot:OperationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.oclIsKindOf..ocl.OclType">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OCLExpression"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@ownedOperations.4/@queryExpression/@ownedElse/@ownedElse/@ownedSource/@ownedIterators.0"/>
+ <ownedArguments xsi:type="pivot:TypeExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class"
+ referredType="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"/>
+ </ownedBody>
+ <ownedIterators name="pe" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OCLExpression"
+ representedParameter="http://www.eclipse.org/ocl/2015/Library.oclas#i0i.ocl.Bag.select..T"/>
+ </ownedSource>
+ <ownedBody xsi:type="pivot:OperationCallExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredOperation="#o.org.eclipse.qvtd.compiler.qvtr.relToCore.isVarBoundToSomeOtherTemplate..qvttemplate.ObjectTemplateExp..qvttemplate.ObjectTemplateExp..pivot.Variable">
+ <ownedArguments xsi:type="pivot:OperationCallExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.oclAsType..TT">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OCLExpression"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@ownedOperations.4/@queryExpression/@ownedElse/@ownedElse/@ownedIterators.0"/>
+ <ownedArguments xsi:type="pivot:TypeExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class"
+ referredType="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"/>
+ </ownedArguments>
+ <ownedArguments xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"
+ referredVariable="#p1o.org.eclipse.qvtd.compiler.qvtr.relToCore.isVarBoundToSomeOtherTemplate..qvttemplate.ObjectTemplateExp..qvttemplate.ObjectTemplateExp..pivot.Variable"/>
+ <ownedArguments xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ referredVariable="#p2o.org.eclipse.qvtd.compiler.qvtr.relToCore.isVarBoundToSomeOtherTemplate..qvttemplate.ObjectTemplateExp..qvttemplate.ObjectTemplateExp..pivot.Variable"/>
+ </ownedBody>
+ <ownedIterators name="pet" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OCLExpression"
+ representedParameter="http://www.eclipse.org/ocl/2015/Library.oclas#i0i.ocl.Collection.exists..T"/>
+ </ownedElse>
+ <ownedThen xsi:type="pivot:BooleanLiteralExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ booleanSymbol="true"/>
+ </ownedElse>
+ <ownedThen xsi:type="pivot:BooleanLiteralExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ booleanSymbol="false"/>
+ </queryExpression>
+ </ownedOperations>
+ <modelParameter xmi:id="qT.org.eclipse.qvtd.compiler.qvtr.relToCore.relations" name="relations" usedPackage="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#P.qvtrelation ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#P.qvttemplate ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#P.qvtbase ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#P.pivot"/>
+ <modelParameter xmi:id="qT.org.eclipse.qvtd.compiler.qvtr.relToCore.core" name="core" usedPackage="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcore/model/QVTcore.ecore.oclas#P.qvtcore ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#P.qvtcorebase ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#P.qvtbase ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#P.pivot"/>
+ <rule xsi:type="qvtr:Relation" name="RelationalTransformationToMappingTransformation" isTopLevel="true">
+ <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RelationalTransformationToMappingTransformation.relations"
+ isCheckable="true" isEnforceable="false" typedModel="#qT.org.eclipse.qvtd.compiler.qvtr.relToCore.relations" rootVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.0/@variable.2">
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.0/@variable.2 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.0/@variable.3 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.0/@variable.4">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationalTransformation"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.0/@variable.2"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationalTransformation">
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.0/@variable.0"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Transformation.modelParameter">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.TypedModel"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.0/@variable.3"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.TypedModel">
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.0/@variable.1"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.TypedModel.usedPackage">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Package"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.0/@variable.4"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Package"/>
+ </part>
+ </value>
+ </part>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RelationalTransformationToMappingTransformation.core"
+ isCheckable="true" isEnforceable="true" typedModel="#qT.org.eclipse.qvtd.compiler.qvtr.relToCore.core" rootVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.0/@variable.5">
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.0/@variable.5 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.0/@variable.6">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Transformation"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.0/@variable.5"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Transformation">
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.0/@variable.0"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Transformation.modelParameter">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.TypedModel"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.0/@variable.6"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.TypedModel">
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.0/@variable.1"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.TypedModel.usedPackage">
+ <value xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Package"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.0/@variable.4"/>
+ </part>
+ </value>
+ </part>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <variable name="rtn" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"/>
+ <variable name="tmn" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"/>
+ <variable name="rt" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationalTransformation"/>
+ <variable name="rtm" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.TypedModel"/>
+ <variable name="up" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Package"/>
+ <variable name="mt" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Transformation"/>
+ <variable name="mtm" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.TypedModel"/>
+ </rule>
+ <rule xsi:type="qvtr:Relation" name="RelationToTraceClass" isTopLevel="true">
+ <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RelationToTraceClass.relations"
+ isCheckable="true" isEnforceable="false" typedModel="#qT.org.eclipse.qvtd.compiler.qvtr.relToCore.relations" rootVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.1/@variable.2">
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.1/@variable.2 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.1/@variable.3 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.1/@variable.4 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.1/@variable.5 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.1/@variable.6 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.1/@variable.7">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.1/@variable.2"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation">
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.1/@variable.0"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Rule.domain">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.1/@variable.3"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#p.qvtrelation.RelationDomain.pattern">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.DomainPattern"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.1/@variable.4"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.DomainPattern">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#p.qvtrelation.DomainPattern.templateExpression">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.1/@variable.5"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#p.qvttemplate.TemplateExp.bindsTo">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.1/@variable.6"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable">
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.1/@variable.1"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.TypedElement.type">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.1/@variable.7"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class"/>
+ </part>
+ </value>
+ </part>
+ </value>
+ </part>
+ </value>
+ </part>
+ </value>
+ </part>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RelationToTraceClass.core"
+ isCheckable="true" isEnforceable="true" typedModel="#qT.org.eclipse.qvtd.compiler.qvtr.relToCore.core" rootVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.1/@variable.8">
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.1/@variable.8 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.1/@variable.9">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.1/@variable.8"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class">
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name">
+ <value xsi:type="pivot:OperationCallExp" name="+" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.String.%43%..ocl.String">
+ <ownedSource xsi:type="pivot:StringLiteralExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ stringSymbol="T"/>
+ <ownedArguments xsi:type="pivot:VariableExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.1/@variable.0"/>
+ </value>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.Class.ownedProperties">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Property"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.1/@variable.9"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Property">
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.1/@variable.1"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.TypedElement.type">
+ <value xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.1/@variable.7"/>
+ </part>
+ </value>
+ </part>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <variable name="rn" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"/>
+ <variable name="vn" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"/>
+ <variable name="r" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"/>
+ <variable name="rd" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"/>
+ <variable name="rdp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.DomainPattern"/>
+ <variable name="t" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"/>
+ <variable name="tv" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/>
+ <variable name="c" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class"/>
+ <variable name="rc" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class"/>
+ <variable name="a" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Property"/>
+ <where>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.2">
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.1/@variable.5"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.1/@variable.8"/>
+ </conditionExpression>
+ </predicate>
+ </where>
+ </rule>
+ <rule xsi:type="qvtr:Relation" name="SubTemplateToTraceClassProps">
+ <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.SubTemplateToTraceClassProps.relations"
+ isCheckable="true" isEnforceable="false" typedModel="#qT.org.eclipse.qvtd.compiler.qvtr.relToCore.relations" rootVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.2/@variable.1">
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.2/@variable.1 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.2/@variable.2 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.2/@variable.3 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.2/@variable.4 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.2/@variable.5">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.2/@variable.1"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#p.qvttemplate.ObjectTemplateExp.part">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.PropertyTemplateItem"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.2/@variable.2"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.PropertyTemplateItem">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#p.qvttemplate.PropertyTemplateItem.value">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.2/@variable.3"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#p.qvttemplate.TemplateExp.bindsTo">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.2/@variable.4"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable">
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.2/@variable.0"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.TypedElement.type">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.2/@variable.5"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class"/>
+ </part>
+ </value>
+ </part>
+ </value>
+ </part>
+ </value>
+ </part>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.SubTemplateToTraceClassProps.core"
+ isCheckable="true" isEnforceable="true" typedModel="#qT.org.eclipse.qvtd.compiler.qvtr.relToCore.core" rootVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.2/@variable.6">
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.2/@variable.6 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.2/@variable.7">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.2/@variable.6"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class">
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.Class.ownedProperties">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Property"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.2/@variable.7"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Property">
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.2/@variable.0"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.TypedElement.type">
+ <value xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.2/@variable.5"/>
+ </part>
+ </value>
+ </part>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <variable name="vn" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"/>
+ <variable name="t" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"/>
+ <variable name="pt" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.PropertyTemplateItem"/>
+ <variable name="tp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"/>
+ <variable name="tv" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/>
+ <variable name="c" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class"/>
+ <variable name="rc" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class"/>
+ <variable name="a" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Property"/>
+ <where>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.2">
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.2/@variable.3"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.2/@variable.6"/>
+ </conditionExpression>
+ </predicate>
+ </where>
+ </rule>
+ <rule xsi:type="qvtr:Relation" name="TopLevelRelationToMappingForChecking" isTopLevel="true">
+ <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.TopLevelRelationToMappingForChecking.relations"
+ isCheckable="true" isEnforceable="false" typedModel="#qT.org.eclipse.qvtd.compiler.qvtr.relToCore.relations" rootVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.3/@variable.9">
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.3/@variable.9">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.3/@variable.9"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation">
+ <where xsi:type="pivot:OperationCallExp" name="not" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Boolean.not">
+ <ownedSource xsi:type="pivot:IteratorExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredIteration="http://www.eclipse.org/ocl/2015/Library.oclas#i.ocl.Collection.exists..T">
+ <ownedSource xsi:type="pivot:PropertyCallExp" type="#//@ownedPackages.1/@ownedClasses.2" referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Rule.domain">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.3/@variable.9"/>
+ </ownedSource>
+ <ownedBody xsi:type="pivot:OperationCallExp" name="=" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Boolean.%61%..ocl.OclSelf">
+ <ownedSource xsi:type="pivot:PropertyCallExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Domain.isEnforceable">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Domain"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.3/@domain.0/@pattern.0/@templateExpression/@where/@ownedSource/@ownedIterators.0"/>
+ </ownedSource>
+ <ownedArguments xsi:type="pivot:BooleanLiteralExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ booleanSymbol="true"/>
+ </ownedBody>
+ <ownedIterators name="d" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Domain"
+ representedParameter="http://www.eclipse.org/ocl/2015/Library.oclas#i0i.ocl.Collection.exists..T"/>
+ </ownedSource>
+ </where>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Rule.transformation">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationalTransformation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.3/@variable.4"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#p.qvtrelation.Relation.isTopLevel">
+ <value xsi:type="pivot:BooleanLiteralExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ booleanSymbol="true"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.3/@variable.3"/>
+ </part>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.TopLevelRelationToMappingForChecking.core"
+ isCheckable="true" isEnforceable="true" typedModel="#qT.org.eclipse.qvtd.compiler.qvtr.relToCore.core" rootVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.3/@variable.10">
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.3/@variable.10 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.3/@variable.11 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.3/@variable.12 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.3/@variable.13 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.3/@variable.14 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.3/@variable.15">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcore/model/QVTcore.ecore.oclas#T.qvtcore.Mapping"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.3/@variable.10"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcore/model/QVTcore.ecore.oclas#T.qvtcore.Mapping">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Rule.transformation">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Transformation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.3/@variable.2"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.3/@variable.3"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#p.qvtcorebase.Area.guardPattern">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.3/@variable.11"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#p.qvtcorebase.GuardPattern.area">
+ <value xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcore/model/QVTcore.ecore.oclas#T.qvtcore.Mapping"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.3/@variable.10"/>
+ </part>
+ </value>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#p.qvtcorebase.Area.bottomPattern">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.3/@variable.12"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Pattern.bindsTo">
+ <value xsi:type="qvtt:CollectionTemplateExp" type="#//@ownedPackages.1/@ownedClasses.0" bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.3/@variable.13"
+ referredCollectionType="http://www.eclipse.org/ocl/2015/Orphanage#//@ownedPackages.0/@ownedClasses.285"
+ rest="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.3/@variable.15">
+ <member xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.RealizedVariable"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.3/@variable.14"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.RealizedVariable"/>
+ </value>
+ </part>
+ </value>
+ </part>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <variable name="allDomainVars" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.6">
+ <ownedInit xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.6" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Collection.asSet">
+ <ownedSource xsi:type="pivot:IteratorExp" name="collect" type="#//@ownedPackages.1/@ownedClasses.13" isImplicit="true"
+ referredIteration="http://www.eclipse.org/ocl/2015/Library.oclas#i.ocl.Bag.collect..T">
+ <ownedSource xsi:type="pivot:IteratorExp" name="collect" type="#//@ownedPackages.1/@ownedClasses.14" isImplicit="true"
+ referredIteration="http://www.eclipse.org/ocl/2015/Library.oclas#i.ocl.Set.collect..T">
+ <ownedSource xsi:type="pivot:IterateExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.15" referredIteration="http://www.eclipse.org/ocl/2015/Library.oclas#i.ocl.Collection.iterate..T">
+ <ownedSource xsi:type="pivot:PropertyCallExp" type="#//@ownedPackages.1/@ownedClasses.2" referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Rule.domain">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.3/@variable.9"/>
+ </ownedSource>
+ <ownedBody xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.15" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Set.including..T">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.15" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.3/@variable.0/@ownedInit/@ownedSource/@ownedSource/@ownedSource/@ownedResult"/>
+ <ownedArguments xsi:type="pivot:OperationCallExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.oclAsType..TT">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Domain"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.3/@variable.0/@ownedInit/@ownedSource/@ownedSource/@ownedSource/@ownedIterators.0"/>
+ <ownedArguments xsi:type="pivot:TypeExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class"
+ referredType="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"/>
+ </ownedArguments>
+ </ownedBody>
+ <ownedIterators name="md" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Domain"
+ representedParameter="http://www.eclipse.org/ocl/2015/Library.oclas#i0i.ocl.Collection.iterate..T"/>
+ <ownedResult name="acc" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.15" representedParameter="http://www.eclipse.org/ocl/2015/Library.oclas#a0i.ocl.Collection.iterate..T">
+ <ownedInit xsi:type="pivot:CollectionLiteralExp" type="#//@ownedPackages.1/@ownedClasses.7" kind="Set"/>
+ </ownedResult>
+ </ownedSource>
+ <ownedBody xsi:type="pivot:PropertyCallExp" type="#//@ownedPackages.1/@ownedClasses.5" referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#p.qvtrelation.RelationDomain.pattern">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"
+ isImplicit="true" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.3/@variable.0/@ownedInit/@ownedSource/@ownedSource/@ownedIterators.0"/>
+ </ownedBody>
+ <ownedIterators name="1_" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"
+ isImplicit="true" representedParameter="http://www.eclipse.org/ocl/2015/Library.oclas#i0i.ocl.Set.collect..T"/>
+ </ownedSource>
+ <ownedBody xsi:type="pivot:PropertyCallExp" type="#//@ownedPackages.1/@ownedClasses.6" referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Pattern.bindsTo">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.DomainPattern"
+ isImplicit="true" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.3/@variable.0/@ownedInit/@ownedSource/@ownedIterators.0"/>
+ </ownedBody>
+ <ownedIterators name="1_" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.DomainPattern"
+ isImplicit="true" representedParameter="http://www.eclipse.org/ocl/2015/Library.oclas#i0i.ocl.Bag.collect..T"/>
+ </ownedSource>
+ </ownedInit>
+ </variable>
+ <variable name="mbVars" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0"/>
+ <variable name="mt" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Transformation"/>
+ <variable name="rn" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"/>
+ <variable name="rt" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationalTransformation"/>
+ <variable name="sharedDomainVars" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0">
+ <ownedInit xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.0" referredOperation="#o.org.eclipse.qvtd.compiler.qvtr.relToCore.getSharedDomainVars..qvtrelation.Relation">
+ <ownedArguments xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.3/@variable.9"/>
+ </ownedInit>
+ </variable>
+ <variable name="unsharedWhereVars" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0">
+ <ownedInit xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.0" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.UniqueCollection.union..ocl.UniqueCollection">
+ <ownedSource xsi:type="pivot:OperationCallExp" name="-" type="#//@ownedPackages.1/@ownedClasses.0" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Set.%45%..$$.UniqueCollection">
+ <ownedSource xsi:type="pivot:OperationCallExp" name="-" type="#//@ownedPackages.1/@ownedClasses.0" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Set.%45%..$$.UniqueCollection">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.3/@variable.8"/>
+ <ownedArguments xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.3/@variable.7"/>
+ </ownedSource>
+ <ownedArguments xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.6" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.3/@variable.0"/>
+ </ownedSource>
+ <ownedArguments xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.3/@variable.5"/>
+ </ownedInit>
+ </variable>
+ <variable name="whenVars" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0">
+ <ownedInit xsi:type="pivot:PropertyCallExp" type="#//@ownedPackages.1/@ownedClasses.6" referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Pattern.bindsTo">
+ <ownedSource xsi:type="pivot:PropertyCallExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Pattern"
+ referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#p.qvtrelation.Relation.when">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.3/@variable.9"/>
+ </ownedSource>
+ </ownedInit>
+ </variable>
+ <variable name="whereVars" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0">
+ <ownedInit xsi:type="pivot:PropertyCallExp" type="#//@ownedPackages.1/@ownedClasses.6" referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Pattern.bindsTo">
+ <ownedSource xsi:type="pivot:PropertyCallExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Pattern"
+ referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#p.qvtrelation.Relation.where">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.3/@variable.9"/>
+ </ownedSource>
+ </ownedInit>
+ </variable>
+ <variable name="r" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"/>
+ <variable name="m" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcore/model/QVTcore.ecore.oclas#T.qvtcore.Mapping"/>
+ <variable name="mg" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern"/>
+ <variable name="mb" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"/>
+ <variable name="vs" type="#//@ownedPackages.1/@ownedClasses.0"/>
+ <variable name="tcv" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.RealizedVariable"/>
+ <variable name="_5" type="#//@ownedPackages.1/@ownedClasses.0"/>
+ <when>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.0">
+ <argument xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationalTransformation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.3/@variable.4"/>
+ <argument xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Transformation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.3/@variable.2"/>
+ </conditionExpression>
+ </predicate>
+ </when>
+ <where>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.47">
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.3/@variable.9"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.RealizedVariable"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.3/@variable.14"/>
+ </conditionExpression>
+ </predicate>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.14">
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.3/@variable.9"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.3/@variable.11"/>
+ </conditionExpression>
+ </predicate>
+ <predicate>
+ <conditionExpression xsi:type="pivot:IfExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean">
+ <ownedCondition xsi:type="pivot:OperationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Collection.isEmpty">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.3/@variable.6"/>
+ </ownedCondition>
+ <ownedElse xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.15">
+ <argument xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.16" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Collection.asSequence">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.3/@variable.6"/>
+ </argument>
+ <argument xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.3/@variable.1"/>
+ </ownedElse>
+ <ownedThen xsi:type="pivot:OperationCallExp" name="=" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Set.%61%..ocl.OclSelf">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.3/@variable.1"/>
+ <ownedArguments xsi:type="pivot:CollectionLiteralExp" type="#//@ownedPackages.1/@ownedClasses.7" kind="Set"/>
+ </ownedThen>
+ </conditionExpression>
+ </predicate>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.4">
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.3/@variable.9"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.3/@variable.12"/>
+ </conditionExpression>
+ </predicate>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.11">
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.3/@variable.9"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcore/model/QVTcore.ecore.oclas#T.qvtcore.Mapping"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.3/@variable.10"/>
+ </conditionExpression>
+ </predicate>
+ </where>
+ </rule>
+ <rule xsi:type="qvtr:Relation" name="RWherePatternToMPattern">
+ <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RWherePatternToMPattern.relations"
+ isCheckable="true" isEnforceable="false" typedModel="#qT.org.eclipse.qvtd.compiler.qvtr.relToCore.relations" rootVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.4/@variable.0">
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.4/@variable.0 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.4/@variable.1">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.4/@variable.0"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#p.qvtrelation.Relation.where">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Pattern"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.4/@variable.1"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Pattern"/>
+ </part>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RWherePatternToMPattern.core"
+ isCheckable="true" isEnforceable="true" typedModel="#qT.org.eclipse.qvtd.compiler.qvtr.relToCore.core" rootVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.4/@variable.2">
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.4/@variable.2">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Pattern"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.4/@variable.2"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Pattern"/>
+ </pattern>
+ </domain>
+ <variable name="r" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"/>
+ <variable name="wherep" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Pattern"/>
+ <variable name="mp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Pattern"/>
+ <where>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.20">
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Pattern"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.4/@variable.1"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Pattern"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.4/@variable.2"/>
+ </conditionExpression>
+ </predicate>
+ </where>
+ </rule>
+ <rule xsi:type="qvtr:Relation" name="UnsharedWhenVarsToMgVars">
+ <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.UnsharedWhenVarsToMgVars.relations"
+ isCheckable="true" isEnforceable="false" typedModel="#qT.org.eclipse.qvtd.compiler.qvtr.relToCore.relations" rootVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.5/@variable.0">
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.5/@variable.0 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.5/@variable.1 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.5/@variable.2">
+ <templateExpression xsi:type="qvtt:CollectionTemplateExp" type="#//@ownedPackages.1/@ownedClasses.0" bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.5/@variable.0"
+ referredCollectionType="http://www.eclipse.org/ocl/2015/Orphanage#//@ownedPackages.0/@ownedClasses.285" rest="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.5/@variable.2">
+ <member xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.5/@variable.1"/>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.UnsharedWhenVarsToMgVars.core"
+ isCheckable="true" isEnforceable="true" typedModel="#qT.org.eclipse.qvtd.compiler.qvtr.relToCore.core" rootVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.5/@variable.3">
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.5/@variable.3 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.5/@variable.4">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.5/@variable.3"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Pattern.bindsTo">
+ <value xsi:type="qvtt:CollectionTemplateExp" type="#//@ownedPackages.1/@ownedClasses.0" bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.5/@variable.4"
+ referredCollectionType="http://www.eclipse.org/ocl/2015/Orphanage#//@ownedPackages.0/@ownedClasses.285"/>
+ </part>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <variable name="unsharedWhenVars" type="#//@ownedPackages.1/@ownedClasses.0"/>
+ <variable name="_1" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/>
+ <variable name="_2" type="#//@ownedPackages.1/@ownedClasses.0"/>
+ <variable name="mg" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern"/>
+ <variable name="mgVars" type="#//@ownedPackages.1/@ownedClasses.0"/>
+ <where>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.15">
+ <argument xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.16" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Collection.asSequence">
+ <ownedSource xsi:type="pivot:VariableExp" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.5/@variable.0"/>
+ </argument>
+ <argument xsi:type="pivot:VariableExp" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.5/@variable.4"/>
+ </conditionExpression>
+ </predicate>
+ </where>
+ </rule>
+ <rule xsi:type="qvtr:Relation" name="DomainVarsSharedWithWhenToDgVars">
+ <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.DomainVarsSharedWithWhenToDgVars.relations"
+ isCheckable="true" isEnforceable="false" typedModel="#qT.org.eclipse.qvtd.compiler.qvtr.relToCore.relations" rootVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.6/@variable.0">
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.6/@variable.0 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.6/@variable.1 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.6/@variable.2">
+ <templateExpression xsi:type="qvtt:CollectionTemplateExp" type="#//@ownedPackages.1/@ownedClasses.0" bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.6/@variable.0"
+ referredCollectionType="http://www.eclipse.org/ocl/2015/Orphanage#//@ownedPackages.0/@ownedClasses.285" rest="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.6/@variable.2">
+ <member xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.6/@variable.1"/>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.DomainVarsSharedWithWhenToDgVars.core"
+ isCheckable="true" isEnforceable="true" typedModel="#qT.org.eclipse.qvtd.compiler.qvtr.relToCore.core" rootVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.6/@variable.3">
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.6/@variable.3 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.6/@variable.4">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.6/@variable.3"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Pattern.bindsTo">
+ <value xsi:type="qvtt:CollectionTemplateExp" type="#//@ownedPackages.1/@ownedClasses.0" bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.6/@variable.4"
+ referredCollectionType="http://www.eclipse.org/ocl/2015/Orphanage#//@ownedPackages.0/@ownedClasses.285"/>
+ </part>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <variable name="domainVarsSharedWithWhen" type="#//@ownedPackages.1/@ownedClasses.0"/>
+ <variable name="_1" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/>
+ <variable name="_2" type="#//@ownedPackages.1/@ownedClasses.0"/>
+ <variable name="dg" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern"/>
+ <variable name="dgVars" type="#//@ownedPackages.1/@ownedClasses.0"/>
+ <where>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.15">
+ <argument xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.16" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Collection.asSequence">
+ <ownedSource xsi:type="pivot:VariableExp" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.6/@variable.0"/>
+ </argument>
+ <argument xsi:type="pivot:VariableExp" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.6/@variable.4"/>
+ </conditionExpression>
+ </predicate>
+ </where>
+ </rule>
+ <rule xsi:type="qvtr:Relation" name="DomainBottomUnSharedVarsToDbVars">
+ <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.DomainBottomUnSharedVarsToDbVars.relations"
+ isCheckable="true" isEnforceable="false" typedModel="#qT.org.eclipse.qvtd.compiler.qvtr.relToCore.relations" rootVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.7/@variable.0">
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.7/@variable.0 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.7/@variable.1 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.7/@variable.2">
+ <templateExpression xsi:type="qvtt:CollectionTemplateExp" type="#//@ownedPackages.1/@ownedClasses.0" bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.7/@variable.0"
+ referredCollectionType="http://www.eclipse.org/ocl/2015/Orphanage#//@ownedPackages.0/@ownedClasses.285" rest="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.7/@variable.2">
+ <member xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.7/@variable.1"/>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.DomainBottomUnSharedVarsToDbVars.core"
+ isCheckable="true" isEnforceable="true" typedModel="#qT.org.eclipse.qvtd.compiler.qvtr.relToCore.core" rootVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.7/@variable.3">
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.7/@variable.3 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.7/@variable.4">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.7/@variable.3"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Pattern.bindsTo">
+ <value xsi:type="qvtt:CollectionTemplateExp" type="#//@ownedPackages.1/@ownedClasses.0" bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.7/@variable.4"
+ referredCollectionType="http://www.eclipse.org/ocl/2015/Orphanage#//@ownedPackages.0/@ownedClasses.285"/>
+ </part>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <variable name="domainBottomUnSharedVars" type="#//@ownedPackages.1/@ownedClasses.0"/>
+ <variable name="_1" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/>
+ <variable name="_2" type="#//@ownedPackages.1/@ownedClasses.0"/>
+ <variable name="db" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"/>
+ <variable name="dbVars" type="#//@ownedPackages.1/@ownedClasses.0"/>
+ <where>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.15">
+ <argument xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.16" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Collection.asSequence">
+ <ownedSource xsi:type="pivot:VariableExp" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.7/@variable.0"/>
+ </argument>
+ <argument xsi:type="pivot:VariableExp" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.7/@variable.4"/>
+ </conditionExpression>
+ </predicate>
+ </where>
+ </rule>
+ <rule xsi:type="qvtr:Relation" name="TopLevelRelationToMappingForEnforcement" isTopLevel="true">
+ <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.TopLevelRelationToMappingForEnforcement.relations"
+ isCheckable="true" isEnforceable="false" typedModel="#qT.org.eclipse.qvtd.compiler.qvtr.relToCore.relations" rootVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.19">
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.19 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.20 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.21 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.22 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.23 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.24 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.25 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.26 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.27 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.28">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.19"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Rule.transformation">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationalTransformation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.13"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#p.qvtrelation.Relation.isTopLevel">
+ <value xsi:type="pivot:BooleanLiteralExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ booleanSymbol="true"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.9"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Rule.domain">
+ <value xsi:type="qvtt:CollectionTemplateExp" type="#//@ownedPackages.1/@ownedClasses.15" bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.20"
+ referredCollectionType="http://www.eclipse.org/ocl/2015/Orphanage#//@ownedPackages.0/@ownedClasses.288" rest="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.28">
+ <member xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.21"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Domain.isEnforceable">
+ <value xsi:type="pivot:BooleanLiteralExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ booleanSymbol="true"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.10"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Domain.typedModel">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.TypedModel"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.22"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.TypedModel">
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.11"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.TypedModel.usedPackage">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Package"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.23"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Package"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.TypedModel.transformation">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationalTransformation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.13"/>
+ </part>
+ </value>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#p.qvtrelation.RelationDomain.pattern">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.DomainPattern"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.24"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.DomainPattern">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Pattern.bindsTo">
+ <value xsi:type="qvtt:CollectionTemplateExp" type="#//@ownedPackages.1/@ownedClasses.0" bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.25"
+ referredCollectionType="http://www.eclipse.org/ocl/2015/Orphanage#//@ownedPackages.0/@ownedClasses.285"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#p.qvtrelation.DomainPattern.templateExpression">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.26"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#p.qvttemplate.TemplateExp.bindsTo">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.27"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/>
+ </part>
+ </value>
+ </part>
+ </value>
+ </part>
+ </member>
+ </value>
+ </part>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.TopLevelRelationToMappingForEnforcement.core"
+ isCheckable="true" isEnforceable="true" typedModel="#qT.org.eclipse.qvtd.compiler.qvtr.relToCore.core" rootVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.29">
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.29 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.30 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.31 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.32 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.33 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.34 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.35 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.36 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.37 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.38 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.39">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcore/model/QVTcore.ecore.oclas#T.qvtcore.Mapping"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.29"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcore/model/QVTcore.ecore.oclas#T.qvtcore.Mapping">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Rule.transformation">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Transformation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.4"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name">
+ <value xsi:type="pivot:OperationCallExp" name="+" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.String.%43%..ocl.String">
+ <ownedSource xsi:type="pivot:OperationCallExp" name="+" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.String.%43%..ocl.String">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.9"/>
+ <ownedArguments xsi:type="pivot:StringLiteralExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ stringSymbol="_"/>
+ </ownedSource>
+ <ownedArguments xsi:type="pivot:VariableExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.10"/>
+ </value>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#p.qvtcorebase.Area.guardPattern">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.30"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#p.qvtcorebase.GuardPattern.area">
+ <value xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcore/model/QVTcore.ecore.oclas#T.qvtcore.Mapping"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.29"/>
+ </part>
+ </value>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#p.qvtcorebase.Area.bottomPattern">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.31"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Pattern.bindsTo">
+ <value xsi:type="qvtt:CollectionTemplateExp" type="#//@ownedPackages.1/@ownedClasses.0" bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.32"
+ referredCollectionType="http://www.eclipse.org/ocl/2015/Orphanage#//@ownedPackages.0/@ownedClasses.285"
+ rest="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.34">
+ <member xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.RealizedVariable"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.33"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.RealizedVariable"/>
+ </value>
+ </part>
+ </value>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Rule.domain">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.CoreDomain"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.35"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.CoreDomain">
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.10"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Domain.isEnforceable">
+ <value xsi:type="pivot:BooleanLiteralExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ booleanSymbol="true"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Domain.typedModel">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.TypedModel"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.36"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.TypedModel">
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.11"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.TypedModel.usedPackage">
+ <value xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Package"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.23"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.TypedModel.transformation">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Transformation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.4"/>
+ </part>
+ </value>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#p.qvtcorebase.Area.guardPattern">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.37"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#p.qvtcorebase.GuardPattern.area">
+ <value xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.CoreDomain"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.35"/>
+ </part>
+ </value>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#p.qvtcorebase.Area.bottomPattern">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.38"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Pattern.bindsTo">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.39"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/>
+ </part>
+ </value>
+ </part>
+ </value>
+ </part>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <variable name="allDomainVars" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.6">
+ <ownedInit xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.6" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Collection.asSet">
+ <ownedSource xsi:type="pivot:IteratorExp" name="collect" type="#//@ownedPackages.1/@ownedClasses.13" isImplicit="true"
+ referredIteration="http://www.eclipse.org/ocl/2015/Library.oclas#i.ocl.Bag.collect..T">
+ <ownedSource xsi:type="pivot:IteratorExp" name="collect" type="#//@ownedPackages.1/@ownedClasses.14" isImplicit="true"
+ referredIteration="http://www.eclipse.org/ocl/2015/Library.oclas#i.ocl.Set.collect..T">
+ <ownedSource xsi:type="pivot:IterateExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.15" referredIteration="http://www.eclipse.org/ocl/2015/Library.oclas#i.ocl.Collection.iterate..T">
+ <ownedSource xsi:type="pivot:PropertyCallExp" type="#//@ownedPackages.1/@ownedClasses.2" referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Rule.domain">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.19"/>
+ </ownedSource>
+ <ownedBody xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.15" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Set.including..T">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.15" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.0/@ownedInit/@ownedSource/@ownedSource/@ownedSource/@ownedResult"/>
+ <ownedArguments xsi:type="pivot:OperationCallExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.oclAsType..TT">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Domain"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.0/@ownedInit/@ownedSource/@ownedSource/@ownedSource/@ownedIterators.0"/>
+ <ownedArguments xsi:type="pivot:TypeExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class"
+ referredType="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"/>
+ </ownedArguments>
+ </ownedBody>
+ <ownedIterators name="md" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Domain"
+ representedParameter="http://www.eclipse.org/ocl/2015/Library.oclas#i0i.ocl.Collection.iterate..T"/>
+ <ownedResult name="acc" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.15" representedParameter="http://www.eclipse.org/ocl/2015/Library.oclas#a0i.ocl.Collection.iterate..T">
+ <ownedInit xsi:type="pivot:CollectionLiteralExp" type="#//@ownedPackages.1/@ownedClasses.7" kind="Set"/>
+ </ownedResult>
+ </ownedSource>
+ <ownedBody xsi:type="pivot:PropertyCallExp" type="#//@ownedPackages.1/@ownedClasses.5" referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#p.qvtrelation.RelationDomain.pattern">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"
+ isImplicit="true" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.0/@ownedInit/@ownedSource/@ownedSource/@ownedIterators.0"/>
+ </ownedBody>
+ <ownedIterators name="1_" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"
+ isImplicit="true" representedParameter="http://www.eclipse.org/ocl/2015/Library.oclas#i0i.ocl.Set.collect..T"/>
+ </ownedSource>
+ <ownedBody xsi:type="pivot:PropertyCallExp" type="#//@ownedPackages.1/@ownedClasses.6" referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Pattern.bindsTo">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.DomainPattern"
+ isImplicit="true" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.0/@ownedInit/@ownedSource/@ownedIterators.0"/>
+ </ownedBody>
+ <ownedIterators name="1_" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.DomainPattern"
+ isImplicit="true" representedParameter="http://www.eclipse.org/ocl/2015/Library.oclas#i0i.ocl.Bag.collect..T"/>
+ </ownedSource>
+ </ownedInit>
+ </variable>
+ <variable name="domainBottomUnSharedVars" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0">
+ <ownedInit xsi:type="pivot:OperationCallExp" name="-" type="#//@ownedPackages.1/@ownedClasses.0" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Set.%45%..$$.UniqueCollection">
+ <ownedSource xsi:type="pivot:OperationCallExp" name="-" type="#//@ownedPackages.1/@ownedClasses.0" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Set.%45%..$$.UniqueCollection">
+ <ownedSource xsi:type="pivot:VariableExp" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.25"/>
+ <ownedArguments xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.6" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.17"/>
+ </ownedSource>
+ <ownedArguments xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.14"/>
+ </ownedInit>
+ </variable>
+ <variable name="domainVarsSharedWithWhen" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0">
+ <ownedInit xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.0" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Collection.intersection..$$.UniqueCollection">
+ <ownedSource xsi:type="pivot:VariableExp" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.25"/>
+ <ownedArguments xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.6" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.17"/>
+ </ownedInit>
+ </variable>
+ <variable name="mbVars" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0"/>
+ <variable name="mt" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Transformation"/>
+ <variable name="oppositeDomainVars" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.1">
+ <ownedInit xsi:type="pivot:IterateExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.1" referredIteration="http://www.eclipse.org/ocl/2015/Library.oclas#i.ocl.Collection.iterate..T">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.15" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.8"/>
+ <ownedBody xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.1" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Collection.union..ocl.Collection">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.5/@ownedInit/@ownedResult"/>
+ <ownedArguments xsi:type="pivot:IteratorExp" name="collect" type="#//@ownedPackages.1/@ownedClasses.4" isImplicit="true"
+ referredIteration="http://www.eclipse.org/ocl/2015/Library.oclas#i.ocl.OrderedSet.collect..T">
+ <ownedSource xsi:type="pivot:PropertyCallExp" type="#//@ownedPackages.1/@ownedClasses.5" referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#p.qvtrelation.RelationDomain.pattern">
+ <ownedSource xsi:type="pivot:OperationCallExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.oclAsType..TT">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.5/@ownedInit/@ownedIterators.0"/>
+ <ownedArguments xsi:type="pivot:TypeExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class"
+ referredType="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"/>
+ </ownedSource>
+ </ownedSource>
+ <ownedBody xsi:type="pivot:PropertyCallExp" type="#//@ownedPackages.1/@ownedClasses.6" referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Pattern.bindsTo">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.DomainPattern"
+ isImplicit="true" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.5/@ownedInit/@ownedBody/@ownedArguments.0/@ownedIterators.0"/>
+ </ownedBody>
+ <ownedIterators name="1_" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.DomainPattern"
+ isImplicit="true" representedParameter="http://www.eclipse.org/ocl/2015/Library.oclas#i0i.ocl.OrderedSet.collect..T"/>
+ </ownedArguments>
+ </ownedBody>
+ <ownedIterators name="d" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"
+ representedParameter="http://www.eclipse.org/ocl/2015/Library.oclas#i0i.ocl.Collection.iterate..T"/>
+ <ownedResult name="vars" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" representedParameter="http://www.eclipse.org/ocl/2015/Library.oclas#a0i.ocl.Collection.iterate..T">
+ <ownedInit xsi:type="pivot:CollectionLiteralExp" type="#//@ownedPackages.1/@ownedClasses.7" kind="Set"/>
+ </ownedResult>
+ </ownedInit>
+ </variable>
+ <variable name="predicatesWithVarBindings" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.10">
+ <ownedInit xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.10" referredOperation="#o.org.eclipse.qvtd.compiler.qvtr.relToCore.filterOutPredicatesThatReferToVars..$$.Set..$$.Set">
+ <ownedArguments xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.17" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.12"/>
+ <ownedArguments xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.1"/>
+ </ownedInit>
+ </variable>
+ <variable name="predicatesWithoutVarBindings" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.10">
+ <ownedInit xsi:type="pivot:OperationCallExp" name="-" type="#//@ownedPackages.1/@ownedClasses.10" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Set.%45%..$$.UniqueCollection">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.17" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.12"/>
+ <ownedArguments xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.10" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.6"/>
+ </ownedInit>
+ </variable>
+ <variable name="rOppositeDomains" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.15"/>
+ <variable name="rn" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"/>
+ <variable name="dn" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"/>
+ <variable name="tmn" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"/>
+ <variable name="rpSet" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.17">
+ <ownedInit xsi:type="pivot:IteratorExp" type="#//@ownedPackages.1/@ownedClasses.17" referredIteration="http://www.eclipse.org/ocl/2015/Library.oclas#i.ocl.Set.reject..T">
+ <ownedSource xsi:type="pivot:PropertyCallExp" type="#//@ownedPackages.1/@ownedClasses.17" referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Pattern.predicate">
+ <ownedSource xsi:type="pivot:PropertyCallExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Pattern"
+ referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#p.qvtrelation.Relation.where">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.19"/>
+ </ownedSource>
+ </ownedSource>
+ <ownedBody xsi:type="pivot:OperationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.oclIsTypeOf..ocl.OclType">
+ <ownedSource xsi:type="pivot:PropertyCallExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OCLExpression"
+ referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Predicate.conditionExpression">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Predicate"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.12/@ownedInit/@ownedIterators.0"/>
+ </ownedSource>
+ <ownedArguments xsi:type="pivot:TypeExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class"
+ referredType="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationCallExp"/>
+ </ownedBody>
+ <ownedIterators name="p" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Predicate"
+ representedParameter="http://www.eclipse.org/ocl/2015/Library.oclas#i0i.ocl.Set.reject..T"/>
+ </ownedInit>
+ </variable>
+ <variable name="rt" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationalTransformation"/>
+ <variable name="sharedDomainVars" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0">
+ <ownedInit xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.0" referredOperation="#o.org.eclipse.qvtd.compiler.qvtr.relToCore.getSharedDomainVars..qvtrelation.Relation">
+ <ownedArguments xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.19"/>
+ </ownedInit>
+ </variable>
+ <variable name="unsharedWhenVars" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0">
+ <ownedInit xsi:type="pivot:OperationCallExp" name="-" type="#//@ownedPackages.1/@ownedClasses.0" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Set.%45%..$$.UniqueCollection">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.6" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.17"/>
+ <ownedArguments xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.6" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.0"/>
+ </ownedInit>
+ </variable>
+ <variable name="unsharedWhereVars" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0">
+ <ownedInit xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.0" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.UniqueCollection.union..ocl.UniqueCollection">
+ <ownedSource xsi:type="pivot:OperationCallExp" name="-" type="#//@ownedPackages.1/@ownedClasses.0" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Set.%45%..$$.UniqueCollection">
+ <ownedSource xsi:type="pivot:OperationCallExp" name="-" type="#//@ownedPackages.1/@ownedClasses.0" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Set.%45%..$$.UniqueCollection">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.6" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.18"/>
+ <ownedArguments xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.6" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.17"/>
+ </ownedSource>
+ <ownedArguments xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.6" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.0"/>
+ </ownedSource>
+ <ownedArguments xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.14"/>
+ </ownedInit>
+ </variable>
+ <variable name="whenVars" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.6">
+ <ownedInit xsi:type="pivot:PropertyCallExp" type="#//@ownedPackages.1/@ownedClasses.6" referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Pattern.bindsTo">
+ <ownedSource xsi:type="pivot:PropertyCallExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Pattern"
+ referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#p.qvtrelation.Relation.when">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.19"/>
+ </ownedSource>
+ </ownedInit>
+ </variable>
+ <variable name="whereVars" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.6">
+ <ownedInit xsi:type="pivot:PropertyCallExp" type="#//@ownedPackages.1/@ownedClasses.6" referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Pattern.bindsTo">
+ <ownedSource xsi:type="pivot:PropertyCallExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Pattern"
+ referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#p.qvtrelation.Relation.where">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.19"/>
+ </ownedSource>
+ </ownedInit>
+ </variable>
+ <variable name="r" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"/>
+ <variable name="rds" type="#//@ownedPackages.1/@ownedClasses.15"/>
+ <variable name="rd" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"/>
+ <variable name="dir" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.TypedModel"/>
+ <variable name="up" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Package"/>
+ <variable name="dp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.DomainPattern"/>
+ <variable name="domainVars" type="#//@ownedPackages.1/@ownedClasses.0"/>
+ <variable name="te" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"/>
+ <variable name="tev" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/>
+ <variable name="_9" type="#//@ownedPackages.1/@ownedClasses.15"/>
+ <variable name="m" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcore/model/QVTcore.ecore.oclas#T.qvtcore.Mapping"/>
+ <variable name="mg" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern"/>
+ <variable name="mb" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"/>
+ <variable name="vs" type="#//@ownedPackages.1/@ownedClasses.0"/>
+ <variable name="tcv" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.RealizedVariable"/>
+ <variable name="_5" type="#//@ownedPackages.1/@ownedClasses.0"/>
+ <variable name="md" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.CoreDomain"/>
+ <variable name="mdir" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.TypedModel"/>
+ <variable name="dg" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern"/>
+ <variable name="db" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"/>
+ <variable name="mtev" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/>
+ <when>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.0">
+ <argument xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationalTransformation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.13"/>
+ <argument xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Transformation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.4"/>
+ </conditionExpression>
+ </predicate>
+ </when>
+ <where>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.48">
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.19"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.21"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.RealizedVariable"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.33"/>
+ </conditionExpression>
+ </predicate>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.14">
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.19"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.30"/>
+ </conditionExpression>
+ </predicate>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.6">
+ <argument xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.2"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.37"/>
+ </conditionExpression>
+ </predicate>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.19">
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.27"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.39"/>
+ </conditionExpression>
+ </predicate>
+ <predicate>
+ <conditionExpression xsi:type="pivot:IfExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean">
+ <ownedCondition xsi:type="pivot:OperationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Collection.isEmpty">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.16"/>
+ </ownedCondition>
+ <ownedElse xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.15">
+ <argument xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.16" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Collection.asSequence">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.16"/>
+ </argument>
+ <argument xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.3"/>
+ </ownedElse>
+ <ownedThen xsi:type="pivot:OperationCallExp" name="=" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Set.%61%..ocl.OclSelf">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.3"/>
+ <ownedArguments xsi:type="pivot:CollectionLiteralExp" type="#//@ownedPackages.1/@ownedClasses.7" kind="Set"/>
+ </ownedThen>
+ </conditionExpression>
+ </predicate>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.29">
+ <argument xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.18" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Collection.asSequence">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.10" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.6"/>
+ </argument>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.31"/>
+ </conditionExpression>
+ </predicate>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.26">
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.19"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.21"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.26"/>
+ <argument xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.10" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.7"/>
+ <argument xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.1"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.38"/>
+ </conditionExpression>
+ </predicate>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.44">
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.19"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.21"/>
+ <argument xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.1" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.5"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.31"/>
+ </conditionExpression>
+ </predicate>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13">
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.19"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.21"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcore/model/QVTcore.ecore.oclas#T.qvtcore.Mapping"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.29"/>
+ </conditionExpression>
+ </predicate>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.45">
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.19"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.21"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.8/@variable.31"/>
+ </conditionExpression>
+ </predicate>
+ </where>
+ </rule>
+ <rule xsi:type="qvtr:Relation" name="InvokedRelationToMappingForChecking" isTopLevel="true">
+ <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.InvokedRelationToMappingForChecking.relations"
+ isCheckable="true" isEnforceable="false" typedModel="#qT.org.eclipse.qvtd.compiler.qvtr.relToCore.relations" rootVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.9/@variable.10">
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.9/@variable.10 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.9/@variable.11 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.9/@variable.12 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.9/@variable.13 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.9/@variable.14">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.9/@variable.10"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation">
+ <where xsi:type="pivot:OperationCallExp" name="not" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Boolean.not">
+ <ownedSource xsi:type="pivot:IteratorExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredIteration="http://www.eclipse.org/ocl/2015/Library.oclas#i.ocl.Collection.exists..T">
+ <ownedSource xsi:type="pivot:PropertyCallExp" type="#//@ownedPackages.1/@ownedClasses.2" referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Rule.domain">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.9/@variable.10"/>
+ </ownedSource>
+ <ownedBody xsi:type="pivot:OperationCallExp" name="=" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Boolean.%61%..ocl.OclSelf">
+ <ownedSource xsi:type="pivot:PropertyCallExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Domain.isEnforceable">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Domain"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.9/@domain.0/@pattern.0/@templateExpression/@where/@ownedSource/@ownedIterators.0"/>
+ </ownedSource>
+ <ownedArguments xsi:type="pivot:BooleanLiteralExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ booleanSymbol="true"/>
+ </ownedBody>
+ <ownedIterators name="d" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Domain"
+ representedParameter="http://www.eclipse.org/ocl/2015/Library.oclas#i0i.ocl.Collection.exists..T"/>
+ </ownedSource>
+ </where>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Rule.transformation">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationalTransformation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.9/@variable.5"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#p.qvtrelation.Relation.isTopLevel">
+ <value xsi:type="pivot:BooleanLiteralExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ booleanSymbol="false"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.9/@variable.3"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#p.qvtrelation.Relation.relationCallExp">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationCallExp"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.9/@variable.11"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationCallExp">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.pivot.OCLExpression.predicate">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Predicate"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.9/@variable.12"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Predicate">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Predicate.pattern">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Pattern"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.9/@variable.13"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Pattern">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#p.qvtbase.Pattern.whereOwner">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.9/@variable.14"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation">
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.9/@variable.4"/>
+ </part>
+ </value>
+ </part>
+ </value>
+ </part>
+ </value>
+ </part>
+ </value>
+ </part>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.InvokedRelationToMappingForChecking.core"
+ isCheckable="true" isEnforceable="true" typedModel="#qT.org.eclipse.qvtd.compiler.qvtr.relToCore.core" rootVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.9/@variable.15">
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.9/@variable.15 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.9/@variable.16 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.9/@variable.17 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.9/@variable.18 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.9/@variable.19 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.9/@variable.20">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcore/model/QVTcore.ecore.oclas#T.qvtcore.Mapping"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.9/@variable.15"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcore/model/QVTcore.ecore.oclas#T.qvtcore.Mapping">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Rule.transformation">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Transformation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.9/@variable.2"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name">
+ <value xsi:type="pivot:OperationCallExp" name="+" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.String.%43%..ocl.String">
+ <ownedSource xsi:type="pivot:OperationCallExp" name="+" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.String.%43%..ocl.String">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.9/@variable.3"/>
+ <ownedArguments xsi:type="pivot:StringLiteralExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ stringSymbol="_"/>
+ </ownedSource>
+ <ownedArguments xsi:type="pivot:VariableExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.9/@variable.4"/>
+ </value>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#p.qvtcorebase.Area.guardPattern">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.9/@variable.16"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#p.qvtcorebase.GuardPattern.area">
+ <value xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcore/model/QVTcore.ecore.oclas#T.qvtcore.Mapping"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.9/@variable.15"/>
+ </part>
+ </value>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#p.qvtcorebase.Area.bottomPattern">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.9/@variable.17"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Pattern.bindsTo">
+ <value xsi:type="qvtt:CollectionTemplateExp" type="#//@ownedPackages.1/@ownedClasses.0" bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.9/@variable.18"
+ referredCollectionType="http://www.eclipse.org/ocl/2015/Orphanage#//@ownedPackages.0/@ownedClasses.285"
+ rest="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.9/@variable.20">
+ <member xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.RealizedVariable"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.9/@variable.19"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.RealizedVariable"/>
+ </value>
+ </part>
+ </value>
+ </part>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <variable name="allDomainVars" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.6">
+ <ownedInit xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.6" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Collection.asSet">
+ <ownedSource xsi:type="pivot:IteratorExp" name="collect" type="#//@ownedPackages.1/@ownedClasses.13" isImplicit="true"
+ referredIteration="http://www.eclipse.org/ocl/2015/Library.oclas#i.ocl.Bag.collect..T">
+ <ownedSource xsi:type="pivot:IteratorExp" name="collect" type="#//@ownedPackages.1/@ownedClasses.14" isImplicit="true"
+ referredIteration="http://www.eclipse.org/ocl/2015/Library.oclas#i.ocl.Set.collect..T">
+ <ownedSource xsi:type="pivot:IterateExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.15" referredIteration="http://www.eclipse.org/ocl/2015/Library.oclas#i.ocl.Collection.iterate..T">
+ <ownedSource xsi:type="pivot:PropertyCallExp" type="#//@ownedPackages.1/@ownedClasses.2" referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Rule.domain">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.9/@variable.10"/>
+ </ownedSource>
+ <ownedBody xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.15" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Set.including..T">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.15" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.9/@variable.0/@ownedInit/@ownedSource/@ownedSource/@ownedSource/@ownedResult"/>
+ <ownedArguments xsi:type="pivot:OperationCallExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.oclAsType..TT">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Domain"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.9/@variable.0/@ownedInit/@ownedSource/@ownedSource/@ownedSource/@ownedIterators.0"/>
+ <ownedArguments xsi:type="pivot:TypeExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class"
+ referredType="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"/>
+ </ownedArguments>
+ </ownedBody>
+ <ownedIterators name="md" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Domain"
+ representedParameter="http://www.eclipse.org/ocl/2015/Library.oclas#i0i.ocl.Collection.iterate..T"/>
+ <ownedResult name="acc" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.15" representedParameter="http://www.eclipse.org/ocl/2015/Library.oclas#a0i.ocl.Collection.iterate..T">
+ <ownedInit xsi:type="pivot:CollectionLiteralExp" type="#//@ownedPackages.1/@ownedClasses.7" kind="Set"/>
+ </ownedResult>
+ </ownedSource>
+ <ownedBody xsi:type="pivot:PropertyCallExp" type="#//@ownedPackages.1/@ownedClasses.5" referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#p.qvtrelation.RelationDomain.pattern">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"
+ isImplicit="true" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.9/@variable.0/@ownedInit/@ownedSource/@ownedSource/@ownedIterators.0"/>
+ </ownedBody>
+ <ownedIterators name="1_" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"
+ isImplicit="true" representedParameter="http://www.eclipse.org/ocl/2015/Library.oclas#i0i.ocl.Set.collect..T"/>
+ </ownedSource>
+ <ownedBody xsi:type="pivot:PropertyCallExp" type="#//@ownedPackages.1/@ownedClasses.6" referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Pattern.bindsTo">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.DomainPattern"
+ isImplicit="true" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.9/@variable.0/@ownedInit/@ownedSource/@ownedIterators.0"/>
+ </ownedBody>
+ <ownedIterators name="1_" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.DomainPattern"
+ isImplicit="true" representedParameter="http://www.eclipse.org/ocl/2015/Library.oclas#i0i.ocl.Bag.collect..T"/>
+ </ownedSource>
+ </ownedInit>
+ </variable>
+ <variable name="mbVars" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0"/>
+ <variable name="mt" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Transformation"/>
+ <variable name="rn" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"/>
+ <variable name="irn" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"/>
+ <variable name="rt" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationalTransformation"/>
+ <variable name="sharedDomainVars" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0">
+ <ownedInit xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.0" referredOperation="#o.org.eclipse.qvtd.compiler.qvtr.relToCore.getSharedDomainVars..qvtrelation.Relation">
+ <ownedArguments xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.9/@variable.10"/>
+ </ownedInit>
+ </variable>
+ <variable name="unsharedWhereVars" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0">
+ <ownedInit xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.0" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.UniqueCollection.union..ocl.UniqueCollection">
+ <ownedSource xsi:type="pivot:OperationCallExp" name="-" type="#//@ownedPackages.1/@ownedClasses.0" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Set.%45%..$$.UniqueCollection">
+ <ownedSource xsi:type="pivot:OperationCallExp" name="-" type="#//@ownedPackages.1/@ownedClasses.0" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Set.%45%..$$.UniqueCollection">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.6" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.9/@variable.9"/>
+ <ownedArguments xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.6" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.9/@variable.8"/>
+ </ownedSource>
+ <ownedArguments xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.6" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.9/@variable.0"/>
+ </ownedSource>
+ <ownedArguments xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.9/@variable.6"/>
+ </ownedInit>
+ </variable>
+ <variable name="whenVars" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.6">
+ <ownedInit xsi:type="pivot:PropertyCallExp" type="#//@ownedPackages.1/@ownedClasses.6" referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Pattern.bindsTo">
+ <ownedSource xsi:type="pivot:PropertyCallExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Pattern"
+ referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#p.qvtrelation.Relation.when">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.9/@variable.10"/>
+ </ownedSource>
+ </ownedInit>
+ </variable>
+ <variable name="whereVars" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.6">
+ <ownedInit xsi:type="pivot:PropertyCallExp" type="#//@ownedPackages.1/@ownedClasses.6" referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Pattern.bindsTo">
+ <ownedSource xsi:type="pivot:PropertyCallExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Pattern"
+ referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#p.qvtrelation.Relation.where">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.9/@variable.10"/>
+ </ownedSource>
+ </ownedInit>
+ </variable>
+ <variable name="r" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"/>
+ <variable name="ri" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationCallExp"/>
+ <variable name="p" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Predicate"/>
+ <variable name="pt" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Pattern"/>
+ <variable name="ir" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"/>
+ <variable name="m" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcore/model/QVTcore.ecore.oclas#T.qvtcore.Mapping"/>
+ <variable name="mg" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern"/>
+ <variable name="mb" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"/>
+ <variable name="vs" type="#//@ownedPackages.1/@ownedClasses.0"/>
+ <variable name="tcv" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.RealizedVariable"/>
+ <variable name="_5" type="#//@ownedPackages.1/@ownedClasses.0"/>
+ <when>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.0">
+ <argument xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationalTransformation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.9/@variable.5"/>
+ <argument xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Transformation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.9/@variable.2"/>
+ </conditionExpression>
+ </predicate>
+ </when>
+ <where>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.47">
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.9/@variable.10"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.RealizedVariable"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.9/@variable.19"/>
+ </conditionExpression>
+ </predicate>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.14">
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.9/@variable.10"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.9/@variable.16"/>
+ </conditionExpression>
+ </predicate>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.23">
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.9/@variable.14"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationCallExp"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.9/@variable.11"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.9/@variable.10"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.9/@variable.16"/>
+ </conditionExpression>
+ </predicate>
+ <predicate>
+ <conditionExpression xsi:type="pivot:IfExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean">
+ <ownedCondition xsi:type="pivot:OperationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Collection.isEmpty">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.9/@variable.7"/>
+ </ownedCondition>
+ <ownedElse xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.15">
+ <argument xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.16" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Collection.asSequence">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.9/@variable.7"/>
+ </argument>
+ <argument xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.9/@variable.1"/>
+ </ownedElse>
+ <ownedThen xsi:type="pivot:OperationCallExp" name="=" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Set.%61%..ocl.OclSelf">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.9/@variable.1"/>
+ <ownedArguments xsi:type="pivot:CollectionLiteralExp" type="#//@ownedPackages.1/@ownedClasses.7" kind="Set"/>
+ </ownedThen>
+ </conditionExpression>
+ </predicate>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.4">
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.9/@variable.10"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.9/@variable.17"/>
+ </conditionExpression>
+ </predicate>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.11">
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.9/@variable.10"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcore/model/QVTcore.ecore.oclas#T.qvtcore.Mapping"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.9/@variable.15"/>
+ </conditionExpression>
+ </predicate>
+ </where>
+ </rule>
+ <rule xsi:type="qvtr:Relation" name="InvokedRelationToMappingForEnforcement" isTopLevel="true">
+ <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.InvokedRelationToMappingForEnforcement.relations"
+ isCheckable="true" isEnforceable="false" typedModel="#qT.org.eclipse.qvtd.compiler.qvtr.relToCore.relations" rootVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.20">
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.20 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.21 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.22 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.23 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.24 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.25 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.26 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.27 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.28 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.29 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.30 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.31 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.32 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.33">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.20"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Rule.transformation">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationalTransformation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.18"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#p.qvtrelation.Relation.isTopLevel">
+ <value xsi:type="pivot:BooleanLiteralExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ booleanSymbol="false"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.13"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#p.qvtrelation.Relation.relationCallExp">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationCallExp"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.21"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationCallExp">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.pivot.OCLExpression.predicate">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Predicate"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.22"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Predicate">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Predicate.pattern">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Pattern"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.23"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Pattern">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#p.qvtbase.Pattern.whereOwner">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.24"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation">
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.14"/>
+ </part>
+ </value>
+ </part>
+ </value>
+ </part>
+ </value>
+ </part>
+ </value>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Rule.domain">
+ <value xsi:type="qvtt:CollectionTemplateExp" type="#//@ownedPackages.1/@ownedClasses.15" bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.25"
+ referredCollectionType="http://www.eclipse.org/ocl/2015/Orphanage#//@ownedPackages.0/@ownedClasses.288" rest="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.33">
+ <member xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.26"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Domain.isEnforceable">
+ <value xsi:type="pivot:BooleanLiteralExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ booleanSymbol="true"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.15"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Domain.typedModel">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.TypedModel"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.27"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.TypedModel">
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.16"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.TypedModel.usedPackage">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Package"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.28"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Package"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.TypedModel.transformation">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationalTransformation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.18"/>
+ </part>
+ </value>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#p.qvtrelation.RelationDomain.pattern">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.DomainPattern"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.29"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.DomainPattern">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Pattern.bindsTo">
+ <value xsi:type="qvtt:CollectionTemplateExp" type="#//@ownedPackages.1/@ownedClasses.0" bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.30"
+ referredCollectionType="http://www.eclipse.org/ocl/2015/Orphanage#//@ownedPackages.0/@ownedClasses.285"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#p.qvtrelation.DomainPattern.templateExpression">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.31"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#p.qvttemplate.TemplateExp.bindsTo">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.32"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/>
+ </part>
+ </value>
+ </part>
+ </value>
+ </part>
+ </member>
+ </value>
+ </part>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.InvokedRelationToMappingForEnforcement.core"
+ isCheckable="true" isEnforceable="true" typedModel="#qT.org.eclipse.qvtd.compiler.qvtr.relToCore.core" rootVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.34">
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.34 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.35 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.36 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.37 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.38 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.39 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.40 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.41 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.42 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.43 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.44">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcore/model/QVTcore.ecore.oclas#T.qvtcore.Mapping"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.34"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcore/model/QVTcore.ecore.oclas#T.qvtcore.Mapping">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Rule.transformation">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Transformation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.19"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name">
+ <value xsi:type="pivot:OperationCallExp" name="+" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.String.%43%..ocl.String">
+ <ownedSource xsi:type="pivot:OperationCallExp" name="+" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.String.%43%..ocl.String">
+ <ownedSource xsi:type="pivot:OperationCallExp" name="+" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.String.%43%..ocl.String">
+ <ownedSource xsi:type="pivot:OperationCallExp" name="+" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.String.%43%..ocl.String">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.13"/>
+ <ownedArguments xsi:type="pivot:StringLiteralExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ stringSymbol="_"/>
+ </ownedSource>
+ <ownedArguments xsi:type="pivot:VariableExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.14"/>
+ </ownedSource>
+ <ownedArguments xsi:type="pivot:StringLiteralExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ stringSymbol="_"/>
+ </ownedSource>
+ <ownedArguments xsi:type="pivot:VariableExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.15"/>
+ </value>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#p.qvtcorebase.Area.guardPattern">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.35"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#p.qvtcorebase.GuardPattern.area">
+ <value xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcore/model/QVTcore.ecore.oclas#T.qvtcore.Mapping"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.34"/>
+ </part>
+ </value>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#p.qvtcorebase.Area.bottomPattern">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.36"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Pattern.bindsTo">
+ <value xsi:type="qvtt:CollectionTemplateExp" type="#//@ownedPackages.1/@ownedClasses.0" bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.37"
+ referredCollectionType="http://www.eclipse.org/ocl/2015/Orphanage#//@ownedPackages.0/@ownedClasses.285"
+ rest="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.39">
+ <member xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.RealizedVariable"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.38"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.RealizedVariable"/>
+ </value>
+ </part>
+ </value>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Rule.domain">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.CoreDomain"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.40"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.CoreDomain">
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.15"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Domain.isEnforceable">
+ <value xsi:type="pivot:BooleanLiteralExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ booleanSymbol="true"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Domain.typedModel">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.TypedModel"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.41"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.TypedModel">
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.16"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.TypedModel.usedPackage">
+ <value xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Package"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.28"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.TypedModel.transformation">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Transformation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.19"/>
+ </part>
+ </value>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#p.qvtcorebase.Area.guardPattern">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.42"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Pattern.bindsTo">
+ <value xsi:type="qvtt:CollectionTemplateExp" type="#//@ownedPackages.1/@ownedClasses.0" bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.43"
+ referredCollectionType="http://www.eclipse.org/ocl/2015/Orphanage#//@ownedPackages.0/@ownedClasses.285"/>
+ </part>
+ </value>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#p.qvtcorebase.Area.bottomPattern">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.44"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#p.qvtcorebase.BottomPattern.area">
+ <value xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.CoreDomain"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.40"/>
+ </part>
+ </value>
+ </part>
+ </value>
+ </part>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <variable name="allDomainVars" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.6">
+ <ownedInit xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.6" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Collection.asSet">
+ <ownedSource xsi:type="pivot:IteratorExp" name="collect" type="#//@ownedPackages.1/@ownedClasses.13" isImplicit="true"
+ referredIteration="http://www.eclipse.org/ocl/2015/Library.oclas#i.ocl.Bag.collect..T">
+ <ownedSource xsi:type="pivot:IteratorExp" name="collect" type="#//@ownedPackages.1/@ownedClasses.14" isImplicit="true"
+ referredIteration="http://www.eclipse.org/ocl/2015/Library.oclas#i.ocl.Set.collect..T">
+ <ownedSource xsi:type="pivot:IterateExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.15" referredIteration="http://www.eclipse.org/ocl/2015/Library.oclas#i.ocl.Collection.iterate..T">
+ <ownedSource xsi:type="pivot:PropertyCallExp" type="#//@ownedPackages.1/@ownedClasses.2" referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Rule.domain">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.20"/>
+ </ownedSource>
+ <ownedBody xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.15" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Set.including..T">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.15" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.0/@ownedInit/@ownedSource/@ownedSource/@ownedSource/@ownedResult"/>
+ <ownedArguments xsi:type="pivot:OperationCallExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.oclAsType..TT">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Domain"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.0/@ownedInit/@ownedSource/@ownedSource/@ownedSource/@ownedIterators.0"/>
+ <ownedArguments xsi:type="pivot:TypeExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class"
+ referredType="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"/>
+ </ownedArguments>
+ </ownedBody>
+ <ownedIterators name="md" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Domain"
+ representedParameter="http://www.eclipse.org/ocl/2015/Library.oclas#i0i.ocl.Collection.iterate..T"/>
+ <ownedResult name="acc" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.15" representedParameter="http://www.eclipse.org/ocl/2015/Library.oclas#a0i.ocl.Collection.iterate..T">
+ <ownedInit xsi:type="pivot:CollectionLiteralExp" type="#//@ownedPackages.1/@ownedClasses.7" kind="Set"/>
+ </ownedResult>
+ </ownedSource>
+ <ownedBody xsi:type="pivot:PropertyCallExp" type="#//@ownedPackages.1/@ownedClasses.5" referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#p.qvtrelation.RelationDomain.pattern">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"
+ isImplicit="true" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.0/@ownedInit/@ownedSource/@ownedSource/@ownedIterators.0"/>
+ </ownedBody>
+ <ownedIterators name="1_" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"
+ isImplicit="true" representedParameter="http://www.eclipse.org/ocl/2015/Library.oclas#i0i.ocl.Set.collect..T"/>
+ </ownedSource>
+ <ownedBody xsi:type="pivot:PropertyCallExp" type="#//@ownedPackages.1/@ownedClasses.6" referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Pattern.bindsTo">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.DomainPattern"
+ isImplicit="true" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.0/@ownedInit/@ownedSource/@ownedIterators.0"/>
+ </ownedBody>
+ <ownedIterators name="1_" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.DomainPattern"
+ isImplicit="true" representedParameter="http://www.eclipse.org/ocl/2015/Library.oclas#i0i.ocl.Bag.collect..T"/>
+ </ownedSource>
+ </ownedInit>
+ </variable>
+ <variable name="domainBottomUnSharedVars" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0">
+ <ownedInit xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.0" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Set.excluding..ocl.OclAny">
+ <ownedSource xsi:type="pivot:OperationCallExp" name="-" type="#//@ownedPackages.1/@ownedClasses.0" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Set.%45%..$$.UniqueCollection">
+ <ownedSource xsi:type="pivot:OperationCallExp" name="-" type="#//@ownedPackages.1/@ownedClasses.0" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Set.%45%..$$.UniqueCollection">
+ <ownedSource xsi:type="pivot:VariableExp" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.30"/>
+ <ownedArguments xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.6" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.11"/>
+ </ownedSource>
+ <ownedArguments xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.8"/>
+ </ownedSource>
+ <ownedArguments xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.32"/>
+ </ownedInit>
+ </variable>
+ <variable name="domainTopVars" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0">
+ <ownedInit xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.0" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Set.including..T">
+ <ownedSource xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.0" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Collection.intersection..$$.UniqueCollection">
+ <ownedSource xsi:type="pivot:VariableExp" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.30"/>
+ <ownedArguments xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.6" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.11"/>
+ </ownedSource>
+ <ownedArguments xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.32"/>
+ </ownedInit>
+ </variable>
+ <variable name="oppositeDomainVars" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.1">
+ <ownedInit xsi:type="pivot:IterateExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.1" referredIteration="http://www.eclipse.org/ocl/2015/Library.oclas#i.ocl.Collection.iterate..T">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.15" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.6"/>
+ <ownedBody xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.1" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Collection.union..ocl.Collection">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.3/@ownedInit/@ownedResult"/>
+ <ownedArguments xsi:type="pivot:IteratorExp" name="collect" type="#//@ownedPackages.1/@ownedClasses.4" isImplicit="true"
+ referredIteration="http://www.eclipse.org/ocl/2015/Library.oclas#i.ocl.OrderedSet.collect..T">
+ <ownedSource xsi:type="pivot:PropertyCallExp" type="#//@ownedPackages.1/@ownedClasses.5" referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#p.qvtrelation.RelationDomain.pattern">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.3/@ownedInit/@ownedIterators.0"/>
+ </ownedSource>
+ <ownedBody xsi:type="pivot:PropertyCallExp" type="#//@ownedPackages.1/@ownedClasses.6" referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Pattern.bindsTo">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.DomainPattern"
+ isImplicit="true" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.3/@ownedInit/@ownedBody/@ownedArguments.0/@ownedIterators.0"/>
+ </ownedBody>
+ <ownedIterators name="1_" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.DomainPattern"
+ isImplicit="true" representedParameter="http://www.eclipse.org/ocl/2015/Library.oclas#i0i.ocl.OrderedSet.collect..T"/>
+ </ownedArguments>
+ </ownedBody>
+ <ownedIterators name="d" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"
+ representedParameter="http://www.eclipse.org/ocl/2015/Library.oclas#i0i.ocl.Collection.iterate..T"/>
+ <ownedResult name="vars" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" representedParameter="http://www.eclipse.org/ocl/2015/Library.oclas#a0i.ocl.Collection.iterate..T">
+ <ownedInit xsi:type="pivot:CollectionLiteralExp" type="#//@ownedPackages.1/@ownedClasses.7" kind="Set"/>
+ </ownedResult>
+ </ownedInit>
+ </variable>
+ <variable name="predicatesWithVarBindings" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.10">
+ <ownedInit xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.10" referredOperation="#o.org.eclipse.qvtd.compiler.qvtr.relToCore.filterOutPredicatesThatReferToVars..$$.Set..$$.Set">
+ <ownedArguments xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.17" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.7"/>
+ <ownedArguments xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.1"/>
+ </ownedInit>
+ </variable>
+ <variable name="predicatesWithoutVarBindings" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.10">
+ <ownedInit xsi:type="pivot:OperationCallExp" name="-" type="#//@ownedPackages.1/@ownedClasses.10" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Set.%45%..$$.UniqueCollection">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.17" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.7"/>
+ <ownedArguments xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.10" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.4"/>
+ </ownedInit>
+ </variable>
+ <variable name="rOppositeDomains" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.15"/>
+ <variable name="rpSet" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.17">
+ <ownedInit xsi:type="pivot:IteratorExp" type="#//@ownedPackages.1/@ownedClasses.17" referredIteration="http://www.eclipse.org/ocl/2015/Library.oclas#i.ocl.Set.reject..T">
+ <ownedSource xsi:type="pivot:PropertyCallExp" type="#//@ownedPackages.1/@ownedClasses.17" referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Pattern.predicate">
+ <ownedSource xsi:type="pivot:PropertyCallExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Pattern"
+ referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#p.qvtrelation.Relation.where">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.20"/>
+ </ownedSource>
+ </ownedSource>
+ <ownedBody xsi:type="pivot:OperationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.oclIsTypeOf..ocl.OclType">
+ <ownedSource xsi:type="pivot:PropertyCallExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OCLExpression"
+ referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Predicate.conditionExpression">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Predicate"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.7/@ownedInit/@ownedIterators.0"/>
+ </ownedSource>
+ <ownedArguments xsi:type="pivot:TypeExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class"
+ referredType="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationCallExp"/>
+ </ownedBody>
+ <ownedIterators name="p" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Predicate"
+ representedParameter="http://www.eclipse.org/ocl/2015/Library.oclas#i0i.ocl.Set.reject..T"/>
+ </ownedInit>
+ </variable>
+ <variable name="sharedDomainVars" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0">
+ <ownedInit xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.0" referredOperation="#o.org.eclipse.qvtd.compiler.qvtr.relToCore.getSharedDomainVars..qvtrelation.Relation">
+ <ownedArguments xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.20"/>
+ </ownedInit>
+ </variable>
+ <variable name="unsharedWhenVars" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0">
+ <ownedInit xsi:type="pivot:OperationCallExp" name="-" type="#//@ownedPackages.1/@ownedClasses.0" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Set.%45%..$$.UniqueCollection">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.6" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.11"/>
+ <ownedArguments xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.6" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.0"/>
+ </ownedInit>
+ </variable>
+ <variable name="unsharedWhereVars" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0">
+ <ownedInit xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.0" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.UniqueCollection.union..ocl.UniqueCollection">
+ <ownedSource xsi:type="pivot:OperationCallExp" name="-" type="#//@ownedPackages.1/@ownedClasses.0" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Set.%45%..$$.UniqueCollection">
+ <ownedSource xsi:type="pivot:OperationCallExp" name="-" type="#//@ownedPackages.1/@ownedClasses.0" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Set.%45%..$$.UniqueCollection">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.6" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.12"/>
+ <ownedArguments xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.6" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.11"/>
+ </ownedSource>
+ <ownedArguments xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.6" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.0"/>
+ </ownedSource>
+ <ownedArguments xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.8"/>
+ </ownedInit>
+ </variable>
+ <variable name="whenVars" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.6">
+ <ownedInit xsi:type="pivot:PropertyCallExp" type="#//@ownedPackages.1/@ownedClasses.6" referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Pattern.bindsTo">
+ <ownedSource xsi:type="pivot:PropertyCallExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Pattern"
+ referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#p.qvtrelation.Relation.when">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.20"/>
+ </ownedSource>
+ </ownedInit>
+ </variable>
+ <variable name="whereVars" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.6">
+ <ownedInit xsi:type="pivot:PropertyCallExp" type="#//@ownedPackages.1/@ownedClasses.6" referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Pattern.bindsTo">
+ <ownedSource xsi:type="pivot:PropertyCallExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Pattern"
+ referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#p.qvtrelation.Relation.where">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.20"/>
+ </ownedSource>
+ </ownedInit>
+ </variable>
+ <variable name="rn" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"/>
+ <variable name="irn" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"/>
+ <variable name="dn" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"/>
+ <variable name="tmn" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"/>
+ <variable name="mbVars" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0"/>
+ <variable name="rt" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationalTransformation"/>
+ <variable name="mt" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Transformation"/>
+ <variable name="r" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"/>
+ <variable name="ri" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationCallExp"/>
+ <variable name="p" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Predicate"/>
+ <variable name="pt" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Pattern"/>
+ <variable name="ir" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"/>
+ <variable name="rds" type="#//@ownedPackages.1/@ownedClasses.15"/>
+ <variable name="rd" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"/>
+ <variable name="dir" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.TypedModel"/>
+ <variable name="up" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Package"/>
+ <variable name="dp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.DomainPattern"/>
+ <variable name="domainVars" type="#//@ownedPackages.1/@ownedClasses.0"/>
+ <variable name="te" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"/>
+ <variable name="tev" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/>
+ <variable name="_13" type="#//@ownedPackages.1/@ownedClasses.15"/>
+ <variable name="m" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcore/model/QVTcore.ecore.oclas#T.qvtcore.Mapping"/>
+ <variable name="mg" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern"/>
+ <variable name="mb" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"/>
+ <variable name="vs" type="#//@ownedPackages.1/@ownedClasses.0"/>
+ <variable name="tcv" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.RealizedVariable"/>
+ <variable name="_5" type="#//@ownedPackages.1/@ownedClasses.0"/>
+ <variable name="md" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.CoreDomain"/>
+ <variable name="mdir" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.TypedModel"/>
+ <variable name="dg" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern"/>
+ <variable name="dgVars" type="#//@ownedPackages.1/@ownedClasses.0"/>
+ <variable name="db" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"/>
+ <when>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.0">
+ <argument xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationalTransformation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.18"/>
+ <argument xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Transformation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.19"/>
+ </conditionExpression>
+ </predicate>
+ </when>
+ <where>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.48">
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.20"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.26"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.RealizedVariable"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.38"/>
+ </conditionExpression>
+ </predicate>
+ <predicate>
+ <conditionExpression xsi:type="pivot:IfExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean">
+ <ownedCondition xsi:type="pivot:OperationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Collection.isEmpty">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.10"/>
+ </ownedCondition>
+ <ownedElse xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.15">
+ <argument xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.16" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Collection.asSequence">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.10"/>
+ </argument>
+ <argument xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.17"/>
+ </ownedElse>
+ <ownedThen xsi:type="pivot:OperationCallExp" name="=" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Set.%61%..ocl.OclSelf">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.17"/>
+ <ownedArguments xsi:type="pivot:CollectionLiteralExp" type="#//@ownedPackages.1/@ownedClasses.7" kind="Set"/>
+ </ownedThen>
+ </conditionExpression>
+ </predicate>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.29">
+ <argument xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.18" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Collection.asSequence">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.10" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.4"/>
+ </argument>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.36"/>
+ </conditionExpression>
+ </predicate>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.14">
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.20"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.35"/>
+ </conditionExpression>
+ </predicate>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.23">
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.24"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationCallExp"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.21"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.20"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.35"/>
+ </conditionExpression>
+ </predicate>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.15">
+ <argument xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.16" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Collection.asSequence">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.2"/>
+ </argument>
+ <argument xsi:type="pivot:VariableExp" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.43"/>
+ </conditionExpression>
+ </predicate>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.26">
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.20"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.26"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.31"/>
+ <argument xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.10" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.5"/>
+ <argument xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.1"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.44"/>
+ </conditionExpression>
+ </predicate>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.44">
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.20"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.26"/>
+ <argument xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.1" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.3"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.36"/>
+ </conditionExpression>
+ </predicate>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12">
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.20"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.24"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.26"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcore/model/QVTcore.ecore.oclas#T.qvtcore.Mapping"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.34"/>
+ </conditionExpression>
+ </predicate>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.45">
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.20"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.26"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.10/@variable.36"/>
+ </conditionExpression>
+ </predicate>
+ </where>
+ </rule>
+ <rule xsi:type="qvtr:Relation" name="RDomainToMDomainForChecking">
+ <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RDomainToMDomainForChecking.relations"
+ isCheckable="true" isEnforceable="false" typedModel="#qT.org.eclipse.qvtd.compiler.qvtr.relToCore.relations" rootVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.11/@variable.8">
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.11/@variable.8 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.11/@variable.9 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.11/@variable.10 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.11/@variable.11 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.11/@variable.12 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.11/@variable.13 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.11/@variable.14">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.11/@variable.8"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Rule.domain">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.11/@variable.9"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain">
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.11/@variable.0"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Domain.isCheckable">
+ <value xsi:type="pivot:BooleanLiteralExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ booleanSymbol="true"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Domain.typedModel">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.TypedModel"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.11/@variable.10"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.TypedModel">
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.11/@variable.1"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.TypedModel.usedPackage">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Package"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.11/@variable.11"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Package"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.TypedModel.transformation">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationalTransformation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.11/@variable.5"/>
+ </part>
+ </value>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#p.qvtrelation.RelationDomain.pattern">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.DomainPattern"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.11/@variable.12"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.DomainPattern">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Pattern.bindsTo">
+ <value xsi:type="qvtt:CollectionTemplateExp" type="#//@ownedPackages.1/@ownedClasses.0" bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.11/@variable.13"
+ referredCollectionType="http://www.eclipse.org/ocl/2015/Orphanage#//@ownedPackages.0/@ownedClasses.285"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#p.qvtrelation.DomainPattern.templateExpression">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.11/@variable.14"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"/>
+ </part>
+ </value>
+ </part>
+ </value>
+ </part>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RDomainToMDomainForChecking.core"
+ isCheckable="true" isEnforceable="true" typedModel="#qT.org.eclipse.qvtd.compiler.qvtr.relToCore.core" rootVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.11/@variable.15">
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.11/@variable.15 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.11/@variable.16 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.11/@variable.17 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.11/@variable.18 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.11/@variable.19 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.11/@variable.20">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcore/model/QVTcore.ecore.oclas#T.qvtcore.Mapping"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.11/@variable.15"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcore/model/QVTcore.ecore.oclas#T.qvtcore.Mapping">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#p.qvtcorebase.Area.bottomPattern">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.11/@variable.16"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#p.qvtcorebase.BottomPattern.area">
+ <value xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcore/model/QVTcore.ecore.oclas#T.qvtcore.Mapping"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.11/@variable.15"/>
+ </part>
+ </value>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Rule.domain">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.CoreDomain"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.11/@variable.17"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.CoreDomain">
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.11/@variable.0"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Domain.isCheckable">
+ <value xsi:type="pivot:BooleanLiteralExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ booleanSymbol="true"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Domain.typedModel">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.TypedModel"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.11/@variable.18"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.TypedModel">
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.11/@variable.1"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.TypedModel.usedPackage">
+ <value xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Package"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.11/@variable.11"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.TypedModel.transformation">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Transformation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.11/@variable.4"/>
+ </part>
+ </value>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#p.qvtcorebase.Area.guardPattern">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.11/@variable.19"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#p.qvtcorebase.GuardPattern.area">
+ <value xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.CoreDomain"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.11/@variable.17"/>
+ </part>
+ </value>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#p.qvtcorebase.Area.bottomPattern">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.11/@variable.20"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#p.qvtcorebase.BottomPattern.area">
+ <value xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.CoreDomain"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.11/@variable.17"/>
+ </part>
+ </value>
+ </part>
+ </value>
+ </part>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <variable name="dn" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"/>
+ <variable name="tmn" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"/>
+ <variable name="domainBottomUnSharedVars" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0">
+ <ownedInit xsi:type="pivot:OperationCallExp" name="-" type="#//@ownedPackages.1/@ownedClasses.0" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Set.%45%..$$.UniqueCollection">
+ <ownedSource xsi:type="pivot:OperationCallExp" name="-" type="#//@ownedPackages.1/@ownedClasses.0" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Set.%45%..$$.UniqueCollection">
+ <ownedSource xsi:type="pivot:VariableExp" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.11/@variable.13"/>
+ <ownedArguments xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.6" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.11/@variable.7"/>
+ </ownedSource>
+ <ownedArguments xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.11/@variable.6"/>
+ </ownedInit>
+ </variable>
+ <variable name="domainVarsSharedWithWhen" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0">
+ <ownedInit xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.0" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Collection.intersection..$$.UniqueCollection">
+ <ownedSource xsi:type="pivot:VariableExp" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.11/@variable.13"/>
+ <ownedArguments xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.6" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.11/@variable.7"/>
+ </ownedInit>
+ </variable>
+ <variable name="mt" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Transformation"/>
+ <variable name="rt" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationalTransformation"/>
+ <variable name="sharedDomainVars" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0">
+ <ownedInit xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.0" referredOperation="#o.org.eclipse.qvtd.compiler.qvtr.relToCore.getSharedDomainVars..qvtrelation.Relation">
+ <ownedArguments xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.11/@variable.8"/>
+ </ownedInit>
+ </variable>
+ <variable name="whenVars" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.6">
+ <ownedInit xsi:type="pivot:PropertyCallExp" type="#//@ownedPackages.1/@ownedClasses.6" referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Pattern.bindsTo">
+ <ownedSource xsi:type="pivot:PropertyCallExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Pattern"
+ referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#p.qvtrelation.Relation.when">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.11/@variable.8"/>
+ </ownedSource>
+ </ownedInit>
+ </variable>
+ <variable name="r" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"/>
+ <variable name="rd" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"/>
+ <variable name="dir" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.TypedModel"/>
+ <variable name="up" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Package"/>
+ <variable name="dp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.DomainPattern"/>
+ <variable name="domainVars" type="#//@ownedPackages.1/@ownedClasses.0"/>
+ <variable name="te" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"/>
+ <variable name="m" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcore/model/QVTcore.ecore.oclas#T.qvtcore.Mapping"/>
+ <variable name="mb" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"/>
+ <variable name="md" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.CoreDomain"/>
+ <variable name="mdir" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.TypedModel"/>
+ <variable name="dg" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern"/>
+ <variable name="db" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"/>
+ <when>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.0">
+ <argument xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationalTransformation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.11/@variable.5"/>
+ <argument xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Transformation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.11/@variable.4"/>
+ </conditionExpression>
+ </predicate>
+ </when>
+ <where>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.6">
+ <argument xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.11/@variable.3"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.11/@variable.19"/>
+ </conditionExpression>
+ </predicate>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.7">
+ <argument xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.11/@variable.2"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.11/@variable.20"/>
+ </conditionExpression>
+ </predicate>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.25">
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.11/@variable.8"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.11/@variable.14"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.11/@variable.20"/>
+ </conditionExpression>
+ </predicate>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.43">
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.11/@variable.9"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.11/@variable.16"/>
+ </conditionExpression>
+ </predicate>
+ </where>
+ </rule>
+ <rule xsi:type="qvtr:Relation" name="IROppositeDomainsToMappingForEnforcement">
+ <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.IROppositeDomainsToMappingForEnforcement.relations"
+ isCheckable="true" isEnforceable="false" typedModel="#qT.org.eclipse.qvtd.compiler.qvtr.relToCore.relations" rootVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.12 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.21 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.22">
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.12 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.13 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.14 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.15 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.16 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.17 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.18 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.19 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.20">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.12"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Rule.domain">
+ <value xsi:type="qvtt:CollectionTemplateExp" type="#//@ownedPackages.1/@ownedClasses.15" bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.13"
+ referredCollectionType="http://www.eclipse.org/ocl/2015/Orphanage#//@ownedPackages.0/@ownedClasses.288" rest="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.20">
+ <member xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.14"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain">
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.1"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Domain.typedModel">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.TypedModel"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.15"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.TypedModel">
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.2"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.TypedModel.usedPackage">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Package"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.10"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.TypedModel.transformation">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationalTransformation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.8"/>
+ </part>
+ </value>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Domain.isCheckable">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.0"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#p.qvtrelation.RelationDomain.pattern">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.DomainPattern"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.16"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.DomainPattern">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Pattern.bindsTo">
+ <value xsi:type="qvtt:CollectionTemplateExp" type="#//@ownedPackages.1/@ownedClasses.0" bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.17"
+ referredCollectionType="http://www.eclipse.org/ocl/2015/Orphanage#//@ownedPackages.0/@ownedClasses.285"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#p.qvtrelation.DomainPattern.templateExpression">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.18"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#p.qvttemplate.TemplateExp.bindsTo">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.19"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/>
+ </part>
+ </value>
+ </part>
+ </value>
+ </part>
+ </member>
+ </value>
+ </part>
+ </templateExpression>
+ </pattern>
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.21">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.21"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"/>
+ </pattern>
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.22">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.22"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain">
+ <where xsi:type="pivot:OperationCallExp" name="&lt;>" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.%60%%62%..ocl.OclSelf">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.14"/>
+ <ownedArguments xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.22"/>
+ </where>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.IROppositeDomainsToMappingForEnforcement.core"
+ isCheckable="true" isEnforceable="true" typedModel="#qT.org.eclipse.qvtd.compiler.qvtr.relToCore.core" rootVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.23">
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.23 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.24 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.25 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.26 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.27 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.28 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.29 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.30">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcore/model/QVTcore.ecore.oclas#T.qvtcore.Mapping"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.23"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcore/model/QVTcore.ecore.oclas#T.qvtcore.Mapping">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Rule.domain">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.CoreDomain"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.24"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.CoreDomain">
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.1"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Domain.typedModel">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.TypedModel"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.25"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.TypedModel">
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.2"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.TypedModel.usedPackage">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Package"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.10"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.TypedModel.transformation">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Transformation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.7"/>
+ </part>
+ </value>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Domain.isCheckable">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.0"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Domain.isEnforceable">
+ <value xsi:type="pivot:BooleanLiteralExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ booleanSymbol="false"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#p.qvtcorebase.Area.guardPattern">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.26"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Pattern.bindsTo">
+ <value xsi:type="qvtt:CollectionTemplateExp" type="#//@ownedPackages.1/@ownedClasses.0" bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.27"
+ referredCollectionType="http://www.eclipse.org/ocl/2015/Orphanage#//@ownedPackages.0/@ownedClasses.285"/>
+ </part>
+ </value>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#p.qvtcorebase.Area.bottomPattern">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.28"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Pattern.bindsTo">
+ <value xsi:type="qvtt:CollectionTemplateExp" type="#//@ownedPackages.1/@ownedClasses.0" bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.29"
+ referredCollectionType="http://www.eclipse.org/ocl/2015/Orphanage#//@ownedPackages.0/@ownedClasses.285"/>
+ </part>
+ </value>
+ </part>
+ </value>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#p.qvtcorebase.Area.bottomPattern">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.30"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#p.qvtcorebase.BottomPattern.area">
+ <value xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcore/model/QVTcore.ecore.oclas#T.qvtcore.Mapping"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.23"/>
+ </part>
+ </value>
+ </part>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <variable name="c" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"/>
+ <variable name="dn" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"/>
+ <variable name="tmn" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"/>
+ <variable name="domainBottomSharedVars" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0">
+ <ownedInit xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.0" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Set.excluding..ocl.OclAny">
+ <ownedSource xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.0" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Collection.intersection..$$.UniqueCollection">
+ <ownedSource xsi:type="pivot:OperationCallExp" name="-" type="#//@ownedPackages.1/@ownedClasses.0" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Set.%45%..$$.UniqueCollection">
+ <ownedSource xsi:type="pivot:VariableExp" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.17"/>
+ <ownedArguments xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.6" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.11"/>
+ </ownedSource>
+ <ownedArguments xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.9"/>
+ </ownedSource>
+ <ownedArguments xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.19"/>
+ </ownedInit>
+ </variable>
+ <variable name="domainBottomUnSharedVars" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0">
+ <ownedInit xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.0" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Set.excluding..ocl.OclAny">
+ <ownedSource xsi:type="pivot:OperationCallExp" name="-" type="#//@ownedPackages.1/@ownedClasses.0" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Set.%45%..$$.UniqueCollection">
+ <ownedSource xsi:type="pivot:OperationCallExp" name="-" type="#//@ownedPackages.1/@ownedClasses.0" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Set.%45%..$$.UniqueCollection">
+ <ownedSource xsi:type="pivot:VariableExp" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.17"/>
+ <ownedArguments xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.6" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.11"/>
+ </ownedSource>
+ <ownedArguments xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.9"/>
+ </ownedSource>
+ <ownedArguments xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.19"/>
+ </ownedInit>
+ </variable>
+ <variable name="domainTopVars" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0">
+ <ownedInit xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.0" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Set.including..T">
+ <ownedSource xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.0" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Collection.intersection..$$.UniqueCollection">
+ <ownedSource xsi:type="pivot:VariableExp" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.17"/>
+ <ownedArguments xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.6" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.11"/>
+ </ownedSource>
+ <ownedArguments xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.19"/>
+ </ownedInit>
+ </variable>
+ <variable name="mbVars" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0"/>
+ <variable name="mt" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Transformation"/>
+ <variable name="rt" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationalTransformation"/>
+ <variable name="sharedDomainVars" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0">
+ <ownedInit xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.0" referredOperation="#o.org.eclipse.qvtd.compiler.qvtr.relToCore.getSharedDomainVars..qvtrelation.Relation">
+ <ownedArguments xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.12"/>
+ </ownedInit>
+ </variable>
+ <variable name="up" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Package"/>
+ <variable name="whenVars" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.6">
+ <ownedInit xsi:type="pivot:PropertyCallExp" type="#//@ownedPackages.1/@ownedClasses.6" referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Pattern.bindsTo">
+ <ownedSource xsi:type="pivot:PropertyCallExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Pattern"
+ referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#p.qvtrelation.Relation.when">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.12"/>
+ </ownedSource>
+ </ownedInit>
+ </variable>
+ <variable name="r" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"/>
+ <variable name="rds" type="#//@ownedPackages.1/@ownedClasses.15"/>
+ <variable name="ord" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"/>
+ <variable name="dir" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.TypedModel"/>
+ <variable name="dp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.DomainPattern"/>
+ <variable name="domainVars" type="#//@ownedPackages.1/@ownedClasses.0"/>
+ <variable name="te" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"/>
+ <variable name="tev" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/>
+ <variable name="_8" type="#//@ownedPackages.1/@ownedClasses.15"/>
+ <variable name="ir" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"/>
+ <variable name="rd" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"/>
+ <variable name="m" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcore/model/QVTcore.ecore.oclas#T.qvtcore.Mapping"/>
+ <variable name="cd" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.CoreDomain"/>
+ <variable name="mdir" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.TypedModel"/>
+ <variable name="dg" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern"/>
+ <variable name="dgVars" type="#//@ownedPackages.1/@ownedClasses.0"/>
+ <variable name="db" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"/>
+ <variable name="dbVars" type="#//@ownedPackages.1/@ownedClasses.0"/>
+ <variable name="mb" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"/>
+ <when>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.0">
+ <argument xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationalTransformation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.8"/>
+ <argument xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Transformation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.7"/>
+ </conditionExpression>
+ </predicate>
+ </when>
+ <where>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.15">
+ <argument xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.16" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Collection.asSequence">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.5"/>
+ </argument>
+ <argument xsi:type="pivot:VariableExp" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.27"/>
+ </conditionExpression>
+ </predicate>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.15">
+ <argument xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.16" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Collection.asSequence">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.4"/>
+ </argument>
+ <argument xsi:type="pivot:VariableExp" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.29"/>
+ </conditionExpression>
+ </predicate>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.16">
+ <argument xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.16" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Collection.asSequence">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.3"/>
+ </argument>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.30"/>
+ </conditionExpression>
+ </predicate>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.25">
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.12"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.18"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.12/@variable.28"/>
+ </conditionExpression>
+ </predicate>
+ </where>
+ </rule>
+ <rule xsi:type="qvtr:Relation" name="TROppositeDomainsToMappingForEnforcement">
+ <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.TROppositeDomainsToMappingForEnforcement.relations"
+ isCheckable="true" isEnforceable="false" typedModel="#qT.org.eclipse.qvtd.compiler.qvtr.relToCore.relations" rootVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.12 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.20">
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.12 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.13 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.14 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.15 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.16 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.17 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.18 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.19">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.12"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Rule.domain">
+ <value xsi:type="qvtt:CollectionTemplateExp" type="#//@ownedPackages.1/@ownedClasses.15" bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.13"
+ referredCollectionType="http://www.eclipse.org/ocl/2015/Orphanage#//@ownedPackages.0/@ownedClasses.288" rest="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.19">
+ <member xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.14"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain">
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.1"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Domain.typedModel">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.TypedModel"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.15"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.TypedModel">
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.2"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.TypedModel.usedPackage">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Package"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.10"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.TypedModel.transformation">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationalTransformation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.8"/>
+ </part>
+ </value>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Domain.isCheckable">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.0"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#p.qvtrelation.RelationDomain.pattern">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.DomainPattern"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.16"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.DomainPattern">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Pattern.bindsTo">
+ <value xsi:type="qvtt:CollectionTemplateExp" type="#//@ownedPackages.1/@ownedClasses.0" bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.17"
+ referredCollectionType="http://www.eclipse.org/ocl/2015/Orphanage#//@ownedPackages.0/@ownedClasses.285"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#p.qvtrelation.DomainPattern.templateExpression">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.18"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"/>
+ </part>
+ </value>
+ </part>
+ </member>
+ </value>
+ </part>
+ </templateExpression>
+ </pattern>
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.20">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.20"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain">
+ <where xsi:type="pivot:OperationCallExp" name="&lt;>" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.%60%%62%..ocl.OclSelf">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.14"/>
+ <ownedArguments xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.20"/>
+ </where>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.TROppositeDomainsToMappingForEnforcement.core"
+ isCheckable="true" isEnforceable="true" typedModel="#qT.org.eclipse.qvtd.compiler.qvtr.relToCore.core" rootVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.21">
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.21 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.22 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.23 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.24 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.25 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.26 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.27 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.28">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcore/model/QVTcore.ecore.oclas#T.qvtcore.Mapping"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.21"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcore/model/QVTcore.ecore.oclas#T.qvtcore.Mapping">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Rule.domain">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.CoreDomain"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.22"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.CoreDomain">
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.1"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Domain.typedModel">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.TypedModel"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.23"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.TypedModel">
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.2"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.TypedModel.usedPackage">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Package"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.10"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.TypedModel.transformation">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Transformation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.7"/>
+ </part>
+ </value>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Domain.isCheckable">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.0"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Domain.isEnforceable">
+ <value xsi:type="pivot:BooleanLiteralExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ booleanSymbol="false"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#p.qvtcorebase.Area.guardPattern">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.24"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Pattern.bindsTo">
+ <value xsi:type="qvtt:CollectionTemplateExp" type="#//@ownedPackages.1/@ownedClasses.0" bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.25"
+ referredCollectionType="http://www.eclipse.org/ocl/2015/Orphanage#//@ownedPackages.0/@ownedClasses.285"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#p.qvtcorebase.GuardPattern.area">
+ <value xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.CoreDomain"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.22"/>
+ </part>
+ </value>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#p.qvtcorebase.Area.bottomPattern">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.26"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Pattern.bindsTo">
+ <value xsi:type="qvtt:CollectionTemplateExp" type="#//@ownedPackages.1/@ownedClasses.0" bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.27"
+ referredCollectionType="http://www.eclipse.org/ocl/2015/Orphanage#//@ownedPackages.0/@ownedClasses.285"/>
+ </part>
+ </value>
+ </part>
+ </value>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#p.qvtcorebase.Area.bottomPattern">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.28"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#p.qvtcorebase.BottomPattern.area">
+ <value xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcore/model/QVTcore.ecore.oclas#T.qvtcore.Mapping"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.21"/>
+ </part>
+ </value>
+ </part>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <variable name="c" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"/>
+ <variable name="dn" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"/>
+ <variable name="tmn" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"/>
+ <variable name="domainBottomSharedVars" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0">
+ <ownedInit xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.0" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Collection.intersection..$$.UniqueCollection">
+ <ownedSource xsi:type="pivot:OperationCallExp" name="-" type="#//@ownedPackages.1/@ownedClasses.0" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Set.%45%..$$.UniqueCollection">
+ <ownedSource xsi:type="pivot:VariableExp" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.17"/>
+ <ownedArguments xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.6" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.11"/>
+ </ownedSource>
+ <ownedArguments xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.9"/>
+ </ownedInit>
+ </variable>
+ <variable name="domainBottomUnSharedVars" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0">
+ <ownedInit xsi:type="pivot:OperationCallExp" name="-" type="#//@ownedPackages.1/@ownedClasses.0" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Set.%45%..$$.UniqueCollection">
+ <ownedSource xsi:type="pivot:OperationCallExp" name="-" type="#//@ownedPackages.1/@ownedClasses.0" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Set.%45%..$$.UniqueCollection">
+ <ownedSource xsi:type="pivot:VariableExp" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.17"/>
+ <ownedArguments xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.6" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.11"/>
+ </ownedSource>
+ <ownedArguments xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.9"/>
+ </ownedInit>
+ </variable>
+ <variable name="domainTopVars" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0">
+ <ownedInit xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.0" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Collection.intersection..$$.UniqueCollection">
+ <ownedSource xsi:type="pivot:VariableExp" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.17"/>
+ <ownedArguments xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.6" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.11"/>
+ </ownedInit>
+ </variable>
+ <variable name="mbVars" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0"/>
+ <variable name="mt" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Transformation"/>
+ <variable name="rt" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationalTransformation"/>
+ <variable name="sharedDomainVars" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0">
+ <ownedInit xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.0" referredOperation="#o.org.eclipse.qvtd.compiler.qvtr.relToCore.getSharedDomainVars..qvtrelation.Relation">
+ <ownedArguments xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.12"/>
+ </ownedInit>
+ </variable>
+ <variable name="up" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Package"/>
+ <variable name="whenVars" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.6">
+ <ownedInit xsi:type="pivot:PropertyCallExp" type="#//@ownedPackages.1/@ownedClasses.6" referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Pattern.bindsTo">
+ <ownedSource xsi:type="pivot:PropertyCallExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Pattern"
+ referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#p.qvtrelation.Relation.when">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.12"/>
+ </ownedSource>
+ </ownedInit>
+ </variable>
+ <variable name="r" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"/>
+ <variable name="rds" type="#//@ownedPackages.1/@ownedClasses.15"/>
+ <variable name="ord" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"/>
+ <variable name="dir" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.TypedModel"/>
+ <variable name="dp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.DomainPattern"/>
+ <variable name="domainVars" type="#//@ownedPackages.1/@ownedClasses.0"/>
+ <variable name="te" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"/>
+ <variable name="_7" type="#//@ownedPackages.1/@ownedClasses.15"/>
+ <variable name="rd" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"/>
+ <variable name="m" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcore/model/QVTcore.ecore.oclas#T.qvtcore.Mapping"/>
+ <variable name="cd" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.CoreDomain"/>
+ <variable name="mdir" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.TypedModel"/>
+ <variable name="dg" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern"/>
+ <variable name="dgVars" type="#//@ownedPackages.1/@ownedClasses.0"/>
+ <variable name="db" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"/>
+ <variable name="dbVars" type="#//@ownedPackages.1/@ownedClasses.0"/>
+ <variable name="mb" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"/>
+ <where>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.0">
+ <argument xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationalTransformation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.8"/>
+ <argument xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Transformation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.7"/>
+ </conditionExpression>
+ </predicate>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.15">
+ <argument xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.16" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Collection.asSequence">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.5"/>
+ </argument>
+ <argument xsi:type="pivot:VariableExp" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.25"/>
+ </conditionExpression>
+ </predicate>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.15">
+ <argument xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.16" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Collection.asSequence">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.4"/>
+ </argument>
+ <argument xsi:type="pivot:VariableExp" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.27"/>
+ </conditionExpression>
+ </predicate>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.16">
+ <argument xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.16" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Collection.asSequence">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.3"/>
+ </argument>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.28"/>
+ </conditionExpression>
+ </predicate>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.25">
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.12"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.18"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.13/@variable.26"/>
+ </conditionExpression>
+ </predicate>
+ </where>
+ </rule>
+ <rule xsi:type="qvtr:Relation" name="RWhenPatternToMGuardPattern">
+ <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RWhenPatternToMGuardPattern.relations"
+ isCheckable="true" isEnforceable="false" typedModel="#qT.org.eclipse.qvtd.compiler.qvtr.relToCore.relations" rootVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.14/@variable.2">
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.14/@variable.2 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.14/@variable.3 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.14/@variable.4">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.14/@variable.2"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#p.qvtrelation.Relation.when">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Pattern"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.14/@variable.3"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Pattern">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Pattern.bindsTo">
+ <value xsi:type="qvtt:CollectionTemplateExp" type="#//@ownedPackages.1/@ownedClasses.0" bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.14/@variable.4"
+ referredCollectionType="http://www.eclipse.org/ocl/2015/Orphanage#//@ownedPackages.0/@ownedClasses.285"/>
+ </part>
+ </value>
+ </part>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RWhenPatternToMGuardPattern.core"
+ isCheckable="true" isEnforceable="true" typedModel="#qT.org.eclipse.qvtd.compiler.qvtr.relToCore.core" rootVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.14/@variable.5">
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.14/@variable.5">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.14/@variable.5"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern"/>
+ </pattern>
+ </domain>
+ <variable name="allDomainVars" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0"/>
+ <variable name="unsharedWhenVars" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0"/>
+ <variable name="r" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"/>
+ <variable name="whenp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Pattern"/>
+ <variable name="whenVars" type="#//@ownedPackages.1/@ownedClasses.0"/>
+ <variable name="mg" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern"/>
+ <where>
+ <predicate>
+ <conditionExpression xsi:type="pivot:OperationCallExp" name="=" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Set.%61%..ocl.OclSelf">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.14/@variable.0"/>
+ <ownedArguments xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.6" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Collection.asSet">
+ <ownedSource xsi:type="pivot:IteratorExp" name="collect" type="#//@ownedPackages.1/@ownedClasses.13" isImplicit="true"
+ referredIteration="http://www.eclipse.org/ocl/2015/Library.oclas#i.ocl.Bag.collect..T">
+ <ownedSource xsi:type="pivot:IteratorExp" name="collect" type="#//@ownedPackages.1/@ownedClasses.14" isImplicit="true"
+ referredIteration="http://www.eclipse.org/ocl/2015/Library.oclas#i.ocl.Set.collect..T">
+ <ownedSource xsi:type="pivot:IterateExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.15" referredIteration="http://www.eclipse.org/ocl/2015/Library.oclas#i.ocl.Collection.iterate..T">
+ <ownedSource xsi:type="pivot:PropertyCallExp" type="#//@ownedPackages.1/@ownedClasses.2" referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Rule.domain">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.14/@variable.2"/>
+ </ownedSource>
+ <ownedBody xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.15" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Set.including..T">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.15"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.14/@where/@predicate.0/@conditionExpression/@ownedArguments.0/@ownedSource/@ownedSource/@ownedSource/@ownedResult"/>
+ <ownedArguments xsi:type="pivot:OperationCallExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.oclAsType..TT">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Domain"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.14/@where/@predicate.0/@conditionExpression/@ownedArguments.0/@ownedSource/@ownedSource/@ownedSource/@ownedIterators.0"/>
+ <ownedArguments xsi:type="pivot:TypeExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class"
+ referredType="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"/>
+ </ownedArguments>
+ </ownedBody>
+ <ownedIterators name="md" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Domain"
+ representedParameter="http://www.eclipse.org/ocl/2015/Library.oclas#i0i.ocl.Collection.iterate..T"/>
+ <ownedResult name="acc" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.15" representedParameter="http://www.eclipse.org/ocl/2015/Library.oclas#a0i.ocl.Collection.iterate..T">
+ <ownedInit xsi:type="pivot:CollectionLiteralExp" type="#//@ownedPackages.1/@ownedClasses.7" kind="Set"/>
+ </ownedResult>
+ </ownedSource>
+ <ownedBody xsi:type="pivot:PropertyCallExp" type="#//@ownedPackages.1/@ownedClasses.5" referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#p.qvtrelation.RelationDomain.pattern">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"
+ isImplicit="true" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.14/@where/@predicate.0/@conditionExpression/@ownedArguments.0/@ownedSource/@ownedSource/@ownedIterators.0"/>
+ </ownedBody>
+ <ownedIterators name="1_" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"
+ isImplicit="true" representedParameter="http://www.eclipse.org/ocl/2015/Library.oclas#i0i.ocl.Set.collect..T"/>
+ </ownedSource>
+ <ownedBody xsi:type="pivot:PropertyCallExp" type="#//@ownedPackages.1/@ownedClasses.6" referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Pattern.bindsTo">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.DomainPattern"
+ isImplicit="true" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.14/@where/@predicate.0/@conditionExpression/@ownedArguments.0/@ownedSource/@ownedIterators.0"/>
+ </ownedBody>
+ <ownedIterators name="1_" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.DomainPattern"
+ isImplicit="true" representedParameter="http://www.eclipse.org/ocl/2015/Library.oclas#i0i.ocl.Bag.collect..T"/>
+ </ownedSource>
+ </ownedArguments>
+ </conditionExpression>
+ </predicate>
+ <predicate>
+ <conditionExpression xsi:type="pivot:OperationCallExp" name="=" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Set.%61%..ocl.OclSelf">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.14/@variable.1"/>
+ <ownedArguments xsi:type="pivot:OperationCallExp" name="-" type="#//@ownedPackages.1/@ownedClasses.0" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Set.%45%..$$.UniqueCollection">
+ <ownedSource xsi:type="pivot:VariableExp" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.14/@variable.4"/>
+ <ownedArguments xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.14/@variable.0"/>
+ </ownedArguments>
+ </conditionExpression>
+ </predicate>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.21">
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Pattern"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.14/@variable.3"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.14/@variable.5"/>
+ </conditionExpression>
+ </predicate>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.20">
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Pattern"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.14/@variable.3"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.14/@variable.5"/>
+ </conditionExpression>
+ </predicate>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.5">
+ <argument xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.14/@variable.1"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.14/@variable.5"/>
+ </conditionExpression>
+ </predicate>
+ </where>
+ </rule>
+ <rule xsi:type="qvtr:Relation" name="RVarSetToMVarSet">
+ <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RVarSetToMVarSet.relations"
+ isCheckable="true" isEnforceable="false" typedModel="#qT.org.eclipse.qvtd.compiler.qvtr.relToCore.relations" rootVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.15/@variable.2">
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.15/@variable.2 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.15/@variable.3 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.15/@variable.4">
+ <templateExpression xsi:type="qvtt:CollectionTemplateExp" type="#//@ownedPackages.1/@ownedClasses.16" bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.15/@variable.2"
+ referredCollectionType="http://www.eclipse.org/ocl/2015/Orphanage#//@ownedPackages.0/@ownedClasses.289" rest="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.15/@variable.4">
+ <member xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.15/@variable.3"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RVarSetToMVarSet.core" isCheckable="true"
+ isEnforceable="true" typedModel="#qT.org.eclipse.qvtd.compiler.qvtr.relToCore.core" rootVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.15/@variable.5">
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.15/@variable.5 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.15/@variable.6 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.15/@variable.7">
+ <templateExpression xsi:type="qvtt:CollectionTemplateExp" type="#//@ownedPackages.1/@ownedClasses.0" bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.15/@variable.5"
+ referredCollectionType="http://www.eclipse.org/ocl/2015/Orphanage#//@ownedPackages.0/@ownedClasses.285" rest="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.15/@variable.7">
+ <member xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.15/@variable.6"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <variable name="mvRest" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0"/>
+ <variable name="rvRest" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.16"/>
+ <variable name="rvSeq" type="#//@ownedPackages.1/@ownedClasses.16"/>
+ <variable name="rv" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/>
+ <variable name="_2" type="#//@ownedPackages.1/@ownedClasses.16"/>
+ <variable name="mvSet" type="#//@ownedPackages.1/@ownedClasses.0"/>
+ <variable name="mv" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/>
+ <variable name="_2" type="#//@ownedPackages.1/@ownedClasses.0"/>
+ <where>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.18">
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.15/@variable.3"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.15/@variable.6"/>
+ </conditionExpression>
+ </predicate>
+ <predicate>
+ <conditionExpression xsi:type="pivot:IfExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean">
+ <ownedCondition xsi:type="pivot:OperationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Collection.isEmpty">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.16" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.15/@variable.1"/>
+ </ownedCondition>
+ <ownedElse xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.15">
+ <argument xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.16" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.15/@variable.1"/>
+ <argument xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.15/@variable.0"/>
+ </ownedElse>
+ <ownedThen xsi:type="pivot:OperationCallExp" name="=" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Set.%61%..ocl.OclSelf">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.15/@variable.0"/>
+ <ownedArguments xsi:type="pivot:CollectionLiteralExp" type="#//@ownedPackages.1/@ownedClasses.7" kind="Set"/>
+ </ownedThen>
+ </conditionExpression>
+ </predicate>
+ </where>
+ </rule>
+ <rule xsi:type="qvtr:Relation" name="RVarSetToMBVarSet">
+ <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RVarSetToMBVarSet.relations"
+ isCheckable="true" isEnforceable="false" typedModel="#qT.org.eclipse.qvtd.compiler.qvtr.relToCore.relations" rootVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.16/@variable.2">
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.16/@variable.2 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.16/@variable.3 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.16/@variable.4">
+ <templateExpression xsi:type="qvtt:CollectionTemplateExp" type="#//@ownedPackages.1/@ownedClasses.16" bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.16/@variable.2"
+ referredCollectionType="http://www.eclipse.org/ocl/2015/Orphanage#//@ownedPackages.0/@ownedClasses.289" rest="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.16/@variable.4">
+ <member xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.16/@variable.3"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RVarSetToMBVarSet.core" isCheckable="true"
+ isEnforceable="true" typedModel="#qT.org.eclipse.qvtd.compiler.qvtr.relToCore.core" rootVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.16/@variable.5">
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.16/@variable.5 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.16/@variable.6">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.16/@variable.5"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Pattern.bindsTo">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.16/@variable.6"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/>
+ </part>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <variable name="mvRest" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0"/>
+ <variable name="rvRest" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.16"/>
+ <variable name="rvSeq" type="#//@ownedPackages.1/@ownedClasses.16"/>
+ <variable name="rv" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/>
+ <variable name="_2" type="#//@ownedPackages.1/@ownedClasses.16"/>
+ <variable name="mb" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"/>
+ <variable name="mv" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/>
+ <where>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.18">
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.16/@variable.3"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.16/@variable.6"/>
+ </conditionExpression>
+ </predicate>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.16">
+ <argument xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.16" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.16/@variable.1"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.16/@variable.5"/>
+ </conditionExpression>
+ </predicate>
+ </where>
+ </rule>
+ <rule xsi:type="qvtr:Relation" name="RVarSetToDGVarSet">
+ <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RVarSetToDGVarSet.relations"
+ isCheckable="true" isEnforceable="false" typedModel="#qT.org.eclipse.qvtd.compiler.qvtr.relToCore.relations" rootVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.17/@variable.2">
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.17/@variable.2 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.17/@variable.3 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.17/@variable.4">
+ <templateExpression xsi:type="qvtt:CollectionTemplateExp" type="#//@ownedPackages.1/@ownedClasses.16" bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.17/@variable.2"
+ referredCollectionType="http://www.eclipse.org/ocl/2015/Orphanage#//@ownedPackages.0/@ownedClasses.289" rest="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.17/@variable.4">
+ <member xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.17/@variable.3"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RVarSetToDGVarSet.core" isCheckable="true"
+ isEnforceable="true" typedModel="#qT.org.eclipse.qvtd.compiler.qvtr.relToCore.core" rootVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.17/@variable.5">
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.17/@variable.5 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.17/@variable.6">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.17/@variable.5"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Pattern.bindsTo">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.17/@variable.6"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/>
+ </part>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <variable name="mvRest" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0"/>
+ <variable name="rvRest" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.16"/>
+ <variable name="rvSeq" type="#//@ownedPackages.1/@ownedClasses.16"/>
+ <variable name="rv" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/>
+ <variable name="_2" type="#//@ownedPackages.1/@ownedClasses.16"/>
+ <variable name="dg" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern"/>
+ <variable name="mv" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/>
+ <where>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.18">
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.17/@variable.3"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.17/@variable.6"/>
+ </conditionExpression>
+ </predicate>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.17">
+ <argument xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.16" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.17/@variable.1"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.17/@variable.5"/>
+ </conditionExpression>
+ </predicate>
+ </where>
+ </rule>
+ <rule xsi:type="qvtr:Relation" name="RVarToMVar">
+ <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RVarToMVar.relations" isCheckable="true"
+ isEnforceable="false" typedModel="#qT.org.eclipse.qvtd.compiler.qvtr.relToCore.relations" rootVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.18/@variable.1">
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.18/@variable.1 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.18/@variable.2">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.18/@variable.1"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable">
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.18/@variable.0"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.TypedElement.type">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Type"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.18/@variable.2"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Type"/>
+ </part>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RVarToMVar.core" isCheckable="true"
+ isEnforceable="true" typedModel="#qT.org.eclipse.qvtd.compiler.qvtr.relToCore.core" rootVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.18/@variable.3">
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.18/@variable.3">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.18/@variable.3"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable">
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.18/@variable.0"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.TypedElement.type">
+ <value xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Type"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.18/@variable.2"/>
+ </part>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <variable name="n" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"/>
+ <variable name="rv" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/>
+ <variable name="t" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Type"/>
+ <variable name="mv" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/>
+ </rule>
+ <rule xsi:type="qvtr:Relation" name="RVarToMRealizedVar">
+ <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RVarToMRealizedVar.relations"
+ isCheckable="true" isEnforceable="false" typedModel="#qT.org.eclipse.qvtd.compiler.qvtr.relToCore.relations" rootVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.19/@variable.1">
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.19/@variable.1 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.19/@variable.2">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.19/@variable.1"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable">
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.19/@variable.0"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.TypedElement.type">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Type"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.19/@variable.2"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Type"/>
+ </part>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RVarToMRealizedVar.core" isCheckable="true"
+ isEnforceable="true" typedModel="#qT.org.eclipse.qvtd.compiler.qvtr.relToCore.core" rootVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.19/@variable.3">
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.19/@variable.3">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.RealizedVariable"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.19/@variable.3"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.RealizedVariable">
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.19/@variable.0"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.TypedElement.type">
+ <value xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Type"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.19/@variable.2"/>
+ </part>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <variable name="n" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"/>
+ <variable name="rv" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/>
+ <variable name="t" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Type"/>
+ <variable name="mv" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.RealizedVariable"/>
+ </rule>
+ <rule xsi:type="qvtr:Relation" name="RSimplePatternToMPattern">
+ <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RSimplePatternToMPattern.relations"
+ isCheckable="true" isEnforceable="false" typedModel="#qT.org.eclipse.qvtd.compiler.qvtr.relToCore.relations" rootVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.20/@variable.0">
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.20/@variable.0 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.20/@variable.1 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.20/@variable.2">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Pattern"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.20/@variable.0"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Pattern">
+ <where xsi:type="pivot:OperationCallExp" name="not" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Boolean.not">
+ <ownedSource xsi:type="pivot:OperationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.oclIsTypeOf..ocl.OclType">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OCLExpression"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.20/@variable.2"/>
+ <ownedArguments xsi:type="pivot:TypeExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class"
+ referredType="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationCallExp"/>
+ </ownedSource>
+ </where>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Pattern.predicate">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Predicate"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.20/@variable.1"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Predicate">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Predicate.conditionExpression">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OCLExpression"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.20/@variable.2"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OCLExpression"/>
+ </part>
+ </value>
+ </part>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RSimplePatternToMPattern.core"
+ isCheckable="true" isEnforceable="true" typedModel="#qT.org.eclipse.qvtd.compiler.qvtr.relToCore.core" rootVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.20/@variable.3">
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.20/@variable.3 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.20/@variable.4 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.20/@variable.5">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Pattern"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.20/@variable.3"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Pattern">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Pattern.predicate">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Predicate"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.20/@variable.4"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Predicate">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Predicate.conditionExpression">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OCLExpression"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.20/@variable.5"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OCLExpression"/>
+ </part>
+ </value>
+ </part>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <variable name="rp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Pattern"/>
+ <variable name="pd" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Predicate"/>
+ <variable name="re" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OCLExpression"/>
+ <variable name="mp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Pattern"/>
+ <variable name="mpd" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Predicate"/>
+ <variable name="me" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OCLExpression"/>
+ <where>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.49">
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OCLExpression"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.20/@variable.2"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OCLExpression"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.20/@variable.5"/>
+ </conditionExpression>
+ </predicate>
+ </where>
+ </rule>
+ <rule xsi:type="qvtr:Relation" name="RWhenRelCallToMGuard">
+ <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RWhenRelCallToMGuard.relations"
+ isCheckable="true" isEnforceable="false" typedModel="#qT.org.eclipse.qvtd.compiler.qvtr.relToCore.relations" rootVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.21/@variable.0">
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.21/@variable.0 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.21/@variable.1 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.21/@variable.2 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.21/@variable.3 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.21/@variable.4 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.21/@variable.5">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Pattern"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.21/@variable.0"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Pattern">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Pattern.predicate">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Predicate"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.21/@variable.1"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Predicate">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Predicate.conditionExpression">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationCallExp"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.21/@variable.2"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationCallExp">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#p.qvtrelation.RelationCallExp.referredRelation">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.21/@variable.3"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Rule.domain">
+ <value xsi:type="qvtt:CollectionTemplateExp" type="#//@ownedPackages.1/@ownedClasses.19" bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.21/@variable.4"
+ referredCollectionType="http://www.eclipse.org/ocl/2015/Orphanage#//@ownedPackages.0/@ownedClasses.291"/>
+ </part>
+ </value>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#p.qvtrelation.RelationCallExp.argument">
+ <value xsi:type="qvtt:CollectionTemplateExp" type="#//@ownedPackages.1/@ownedClasses.20" bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.21/@variable.5"
+ referredCollectionType="http://www.eclipse.org/ocl/2015/Orphanage#//@ownedPackages.0/@ownedClasses.293"/>
+ </part>
+ </value>
+ </part>
+ </value>
+ </part>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RWhenRelCallToMGuard.core"
+ isCheckable="true" isEnforceable="true" typedModel="#qT.org.eclipse.qvtd.compiler.qvtr.relToCore.core" rootVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.21/@variable.6">
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.21/@variable.6">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.21/@variable.6"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern"/>
+ </pattern>
+ </domain>
+ <variable name="rp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Pattern"/>
+ <variable name="pd" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Predicate"/>
+ <variable name="e" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationCallExp"/>
+ <variable name="r" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"/>
+ <variable name="dseq" type="#//@ownedPackages.1/@ownedClasses.19"/>
+ <variable name="aseq" type="#//@ownedPackages.1/@ownedClasses.20"/>
+ <variable name="mp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern"/>
+ <where>
+ <predicate>
+ <conditionExpression xsi:type="pivot:IteratorExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredIteration="http://www.eclipse.org/ocl/2015/Library.oclas#i.ocl.Collection.forAll..T">
+ <ownedSource xsi:type="pivot:VariableExp" type="#//@ownedPackages.1/@ownedClasses.20" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.21/@variable.5"/>
+ <ownedBody xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.22">
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.21/@variable.3"/>
+ <argument xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.VariableExp"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.21/@where/@predicate.0/@conditionExpression/@ownedIterators.0"/>
+ <argument xsi:type="pivot:OperationCallExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OrderedCollection.at..ocl.Integer">
+ <ownedSource xsi:type="pivot:VariableExp" type="#//@ownedPackages.1/@ownedClasses.19" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.21/@variable.4"/>
+ <ownedArguments xsi:type="pivot:OperationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.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.20" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.21/@variable.5"/>
+ <ownedArguments xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.VariableExp"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.21/@where/@predicate.0/@conditionExpression/@ownedIterators.0"/>
+ </ownedArguments>
+ </argument>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.21/@variable.6"/>
+ </ownedBody>
+ <ownedIterators name="a" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.VariableExp"
+ representedParameter="http://www.eclipse.org/ocl/2015/Library.oclas#i0i.ocl.Collection.forAll..T"/>
+ </conditionExpression>
+ </predicate>
+ </where>
+ </rule>
+ <rule xsi:type="qvtr:Relation" name="RWhenRelCallArgToMGuardPredicate">
+ <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RWhenRelCallArgToMGuardPredicate.relations"
+ isCheckable="true" isEnforceable="false" typedModel="#qT.org.eclipse.qvtd.compiler.qvtr.relToCore.relations" rootVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.22/@variable.3 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.22/@variable.4 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.22/@variable.6">
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.22/@variable.3">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.22/@variable.3"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"/>
+ </pattern>
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.22/@variable.4 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.22/@variable.5">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.VariableExp"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.22/@variable.4"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.VariableExp">
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.VariableExp.referredVariable">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.22/@variable.5"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/>
+ </part>
+ </templateExpression>
+ </pattern>
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.22/@variable.6 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.22/@variable.7">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.22/@variable.6"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#p.qvtrelation.RelationDomain.rootVariable">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.22/@variable.7"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable">
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.22/@variable.0"/>
+ </part>
+ </value>
+ </part>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RWhenRelCallArgToMGuardPredicate.core"
+ isCheckable="true" isEnforceable="true" typedModel="#qT.org.eclipse.qvtd.compiler.qvtr.relToCore.core" rootVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.22/@variable.8">
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.22/@variable.8 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.22/@variable.9 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.22/@variable.10 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.22/@variable.11 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.22/@variable.12 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.22/@variable.13 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.22/@variable.14 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.22/@variable.15 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.22/@variable.16">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.22/@variable.8"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Pattern.bindsTo">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.22/@variable.9"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable">
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name">
+ <value xsi:type="pivot:OperationCallExp" name="+" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.String.%43%..ocl.String">
+ <ownedSource xsi:type="pivot:PropertyCallExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.22/@variable.2"/>
+ </ownedSource>
+ <ownedArguments xsi:type="pivot:StringLiteralExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ stringSymbol="_v"/>
+ </value>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.TypedElement.type">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.22/@variable.2"/>
+ </part>
+ </value>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Pattern.predicate">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Predicate"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.22/@variable.10"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Predicate">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Predicate.conditionExpression">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OperationCallExp"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.22/@variable.11"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OperationCallExp">
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.CallExp.ownedSource">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.PropertyCallExp"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.22/@variable.12"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.PropertyCallExp">
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.CallExp.ownedSource">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.VariableExp"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.22/@variable.13"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.VariableExp">
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.VariableExp.referredVariable">
+ <value xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.22/@variable.9"/>
+ </part>
+ </value>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.PropertyCallExp.referredProperty">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Property"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.22/@variable.14"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Property">
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.22/@variable.0"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.Property.owningClass">
+ <value xsi:type="pivot:OperationCallExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.oclAsType..TT">
+ <ownedSource xsi:type="pivot:PropertyCallExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Type"
+ referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.TypedElement.type">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.22/@variable.9"/>
+ </ownedSource>
+ <ownedArguments xsi:type="pivot:TypeExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class"
+ referredType="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class"/>
+ </value>
+ </part>
+ </value>
+ </part>
+ </value>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.OperationCallExp.referredOperation">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Operation"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.22/@variable.15"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Operation">
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name">
+ <value xsi:type="pivot:StringLiteralExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ stringSymbol="="/>
+ </part>
+ </value>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.OperationCallExp.ownedArguments">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.VariableExp"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.22/@variable.16"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.VariableExp">
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.VariableExp.referredVariable">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.22/@variable.1"/>
+ </part>
+ </value>
+ </part>
+ </value>
+ </part>
+ </value>
+ </part>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <variable name="dvn" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"/>
+ <variable name="mv" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/>
+ <variable name="tc" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class"/>
+ <variable name="r" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"/>
+ <variable name="ve" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.VariableExp"/>
+ <variable name="v" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/>
+ <variable name="d" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"/>
+ <variable name="dv" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/>
+ <variable name="mp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern"/>
+ <variable name="vd" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/>
+ <variable name="mpd" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Predicate"/>
+ <variable name="ee" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OperationCallExp"/>
+ <variable name="pe" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.PropertyCallExp"/>
+ <variable name="pve" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.VariableExp"/>
+ <variable name="pep" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Property"/>
+ <variable name="eo" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Operation"/>
+ <variable name="ave" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.VariableExp"/>
+ <when>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.1">
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.22/@variable.3"/>
+ <argument xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.22/@variable.2"/>
+ </conditionExpression>
+ </predicate>
+ </when>
+ <where>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.18">
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.22/@variable.5"/>
+ <argument xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.22/@variable.1"/>
+ </conditionExpression>
+ </predicate>
+ </where>
+ </rule>
+ <rule xsi:type="qvtr:Relation" name="RInvokerToMGuard">
+ <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RInvokerToMGuard.relations"
+ isCheckable="true" isEnforceable="false" typedModel="#qT.org.eclipse.qvtd.compiler.qvtr.relToCore.relations" rootVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.23/@variable.0 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.23/@variable.1 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.23/@variable.3">
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.23/@variable.0">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.23/@variable.0"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"/>
+ </pattern>
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.23/@variable.1 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.23/@variable.2">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationCallExp"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.23/@variable.1"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationCallExp">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#p.qvtrelation.RelationCallExp.argument">
+ <value xsi:type="qvtt:CollectionTemplateExp" type="#//@ownedPackages.1/@ownedClasses.20" bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.23/@variable.2"
+ referredCollectionType="http://www.eclipse.org/ocl/2015/Orphanage#//@ownedPackages.0/@ownedClasses.293"/>
+ </part>
+ </templateExpression>
+ </pattern>
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.23/@variable.3 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.23/@variable.4">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.23/@variable.3"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Rule.domain">
+ <value xsi:type="qvtt:CollectionTemplateExp" type="#//@ownedPackages.1/@ownedClasses.19" bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.23/@variable.4"
+ referredCollectionType="http://www.eclipse.org/ocl/2015/Orphanage#//@ownedPackages.0/@ownedClasses.291"/>
+ </part>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RInvokerToMGuard.core" isCheckable="true"
+ isEnforceable="true" typedModel="#qT.org.eclipse.qvtd.compiler.qvtr.relToCore.core" rootVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.23/@variable.5">
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.23/@variable.5">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.23/@variable.5"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern"/>
+ </pattern>
+ </domain>
+ <variable name="ir" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"/>
+ <variable name="ri" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationCallExp"/>
+ <variable name="aseq" type="#//@ownedPackages.1/@ownedClasses.20"/>
+ <variable name="r" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"/>
+ <variable name="dseq" type="#//@ownedPackages.1/@ownedClasses.19"/>
+ <variable name="mg" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern"/>
+ <where>
+ <predicate>
+ <conditionExpression xsi:type="pivot:IteratorExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredIteration="http://www.eclipse.org/ocl/2015/Library.oclas#i.ocl.Collection.forAll..T">
+ <ownedSource xsi:type="pivot:VariableExp" type="#//@ownedPackages.1/@ownedClasses.20" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.23/@variable.2"/>
+ <ownedBody xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.24">
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.23/@variable.0"/>
+ <argument xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.VariableExp"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.23/@where/@predicate.0/@conditionExpression/@ownedIterators.0"/>
+ <argument xsi:type="pivot:OperationCallExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OrderedCollection.at..ocl.Integer">
+ <ownedSource xsi:type="pivot:VariableExp" type="#//@ownedPackages.1/@ownedClasses.19" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.23/@variable.4"/>
+ <ownedArguments xsi:type="pivot:OperationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.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.20" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.23/@variable.2"/>
+ <ownedArguments xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.VariableExp"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.23/@where/@predicate.0/@conditionExpression/@ownedIterators.0"/>
+ </ownedArguments>
+ </argument>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.23/@variable.5"/>
+ </ownedBody>
+ <ownedIterators name="a" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.VariableExp"
+ representedParameter="http://www.eclipse.org/ocl/2015/Library.oclas#i0i.ocl.Collection.forAll..T"/>
+ </conditionExpression>
+ </predicate>
+ </where>
+ </rule>
+ <rule xsi:type="qvtr:Relation" name="RInvokerToMGuardPredicate">
+ <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RInvokerToMGuardPredicate.relations"
+ isCheckable="true" isEnforceable="false" typedModel="#qT.org.eclipse.qvtd.compiler.qvtr.relToCore.relations" rootVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.24/@variable.3 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.24/@variable.4 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.24/@variable.6">
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.24/@variable.3">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.24/@variable.3"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"/>
+ </pattern>
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.24/@variable.4 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.24/@variable.5">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.VariableExp"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.24/@variable.4"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.VariableExp">
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.VariableExp.referredVariable">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.24/@variable.5"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable">
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.24/@variable.2"/>
+ </part>
+ </value>
+ </part>
+ </templateExpression>
+ </pattern>
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.24/@variable.6 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.24/@variable.7">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.24/@variable.6"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#p.qvtrelation.RelationDomain.rootVariable">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.24/@variable.7"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/>
+ </part>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RInvokerToMGuardPredicate.core"
+ isCheckable="true" isEnforceable="true" typedModel="#qT.org.eclipse.qvtd.compiler.qvtr.relToCore.core" rootVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.24/@variable.8">
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.24/@variable.8 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.24/@variable.9 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.24/@variable.10 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.24/@variable.11 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.24/@variable.12 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.24/@variable.13 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.24/@variable.14 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.24/@variable.15 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.24/@variable.16">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.24/@variable.8"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Pattern.bindsTo">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.24/@variable.9"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable">
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name">
+ <value xsi:type="pivot:OperationCallExp" name="+" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.String.%43%..ocl.String">
+ <ownedSource xsi:type="pivot:PropertyCallExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.24/@variable.1"/>
+ </ownedSource>
+ <ownedArguments xsi:type="pivot:StringLiteralExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ stringSymbol="_v"/>
+ </value>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.TypedElement.type">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.24/@variable.1"/>
+ </part>
+ </value>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Pattern.predicate">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Predicate"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.24/@variable.10"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Predicate">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Predicate.conditionExpression">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OperationCallExp"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.24/@variable.11"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OperationCallExp">
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.CallExp.ownedSource">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.PropertyCallExp"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.24/@variable.12"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.PropertyCallExp">
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.CallExp.ownedSource">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.VariableExp"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.24/@variable.13"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.VariableExp">
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.VariableExp.referredVariable">
+ <value xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.24/@variable.9"/>
+ </part>
+ </value>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.PropertyCallExp.referredProperty">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Property"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.24/@variable.14"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Property">
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.24/@variable.2"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.Property.owningClass">
+ <value xsi:type="pivot:OperationCallExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.oclAsType..TT">
+ <ownedSource xsi:type="pivot:PropertyCallExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Type"
+ referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.TypedElement.type">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.24/@variable.9"/>
+ </ownedSource>
+ <ownedArguments xsi:type="pivot:TypeExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class"
+ referredType="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class"/>
+ </value>
+ </part>
+ </value>
+ </part>
+ </value>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.OperationCallExp.referredOperation">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Operation"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.24/@variable.15"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Operation">
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name">
+ <value xsi:type="pivot:StringLiteralExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ stringSymbol="="/>
+ </part>
+ </value>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.OperationCallExp.ownedArguments">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.VariableExp"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.24/@variable.16"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.VariableExp">
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.VariableExp.referredVariable">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.24/@variable.0"/>
+ </part>
+ </value>
+ </part>
+ </value>
+ </part>
+ </value>
+ </part>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <variable name="mdv" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/>
+ <variable name="tc" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class"/>
+ <variable name="vn" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"/>
+ <variable name="ir" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"/>
+ <variable name="ve" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.VariableExp"/>
+ <variable name="v" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/>
+ <variable name="d" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"/>
+ <variable name="dv" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/>
+ <variable name="mg" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern"/>
+ <variable name="vd" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/>
+ <variable name="pd" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Predicate"/>
+ <variable name="ee" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OperationCallExp"/>
+ <variable name="pe" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.PropertyCallExp"/>
+ <variable name="mve" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.VariableExp"/>
+ <variable name="pep" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Property"/>
+ <variable name="eo" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Operation"/>
+ <variable name="ave" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.VariableExp"/>
+ <when>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.1">
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.24/@variable.3"/>
+ <argument xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.24/@variable.1"/>
+ </conditionExpression>
+ </predicate>
+ </when>
+ <where>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.18">
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.24/@variable.7"/>
+ <argument xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.24/@variable.0"/>
+ </conditionExpression>
+ </predicate>
+ </where>
+ </rule>
+ <rule xsi:type="qvtr:Relation" name="RDomainPatternToMDBottomPattern">
+ <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RDomainPatternToMDBottomPattern.relations"
+ isCheckable="true" isEnforceable="false" typedModel="#qT.org.eclipse.qvtd.compiler.qvtr.relToCore.relations" rootVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.25/@variable.0 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.25/@variable.1">
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.25/@variable.0">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.25/@variable.0"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"/>
+ </pattern>
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.25/@variable.1">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.25/@variable.1"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"/>
+ </pattern>
+ </domain>
+ <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RDomainPatternToMDBottomPattern.core"
+ isCheckable="true" isEnforceable="true" typedModel="#qT.org.eclipse.qvtd.compiler.qvtr.relToCore.core" rootVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.25/@variable.2">
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.25/@variable.2 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.25/@variable.3 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.25/@variable.4 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.25/@variable.5">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.25/@variable.2"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#p.qvtcorebase.BottomPattern.area">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.CoreDomain"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.25/@variable.3"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.CoreDomain">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Domain.rule">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcore/model/QVTcore.ecore.oclas#T.qvtcore.Mapping"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.25/@variable.4"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcore/model/QVTcore.ecore.oclas#T.qvtcore.Mapping">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#p.qvtcorebase.Area.bottomPattern">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.25/@variable.5"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#p.qvtcorebase.BottomPattern.area">
+ <value xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcore/model/QVTcore.ecore.oclas#T.qvtcore.Mapping"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.25/@variable.4"/>
+ </part>
+ </value>
+ </part>
+ </value>
+ </part>
+ </value>
+ </part>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <variable name="r" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"/>
+ <variable name="te" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"/>
+ <variable name="db" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"/>
+ <variable name="cd" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.CoreDomain"/>
+ <variable name="m" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcore/model/QVTcore.ecore.oclas#T.qvtcore.Mapping"/>
+ <variable name="mb" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"/>
+ <where>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.39">
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.25/@variable.0"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.25/@variable.1"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.25/@variable.2"/>
+ </conditionExpression>
+ </predicate>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.42">
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.25/@variable.1"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.25/@variable.2"/>
+ </conditionExpression>
+ </predicate>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.40">
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.25/@variable.0"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.25/@variable.1"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.25/@variable.2"/>
+ </conditionExpression>
+ </predicate>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.41">
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.25/@variable.0"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.25/@variable.1"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.25/@variable.5"/>
+ </conditionExpression>
+ </predicate>
+ </where>
+ </rule>
+ <rule xsi:type="qvtr:Relation" name="RDomainToMDBottomForEnforcement">
+ <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RDomainToMDBottomForEnforcement.relations"
+ isCheckable="true" isEnforceable="false" typedModel="#qT.org.eclipse.qvtd.compiler.qvtr.relToCore.relations" rootVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.26/@variable.5 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.26/@variable.6 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.26/@variable.7 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.26/@variable.9 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.26/@variable.10">
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.26/@variable.5">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.26/@variable.5"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"/>
+ </pattern>
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.26/@variable.6">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.26/@variable.6"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"/>
+ </pattern>
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.26/@variable.7 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.26/@variable.8">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.26/@variable.7"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#p.qvttemplate.TemplateExp.bindsTo">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.26/@variable.8"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/>
+ </part>
+ </templateExpression>
+ </pattern>
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.26/@variable.9">
+ <templateExpression xsi:type="qvtt:CollectionTemplateExp" type="#//@ownedPackages.1/@ownedClasses.10" bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.26/@variable.9"
+ referredCollectionType="http://www.eclipse.org/ocl/2015/Orphanage#//@ownedPackages.0/@ownedClasses.286"/>
+ </pattern>
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.26/@variable.10">
+ <templateExpression xsi:type="qvtt:CollectionTemplateExp" type="#//@ownedPackages.1/@ownedClasses.0" bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.26/@variable.10"
+ referredCollectionType="http://www.eclipse.org/ocl/2015/Orphanage#//@ownedPackages.0/@ownedClasses.285"/>
+ </pattern>
+ </domain>
+ <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RDomainToMDBottomForEnforcement.core"
+ isCheckable="true" isEnforceable="true" typedModel="#qT.org.eclipse.qvtd.compiler.qvtr.relToCore.core" rootVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.26/@variable.11">
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.26/@variable.11 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.26/@variable.12 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.26/@variable.13 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.26/@variable.14">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.26/@variable.11"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#p.qvtcorebase.BottomPattern.area">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.CoreDomain"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.26/@variable.12"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.CoreDomain">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Domain.rule">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcore/model/QVTcore.ecore.oclas#T.qvtcore.Mapping"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.26/@variable.13"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcore/model/QVTcore.ecore.oclas#T.qvtcore.Mapping">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#p.qvtcorebase.Area.bottomPattern">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.26/@variable.14"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#p.qvtcorebase.BottomPattern.area">
+ <value xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcore/model/QVTcore.ecore.oclas#T.qvtcore.Mapping"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.26/@variable.13"/>
+ </part>
+ </value>
+ </part>
+ </value>
+ </part>
+ </value>
+ </part>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <variable name="predicatesWithVarBindings" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.10">
+ <ownedInit xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.10" referredOperation="#o.org.eclipse.qvtd.compiler.qvtr.relToCore.filterOutPredicatesThatReferToVars..$$.Set..$$.Set">
+ <ownedArguments xsi:type="pivot:VariableExp" type="#//@ownedPackages.1/@ownedClasses.10" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.26/@variable.9"/>
+ <ownedArguments xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.26/@variable.1"/>
+ </ownedInit>
+ </variable>
+ <variable name="remainingUnBoundDomainVars" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0">
+ <ownedInit xsi:type="pivot:OperationCallExp" name="-" type="#//@ownedPackages.1/@ownedClasses.0" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Set.%45%..$$.UniqueCollection">
+ <ownedSource xsi:type="pivot:VariableExp" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.26/@variable.10"/>
+ <ownedArguments xsi:type="pivot:CollectionLiteralExp" type="#//@ownedPackages.1/@ownedClasses.6" kind="Set">
+ <ownedParts xsi:type="pivot:CollectionItem" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable">
+ <ownedItem xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.26/@variable.8"/>
+ </ownedParts>
+ </ownedArguments>
+ </ownedInit>
+ </variable>
+ <variable name="remainingPredicatesWithoutVarBindings" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.10">
+ <ownedInit xsi:type="pivot:OperationCallExp" name="-" type="#//@ownedPackages.1/@ownedClasses.10" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Set.%45%..$$.UniqueCollection">
+ <ownedSource xsi:type="pivot:VariableExp" type="#//@ownedPackages.1/@ownedClasses.10" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.26/@variable.9"/>
+ <ownedArguments xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.10" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.26/@variable.0"/>
+ </ownedInit>
+ </variable>
+ <variable name="tcv" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/>
+ <variable name="mv" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/>
+ <variable name="r" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"/>
+ <variable name="rd" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"/>
+ <variable name="te" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"/>
+ <variable name="v" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/>
+ <variable name="predicatesWithoutVarBindings" type="#//@ownedPackages.1/@ownedClasses.10"/>
+ <variable name="unboundDomainVars" type="#//@ownedPackages.1/@ownedClasses.0"/>
+ <variable name="db" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"/>
+ <variable name="cd" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.CoreDomain"/>
+ <variable name="m" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcore/model/QVTcore.ecore.oclas#T.qvtcore.Mapping"/>
+ <variable name="mb" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"/>
+ <where>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.30">
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.26/@variable.5"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.26/@variable.7"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.26/@variable.11"/>
+ </conditionExpression>
+ </predicate>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.27">
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.26/@variable.5"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.26/@variable.6"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.26/@variable.7"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.26/@variable.14"/>
+ </conditionExpression>
+ </predicate>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.36">
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.26/@variable.5"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.26/@variable.7"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.26/@variable.6"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcore/model/QVTcore.ecore.oclas#T.qvtcore.Mapping"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.26/@variable.13"/>
+ </conditionExpression>
+ </predicate>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.38">
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.26/@variable.5"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.26/@variable.6"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.26/@variable.7"/>
+ <argument xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.10" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.26/@variable.2"/>
+ <argument xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.26/@variable.1"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcore/model/QVTcore.ecore.oclas#T.qvtcore.Mapping"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.26/@variable.13"/>
+ </conditionExpression>
+ </predicate>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.28">
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.26/@variable.5"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.26/@variable.6"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.26/@variable.7"/>
+ <argument xsi:type="pivot:VariableExp" type="#//@ownedPackages.1/@ownedClasses.10" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.26/@variable.9"/>
+ <argument xsi:type="pivot:VariableExp" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.26/@variable.10"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.26/@variable.14"/>
+ </conditionExpression>
+ </predicate>
+ </where>
+ </rule>
+ <rule xsi:type="qvtr:Relation" name="RDomainVarToMDBottomAssignmnetForEnforcement">
+ <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RDomainVarToMDBottomAssignmnetForEnforcement.relations"
+ isCheckable="true" isEnforceable="false" typedModel="#qT.org.eclipse.qvtd.compiler.qvtr.relToCore.relations" rootVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.27/@variable.2 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.27/@variable.3 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.27/@variable.4">
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.27/@variable.2">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.27/@variable.2"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"/>
+ </pattern>
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.27/@variable.3">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.27/@variable.3"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"/>
+ </pattern>
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.27/@variable.4 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.27/@variable.5">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.27/@variable.4"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#p.qvttemplate.TemplateExp.bindsTo">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.27/@variable.5"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/>
+ </part>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RDomainVarToMDBottomAssignmnetForEnforcement.core"
+ isCheckable="true" isEnforceable="true" typedModel="#qT.org.eclipse.qvtd.compiler.qvtr.relToCore.core" rootVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.27/@variable.6">
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.27/@variable.6 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.27/@variable.7 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.27/@variable.8 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.27/@variable.9 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.27/@variable.10">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.27/@variable.6"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#p.qvtcorebase.BottomPattern.assignment">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.PropertyAssignment"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.27/@variable.7"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.PropertyAssignment">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#p.qvtcorebase.NavigationAssignment.slotExpression">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.VariableExp"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.27/@variable.8"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.VariableExp">
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.VariableExp.referredVariable">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.27/@variable.0"/>
+ </part>
+ </value>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#p.qvtcorebase.PropertyAssignment.targetProperty">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Property"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.27/@variable.9"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Property">
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name">
+ <value xsi:type="pivot:PropertyCallExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.27/@variable.5"/>
+ </value>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.Property.owningClass">
+ <value xsi:type="pivot:OperationCallExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.oclAsType..TT">
+ <ownedSource xsi:type="pivot:PropertyCallExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Type"
+ referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.TypedElement.type">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.27/@variable.0"/>
+ </ownedSource>
+ <ownedArguments xsi:type="pivot:TypeExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class"
+ referredType="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class"/>
+ </value>
+ </part>
+ </value>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#p.qvtcorebase.Assignment.value">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.VariableExp"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.27/@variable.10"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.VariableExp">
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.VariableExp.referredVariable">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.27/@variable.1"/>
+ </part>
+ </value>
+ </part>
+ </value>
+ </part>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <variable name="tcv" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/>
+ <variable name="mv" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/>
+ <variable name="r" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"/>
+ <variable name="rd" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"/>
+ <variable name="te" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"/>
+ <variable name="v" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/>
+ <variable name="mb" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"/>
+ <variable name="a" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.PropertyAssignment"/>
+ <variable name="ve1" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.VariableExp"/>
+ <variable name="tp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Property"/>
+ <variable name="ve2" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.VariableExp"/>
+ <where>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.48">
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.27/@variable.2"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.27/@variable.3"/>
+ <argument xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.27/@variable.0"/>
+ </conditionExpression>
+ </predicate>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.18">
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.27/@variable.5"/>
+ <argument xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.27/@variable.1"/>
+ </conditionExpression>
+ </predicate>
+ </where>
+ </rule>
+ <rule xsi:type="qvtr:Relation" name="RDomainToMBottomPredicateForEnforcement">
+ <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RDomainToMBottomPredicateForEnforcement.relations"
+ isCheckable="true" isEnforceable="false" typedModel="#qT.org.eclipse.qvtd.compiler.qvtr.relToCore.relations" rootVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.28/@variable.4 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.28/@variable.5 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.28/@variable.6 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.28/@variable.8 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.28/@variable.9">
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.28/@variable.4">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.28/@variable.4"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"/>
+ </pattern>
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.28/@variable.5">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.28/@variable.5"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"/>
+ </pattern>
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.28/@variable.6 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.28/@variable.7">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.28/@variable.6"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#p.qvttemplate.TemplateExp.bindsTo">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.28/@variable.7"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/>
+ </part>
+ </templateExpression>
+ </pattern>
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.28/@variable.8">
+ <templateExpression xsi:type="qvtt:CollectionTemplateExp" type="#//@ownedPackages.1/@ownedClasses.10" bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.28/@variable.8"
+ referredCollectionType="http://www.eclipse.org/ocl/2015/Orphanage#//@ownedPackages.0/@ownedClasses.286"/>
+ </pattern>
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.28/@variable.9">
+ <templateExpression xsi:type="qvtt:CollectionTemplateExp" type="#//@ownedPackages.1/@ownedClasses.0" bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.28/@variable.9"
+ referredCollectionType="http://www.eclipse.org/ocl/2015/Orphanage#//@ownedPackages.0/@ownedClasses.285"/>
+ </pattern>
+ </domain>
+ <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RDomainToMBottomPredicateForEnforcement.core"
+ isCheckable="true" isEnforceable="true" typedModel="#qT.org.eclipse.qvtd.compiler.qvtr.relToCore.core" rootVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.28/@variable.10">
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.28/@variable.10 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.28/@variable.11 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.28/@variable.12 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.28/@variable.13 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.28/@variable.14 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.28/@variable.15 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.28/@variable.16 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.28/@variable.17">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.28/@variable.10"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Pattern.predicate">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Predicate"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.28/@variable.11"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Predicate">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Predicate.conditionExpression">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OperationCallExp"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.28/@variable.12"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OperationCallExp">
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.CallExp.ownedSource">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.PropertyCallExp"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.28/@variable.13"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.PropertyCallExp">
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.CallExp.ownedSource">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.VariableExp"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.28/@variable.14"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.VariableExp">
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.VariableExp.referredVariable">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.28/@variable.2"/>
+ </part>
+ </value>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.PropertyCallExp.referredProperty">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Property"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.28/@variable.15"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Property">
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name">
+ <value xsi:type="pivot:PropertyCallExp" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.28/@variable.7"/>
+ </value>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.Property.owningClass">
+ <value xsi:type="pivot:OperationCallExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.oclAsType..TT">
+ <ownedSource xsi:type="pivot:PropertyCallExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Type"
+ referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.TypedElement.type">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.28/@variable.2"/>
+ </ownedSource>
+ <ownedArguments xsi:type="pivot:TypeExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class"
+ referredType="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class"/>
+ </value>
+ </part>
+ </value>
+ </part>
+ </value>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.OperationCallExp.referredOperation">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Operation"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.28/@variable.16"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Operation">
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name">
+ <value xsi:type="pivot:StringLiteralExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"
+ stringSymbol="="/>
+ </part>
+ </value>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.OperationCallExp.ownedArguments">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.VariableExp"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.28/@variable.17"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.VariableExp">
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.VariableExp.referredVariable">
+ <value xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.28/@variable.3"/>
+ </part>
+ </value>
+ </part>
+ </value>
+ </part>
+ </value>
+ </part>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <variable name="predicatesWithVarBindings" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.10"/>
+ <variable name="remainingUnBoundDomainVars" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0"/>
+ <variable name="tcv" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/>
+ <variable name="mv" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/>
+ <variable name="r" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"/>
+ <variable name="rd" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"/>
+ <variable name="te" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"/>
+ <variable name="v" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/>
+ <variable name="predicatesWithoutVarBindings" type="#//@ownedPackages.1/@ownedClasses.10"/>
+ <variable name="unboundDomainVars" type="#//@ownedPackages.1/@ownedClasses.0"/>
+ <variable name="mb" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"/>
+ <variable name="pd" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Predicate"/>
+ <variable name="ee" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OperationCallExp"/>
+ <variable name="pe" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.PropertyCallExp"/>
+ <variable name="pve" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.VariableExp"/>
+ <variable name="pep" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Property"/>
+ <variable name="eo" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Operation"/>
+ <variable name="ave" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.VariableExp"/>
+ <where>
+ <predicate>
+ <conditionExpression xsi:type="pivot:OperationCallExp" name="=" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Set.%61%..ocl.OclSelf">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.28/@variable.1"/>
+ <ownedArguments xsi:type="pivot:OperationCallExp" name="-" type="#//@ownedPackages.1/@ownedClasses.0" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Set.%45%..$$.UniqueCollection">
+ <ownedSource xsi:type="pivot:VariableExp" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.28/@variable.9"/>
+ <ownedArguments xsi:type="pivot:CollectionLiteralExp" type="#//@ownedPackages.1/@ownedClasses.6" kind="Set">
+ <ownedParts xsi:type="pivot:CollectionItem" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable">
+ <ownedItem xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.28/@variable.7"/>
+ </ownedParts>
+ </ownedArguments>
+ </ownedArguments>
+ </conditionExpression>
+ </predicate>
+ <predicate>
+ <conditionExpression xsi:type="pivot:OperationCallExp" name="=" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Set.%61%..ocl.OclSelf">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.10" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.28/@variable.0"/>
+ <ownedArguments xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.10" referredOperation="#o.org.eclipse.qvtd.compiler.qvtr.relToCore.filterOutPredicatesThatReferToVars..$$.Set..$$.Set">
+ <ownedArguments xsi:type="pivot:VariableExp" type="#//@ownedPackages.1/@ownedClasses.10" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.28/@variable.8"/>
+ <ownedArguments xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.28/@variable.1"/>
+ </ownedArguments>
+ </conditionExpression>
+ </predicate>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.48">
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.28/@variable.4"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.28/@variable.5"/>
+ <argument xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.28/@variable.2"/>
+ </conditionExpression>
+ </predicate>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.18">
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.28/@variable.7"/>
+ <argument xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.28/@variable.3"/>
+ </conditionExpression>
+ </predicate>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.29">
+ <argument xsi:type="pivot:OperationCallExp" type="#//@ownedPackages.1/@ownedClasses.18" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Collection.asSequence">
+ <ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.10" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.28/@variable.0"/>
+ </argument>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.28/@variable.10"/>
+ </conditionExpression>
+ </predicate>
+ </where>
+ </rule>
+ <rule xsi:type="qvtr:Relation" name="RPredicateSetToMBPredicateSet">
+ <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RPredicateSetToMBPredicateSet.relations"
+ isCheckable="true" isEnforceable="false" typedModel="#qT.org.eclipse.qvtd.compiler.qvtr.relToCore.relations" rootVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.29/@variable.1">
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.29/@variable.1 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.29/@variable.2 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.29/@variable.3 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.29/@variable.4">
+ <templateExpression xsi:type="qvtt:CollectionTemplateExp" type="#//@ownedPackages.1/@ownedClasses.18" bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.29/@variable.1"
+ referredCollectionType="http://www.eclipse.org/ocl/2015/Orphanage#//@ownedPackages.0/@ownedClasses.295" rest="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.29/@variable.4">
+ <member xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Predicate"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.29/@variable.2"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Predicate">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Predicate.conditionExpression">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OCLExpression"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.29/@variable.3"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OCLExpression"/>
+ </part>
+ </member>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RPredicateSetToMBPredicateSet.core"
+ isCheckable="true" isEnforceable="true" typedModel="#qT.org.eclipse.qvtd.compiler.qvtr.relToCore.core" rootVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.29/@variable.5">
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.29/@variable.5 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.29/@variable.6 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.29/@variable.7">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.29/@variable.5"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Pattern.predicate">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Predicate"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.29/@variable.6"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Predicate">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Predicate.conditionExpression">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OCLExpression"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.29/@variable.7"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OCLExpression"/>
+ </part>
+ </value>
+ </part>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <variable name="rpRest" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.18"/>
+ <variable name="predSeq" type="#//@ownedPackages.1/@ownedClasses.18"/>
+ <variable name="rp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Predicate"/>
+ <variable name="re" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OCLExpression"/>
+ <variable name="_3" type="#//@ownedPackages.1/@ownedClasses.18"/>
+ <variable name="mb" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"/>
+ <variable name="mp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Predicate"/>
+ <variable name="me" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OCLExpression"/>
+ <where>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.49">
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OCLExpression"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.29/@variable.3"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OCLExpression"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.29/@variable.7"/>
+ </conditionExpression>
+ </predicate>
+ <predicate>
+ <conditionExpression xsi:type="qvtr:RelationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredRelation="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.29">
+ <argument xsi:type="pivot:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.18" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.29/@variable.0"/>
+ <argument xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.29/@variable.5"/>
+ </conditionExpression>
+ </predicate>
+ </where>
+ </rule>
+ <rule xsi:type="qvtr:Relation" name="RDomainToMDBottomForEnforcementOfIdentityProp">
+ <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RDomainToMDBottomForEnforcementOfIdentityProp.relations"
+ isCheckable="true" isEnforceable="false" typedModel="#qT.org.eclipse.qvtd.compiler.qvtr.relToCore.relations" rootVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.30/@variable.0 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.30/@variable.1">
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.30/@variable.0">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.30/@variable.0"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"/>
+ </pattern>
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.30/@variable.1 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.30/@variable.2 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.30/@variable.3 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.30/@variable.4 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.30/@variable.5 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.30/@variable.6">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.30/@variable.1"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#p.qvttemplate.TemplateExp.bindsTo">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.30/@variable.2"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable">
+ <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.TypedElement.type">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.30/@variable.3"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class"/>
+ </part>
+ </value>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#p.qvttemplate.ObjectTemplateExp.part">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.PropertyTemplateItem"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.30/@variable.4"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.PropertyTemplateItem">
+ <where xsi:type="pivot:OperationCallExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#Boolean"
+ referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Collection.includes..ocl.OclAny">
+ <ownedSource xsi:type="pivot:PropertyCallExp" type="#//@ownedPackages.1/@ownedClasses.21" referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#p.qvtrelation.Key.part">
+ <ownedSource xsi:type="pivot:OppositePropertyCallExp" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Key"
+ referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#p.qvtrelation.Key.identifies">
+ <ownedSource xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.30/@variable.3"/>
+ </ownedSource>
+ </ownedSource>
+ <ownedArguments xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Property"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.30/@variable.5"/>
+ </where>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#p.qvttemplate.PropertyTemplateItem.referredProperty">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Property"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.30/@variable.5"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Property"/>
+ </part>
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#p.qvttemplate.PropertyTemplateItem.value">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OCLExpression"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.30/@variable.6"
+ referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OCLExpression"/>
+ </part>
+ </value>
+ </part>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RDomainToMDBottomForEnforcementOfIdentityProp.core"
+ isCheckable="true" isEnforceable="true" typedModel="#qT.org.eclipse.qvtd.compiler.qvtr.relToCore.core" rootVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.30/@variable.7">
+ <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.30/@variable.7 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.30/@variable.8 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.30/@variable.9 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.30/@variable.10">
+ <templateExpression xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.30/@variable.7"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#p.qvtcorebase.BottomPattern.area">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.CoreDomain"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.30/@variable.8"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.CoreDomain">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Domain.rule">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcore/model/QVTcore.ecore.oclas#T.qvtcore.Mapping"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.30/@variable.9"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcore/model/QVTcore.ecore.oclas#T.qvtcore.Mapping">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#p.qvtcorebase.Area.bottomPattern">
+ <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"
+ bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.30/@variable.10"
+ referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern">
+ <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#p.qvtcorebase.BottomPattern.area">
+ <value xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcore/model/QVTcore.ecore.oclas#T.qvtcore.Mapping"
+ referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.30/@variable.9"/>
+ </part>
+ </value>
+ </part>
+ </value>
+ </part>
+ </value>
+ </part>
+ </templateExpression>
+ </pattern>
+ </domain>
+ <variable name="r" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"/>
+ <variable name="te" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"/>
+ <variable name="v" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/>
+ <variable name="c" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class"/>
+ <variable name="pt" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.PropertyTemplateItem"/>
+ <variable name="pp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Property"/>
+ <variable name="e" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OCLExpression"/>
+ <variable name="db" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"/>
+ <variable name="cd" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.CoreDomain"/>
+ <variable name="m" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcore/model/QVTcore.ecore.oclas#T.qvtcore.Mapping"/>
+ <variable name="mb" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"/>
+ <where>
+ <predic