diff options
author | Ed Willink | 2016-05-03 20:50:36 +0000 |
---|---|---|
committer | Ed Willink | 2016-05-05 13:32:13 +0000 |
commit | 01667e893a7dd149a656483233d06f59a856d584 (patch) | |
tree | d9dc1d4b122d15df610be798fff52a10b793bd84 | |
parent | 870063bf97055385918a4f3ecc9c95c1dd4452a3 (diff) | |
download | org.eclipse.qvtd-01667e893a7dd149a656483233d06f59a856d584.tar.gz org.eclipse.qvtd-01667e893a7dd149a656483233d06f59a856d584.tar.xz org.eclipse.qvtd-01667e893a7dd149a656483233d06f59a856d584.zip |
[486722] Ongoing refactoring
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="<>" 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="<>" 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> + <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.32"> + <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.30/@variable.2"/> + <argument 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"/> + <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.30/@variable.6"/> + <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.30/@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.33"> + <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.30/@variable.0"/> + <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.30/@variable.2"/> + <argument 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"/> + <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.30/@variable.6"/> + <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.30/@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.34"> + <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.30/@variable.0"/> + <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.30/@variable.2"/> + <argument 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"/> + <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.30/@variable.6"/> + <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.30/@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.35"> + <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.30/@variable.0"/> + <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.30/@variable.2"/> + <argument 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"/> + <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.30/@variable.6"/> + <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.30/@variable.10"/> + </conditionExpression> + </predicate> + </where> + </rule> + <rule xsi:type="qvtr:Relation" name="RDomainToMDBottomForEnforcementOfIdentityPropObject"> + <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RDomainToMDBottomForEnforcementOfIdentityPropObject.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.31/@variable.3 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.31/@variable.4 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.31/@variable.5"> + <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.31/@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.31/@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.31/@variable.4"> + <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.31/@variable.4" + 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.31/@variable.5 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.31/@variable.6 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.31/@variable.7 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.31/@variable.8 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.31/@variable.9 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.31/@variable.10 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.31/@variable.11"> + <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.31/@variable.5" + referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"> + <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.31/@variable.7"/> + </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.31/@variable.9"/> + </where> + <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.31/@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.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.31/@variable.7" + 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.31/@variable.8" + 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.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.31/@variable.9" + 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.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp" + bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.31/@variable.10" + 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.31/@variable.11" + referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/> + </part> + </value> + </part> + </value> + </part> + </templateExpression> + </pattern> + </domain> + <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RDomainToMDBottomForEnforcementOfIdentityPropObject.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.31/@variable.12"> + <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.31/@variable.12 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.31/@variable.13 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.31/@variable.14 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.31/@variable.15 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.31/@variable.16"> + <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.31/@variable.12" + 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.31/@variable.13" + 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.31/@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.31/@variable.1"/> + </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.31/@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.31/@variable.11"/> + </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.31/@variable.1"/> + </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.31/@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.31/@variable.0"/> + </part> + </value> + </part> + </value> + </part> + </templateExpression> + </pattern> + </domain> + <variable name="mtv" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/> + <variable name="tcv" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/> + <variable name="seqForAssignment" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.22"/> + <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="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.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="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.31/@variable.3"/> + <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.31/@variable.4"/> + <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.31/@variable.1"/> + </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.31/@variable.11"/> + <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.31/@variable.0"/> + </conditionExpression> + </predicate> + </where> + </rule> + <rule xsi:type="qvtr:Relation" name="RDomainPatternExprToMappingDomainAssignment"> + <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RDomainPatternExprToMappingDomainAssignment.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.32/@variable.2 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.32/@variable.3 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.32/@variable.4"> + <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.32/@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.32/@variable.2" + referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/> + </pattern> + <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.32/@variable.3"> + <templateExpression 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.32/@variable.3" + 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.32/@variable.1"/> + </part> + </templateExpression> + </pattern> + <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.32/@variable.4"> + <templateExpression 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.32/@variable.4" + referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OCLExpression"> + <where xsi:type="pivot:OperationCallExp" name="and" 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.and..ocl.Boolean"> + <ownedSource 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.32/@variable.4"/> + <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> + </ownedSource> + <ownedArguments 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.32/@variable.4"/> + <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"/> + </ownedSource> + </ownedArguments> + </where> + </templateExpression> + </pattern> + </domain> + <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RDomainPatternExprToMappingDomainAssignment.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.32/@variable.5"> + <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.32/@variable.5 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.32/@variable.6 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.32/@variable.7 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.32/@variable.8 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.32/@variable.9"> + <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.32/@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.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.32/@variable.6" + 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.32/@variable.7" + 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.32/@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.32/@variable.8" + 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.32/@variable.1"/> + </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.32/@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.OCLExpression" + bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.32/@variable.9" + referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OCLExpression"/> + </part> + </value> + </part> + </templateExpression> + </pattern> + </domain> + <variable name="mv" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/> + <variable name="pn" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"/> + <variable name="v" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/> + <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="a" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.PropertyAssignment"/> + <variable name="ve" 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="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.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.32/@variable.2"/> + <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.32/@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.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.32/@variable.4"/> + <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.32/@variable.9"/> + </conditionExpression> + </predicate> + </where> + </rule> + <rule xsi:type="qvtr:Relation" name="RDomainPatternExprToMappingDomainVarAssignment"> + <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RDomainPatternExprToMappingDomainVarAssignment.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.33/@variable.4 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.33/@variable.5 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.33/@variable.6 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.33/@variable.7"> + <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.33/@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.33/@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.33/@variable.5"> + <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.33/@variable.5" + referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/> + </pattern> + <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.33/@variable.6"> + <templateExpression 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.33/@variable.6" + 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.33/@variable.0"/> + </part> + </templateExpression> + </pattern> + <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.33/@variable.7"> + <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.33/@variable.7" + referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.VariableExp"> + <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.Collection.includes..ocl.OclAny"> + <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.33/@variable.3"/> + <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:VariableExp" 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.33/@variable.7"/> + </ownedArguments> + </ownedSource> + </where> + <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.33/@variable.1"/> + </part> + </templateExpression> + </pattern> + </domain> + <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RDomainPatternExprToMappingDomainVarAssignment.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.33/@variable.8"> + <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.33/@variable.8 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.33/@variable.9 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.33/@variable.10 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.33/@variable.11 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.33/@variable.12 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.33/@variable.13"> + <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.33/@variable.8" + 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.realizedVariable"> + <value 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.33/@variable.9" + referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.RealizedVariable"/> + </part> + <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.33/@variable.10" + 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.33/@variable.11" + 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.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.RealizedVariable" + referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.33/@variable.9"/> + </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.33/@variable.12" + 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.33/@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.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.RealizedVariable" + referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.33/@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> + <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.33/@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" 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.33/@variable.2"/> + </part> + </value> + </part> + </value> + </part> + </templateExpression> + </pattern> + </domain> + <variable name="pn" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"/> + <variable name="rev" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/> + <variable name="mev" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/> + <variable name="sharedDomainVars" 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="v" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/> + <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.VariableExp"/> + <variable name="db" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"/> + <variable name="mv" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.RealizedVariable"/> + <variable name="a" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.PropertyAssignment"/> + <variable name="ve" 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="me" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.VariableExp"/> + <when> + <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.33/@variable.3"/> + <ownedArguments 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.33/@variable.4"/> + </ownedArguments> + </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.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.33/@variable.5"/> + <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.33/@variable.9"/> + </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" 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.33/@variable.1"/> + <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.33/@variable.2"/> + </conditionExpression> + </predicate> + </where> + </rule> + <rule xsi:type="qvtr:Relation" name="RDomainPatternExprToMappingDomainTemplateVarAssignment"> + <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RDomainPatternExprToMappingDomainTemplateVarAssignment.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.34/@variable.4 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.34/@variable.5 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.34/@variable.6 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.34/@variable.7"> + <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.34/@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.34/@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.34/@variable.5"> + <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.34/@variable.5" + referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/> + </pattern> + <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.34/@variable.6"> + <templateExpression 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.34/@variable.6" + 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.34/@variable.0"/> + </part> + </templateExpression> + </pattern> + <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.34/@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.34/@variable.7" + referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"> + <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.Collection.includes..ocl.OclAny"> + <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.34/@variable.3"/> + <ownedArguments 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.34/@variable.1"/> + </ownedSource> + </where> + <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#p.qvttemplate.TemplateExp.bindsTo"> + <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.34/@variable.1"/> + </part> + </templateExpression> + </pattern> + </domain> + <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RDomainPatternExprToMappingDomainTemplateVarAssignment.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.34/@variable.8"> + <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.34/@variable.8 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.34/@variable.9 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.34/@variable.10 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.34/@variable.11 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.34/@variable.12 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.34/@variable.13"> + <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.34/@variable.8" + 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.realizedVariable"> + <value 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.34/@variable.9" + referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.RealizedVariable"/> + </part> + <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.34/@variable.10" + 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.34/@variable.11" + 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.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.RealizedVariable" + referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.34/@variable.9"/> + </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.34/@variable.12" + 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.34/@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.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.RealizedVariable" + referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.34/@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> + <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.34/@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" 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.34/@variable.2"/> + </part> + </value> + </part> + </value> + </part> + </templateExpression> + </pattern> + </domain> + <variable name="pn" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"/> + <variable name="rev" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/> + <variable name="mev" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/> + <variable name="sharedDomainVars" 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="v" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/> + <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.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="mv" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.RealizedVariable"/> + <variable name="a" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.PropertyAssignment"/> + <variable name="ve" 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="me" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.VariableExp"/> + <when> + <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.34/@variable.3"/> + <ownedArguments 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.34/@variable.4"/> + </ownedArguments> + </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.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.34/@variable.5"/> + <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.34/@variable.9"/> + </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" 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.34/@variable.1"/> + <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.34/@variable.2"/> + </conditionExpression> + </predicate> + </where> + </rule> + <rule xsi:type="qvtr:Relation" name="RDomainPatternExprToMappingBottomVarAssignment"> + <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RDomainPatternExprToMappingBottomVarAssignment.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.35/@variable.4 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.35/@variable.5 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.35/@variable.6 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.35/@variable.7"> + <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.35/@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.35/@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.35/@variable.5"> + <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.35/@variable.5" + referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/> + </pattern> + <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.35/@variable.6"> + <templateExpression 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.35/@variable.6" + 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.35/@variable.0"/> + </part> + </templateExpression> + </pattern> + <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.35/@variable.7"> + <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.35/@variable.7" + referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.VariableExp"> + <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:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.35/@variable.3"/> + <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:VariableExp" 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.35/@variable.7"/> + </ownedArguments> + </where> + <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.35/@variable.1"/> + </part> + </templateExpression> + </pattern> + </domain> + <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RDomainPatternExprToMappingBottomVarAssignment.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.35/@variable.8"> + <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.35/@variable.8 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.35/@variable.9 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.35/@variable.10 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.35/@variable.11 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.35/@variable.12 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.35/@variable.13"> + <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.35/@variable.8" + 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.realizedVariable"> + <value 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.35/@variable.9" + referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.RealizedVariable"/> + </part> + <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.35/@variable.10" + 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.35/@variable.11" + 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.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.RealizedVariable" + referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.35/@variable.9"/> + </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.35/@variable.12" + 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.35/@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.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.RealizedVariable" + referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.35/@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> + <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.35/@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" 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.35/@variable.2"/> + </part> + </value> + </part> + </value> + </part> + </templateExpression> + </pattern> + </domain> + <variable name="pn" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"/> + <variable name="rev" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/> + <variable name="mev" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/> + <variable name="sharedDomainVars" 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="v" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/> + <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.VariableExp"/> + <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.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.RealizedVariable"/> + <variable name="a" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.PropertyAssignment"/> + <variable name="ve" 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="me" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.VariableExp"/> + <when> + <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.35/@variable.3"/> + <ownedArguments 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.35/@variable.4"/> + </ownedArguments> + </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.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.35/@variable.5"/> + <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.35/@variable.9"/> + </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" 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.35/@variable.1"/> + <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.35/@variable.2"/> + </conditionExpression> + </predicate> + </where> + </rule> + <rule xsi:type="qvtr:Relation" name="RDomainToMDBottomForEnforcementOfNonIdentityPropPrimitive"> + <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RDomainToMDBottomForEnforcementOfNonIdentityPropPrimitive.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.36/@variable.2 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.36/@variable.4 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.36/@variable.10"> + <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.36/@variable.2 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.36/@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.36/@variable.2" + 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="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.36/@variable.3" + referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationalTransformation"/> + </part> + </templateExpression> + </pattern> + <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.36/@variable.4 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.36/@variable.5 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.36/@variable.6 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.36/@variable.7 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.36/@variable.8 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.36/@variable.9"> + <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.36/@variable.4" + referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"> + <where xsi:type="pivot:OperationCallExp" name="and" 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.and..ocl.Boolean"> + <ownedSource 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.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.36/@variable.6"/> + </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.36/@variable.8"/> + </ownedSource> + </ownedSource> + <ownedArguments 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.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/@rule.36/@variable.9"/> + <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.TemplateExp"/> + </ownedSource> + </ownedArguments> + </where> + <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.36/@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.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.36/@variable.6" + 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.36/@variable.7" + 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.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.36/@variable.8" + 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.36/@variable.1"/> + </part> + </value> + </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.36/@variable.9" + referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OCLExpression"/> + </part> + </value> + </part> + </templateExpression> + </pattern> + <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.36/@variable.10 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.36/@variable.11 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.36/@variable.12"> + <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.36/@variable.10" + 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.36/@variable.11" + 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.36/@variable.12" + referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"/> + </part> + </value> + </part> + </templateExpression> + </pattern> + </domain> + <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RDomainToMDBottomForEnforcementOfNonIdentityPropPrimitive.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.36/@variable.13"> + <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.36/@variable.13 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.36/@variable.14 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.36/@variable.15 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.36/@variable.16 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.36/@variable.17 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.36/@variable.18 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.36/@variable.19 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.36/@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.36/@variable.13" + referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcore/model/QVTcore.ecore.oclas#T.qvtcore.Mapping"> + <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcore/model/QVTcore.ecore.oclas#p.qvtcore.Mapping.local"> + <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.36/@variable.14" + referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcore/model/QVTcore.ecore.oclas#T.qvtcore.Mapping"> + <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" 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.36/@variable.13"/> + </ownedSource> + <ownedArguments xsi:type="pivot:StringLiteralExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String" + stringSymbol="_forNonIdentityProp"/> + </value> + </part> + <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Rule.transformation"> + <value 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.36/@variable.15" + referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Transformation"/> + </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.36/@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.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.36/@variable.17" + 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.36/@variable.18" + 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.36/@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.36/@variable.19" + 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.36/@variable.1"/> + </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.36/@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.OCLExpression" + bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.36/@variable.20" + referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OCLExpression"/> + </part> + </value> + </part> + </value> + </part> + </value> + </part> + </templateExpression> + </pattern> + </domain> + <variable name="mv" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/> + <variable name="pn" 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="rt" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationalTransformation"/> + <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="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="rdt" 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="cm" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcore/model/QVTcore.ecore.oclas#T.qvtcore.Mapping"/> + <variable name="mt" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Transformation"/> + <variable name="bp" 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="ve" 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="me" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OCLExpression"/> + <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" 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.36/@variable.3"/> + <argument xsi:type="pivot:VariableExp" 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.36/@variable.15"/> + </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.36/@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.36/@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.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.36/@variable.9"/> + <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.36/@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.37"> + <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.36/@variable.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.36/@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.36/@variable.10"/> + <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.36/@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.36/@variable.14"/> + </conditionExpression> + </predicate> + </where> + </rule> + <rule xsi:type="qvtr:Relation" name="RDomainToMComposedMappingGuard"> + <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RDomainToMComposedMappingGuard.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.37/@variable.6 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.37/@variable.8 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.37/@variable.9 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.37/@variable.14"> + <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.37/@variable.6 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.37/@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.37/@variable.6" + 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="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.37/@variable.7" + referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationalTransformation"/> + </part> + </templateExpression> + </pattern> + <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.37/@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.37/@variable.8" + referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"/> + </pattern> + <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.37/@variable.9 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.37/@variable.10 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.37/@variable.11 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.37/@variable.12 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.37/@variable.13"> + <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.37/@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.37/@variable.2"/> + </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.37/@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.37/@variable.3"/> + </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.37/@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" 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.37/@variable.7"/> + </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.37/@variable.12" + 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.37/@variable.13" + referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"/> + </part> + </value> + </part> + </templateExpression> + </pattern> + <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.37/@variable.14 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.37/@variable.15"> + <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.37/@variable.14" + referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.VariableExp"> + <where 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: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.37/@variable.13"/> + <ownedArguments 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.37/@variable.8"/> + <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.37/@variable.15"/> + </where> + <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.37/@variable.15" + 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.RDomainToMComposedMappingGuard.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.37/@variable.16"> + <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.37/@variable.16 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.37/@variable.17 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.37/@variable.18 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.37/@variable.19 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.37/@variable.20 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.37/@variable.21 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.37/@variable.22 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.37/@variable.23 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.37/@variable.24 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.37/@variable.25 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.37/@variable.26 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.37/@variable.27"> + <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.37/@variable.16" + 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.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.37/@variable.17" + 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.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.37/@variable.18" + 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.37/@variable.19" + 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.37/@variable.20" + 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.37/@variable.21" + 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.37/@variable.4"/> + </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.37/@variable.22" + 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" 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.37/@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.37/@variable.5"/> + </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.37/@variable.23" + 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.37/@variable.24" + 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.37/@variable.5"/> + </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: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.37/@variable.25" + 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.37/@variable.2"/> + </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.37/@variable.26" + 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.37/@variable.3"/> + </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.37/@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.37/@variable.0"/> + </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.37/@variable.27" + 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="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.37/@variable.5"/> + </part> + </value> + </part> + </value> + </part> + </templateExpression> + </pattern> + </domain> + <variable name="mt" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Transformation"/> + <variable name="pn" 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="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="rt" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationalTransformation"/> + <variable name="te" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"/> + <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="rdp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.DomainPattern"/> + <variable name="rdt" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"/> + <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="cm" 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="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="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="eo" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Operation"/> + <variable name="ve2" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.VariableExp"/> + <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="cmdg" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern"/> + <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" 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.37/@variable.7"/> + <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.37/@variable.0"/> + </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.37/@variable.6"/> + <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.37/@variable.9"/> + <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.37/@variable.4"/> + </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.37/@variable.15"/> + <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.37/@variable.5"/> + </conditionExpression> + </predicate> + </where> + </rule> + <rule xsi:type="qvtr:Relation" name="RDomainToMDBottomForEnforcementOfNonIdentityPropObject"> + <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RDomainToMDBottomForEnforcementOfNonIdentityPropObject.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.38/@variable.4 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.38/@variable.6 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.38/@variable.9 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.38/@variable.16 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.38/@variable.17"> + <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.38/@variable.4 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.38/@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.38/@variable.4" + 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="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.38/@variable.5" + referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationalTransformation"/> + </part> + </templateExpression> + </pattern> + <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.38/@variable.6 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.38/@variable.7 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.38/@variable.8"> + <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.38/@variable.6" + 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.38/@variable.0"/> + </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.38/@variable.7" + 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.38/@variable.2"/> + </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.38/@variable.8" + 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" 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.38/@variable.5"/> + </part> + </value> + </part> + </templateExpression> + </pattern> + <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.38/@variable.9 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.38/@variable.10 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.38/@variable.11 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.38/@variable.12 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.38/@variable.13 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.38/@variable.14 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.38/@variable.15"> + <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.38/@variable.9" + 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.38/@variable.10" + 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.38/@variable.11" + 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.38/@variable.12" + 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.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.38/@variable.13" + 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.38/@variable.1"/> + </part> + </value> + </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.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp" + bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.38/@variable.14" + 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.38/@variable.15" + referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/> + </part> + </value> + </part> + </value> + </part> + </templateExpression> + </pattern> + <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.38/@variable.16"> + <templateExpression xsi:type="qvtt:CollectionTemplateExp" type="#//@ownedPackages.1/@ownedClasses.10" bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.38/@variable.16" + 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.38/@variable.17"> + <templateExpression xsi:type="qvtt:CollectionTemplateExp" type="#//@ownedPackages.1/@ownedClasses.0" bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.38/@variable.17" + referredCollectionType="http://www.eclipse.org/ocl/2015/Orphanage#//@ownedPackages.0/@ownedClasses.285"> + <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.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.38/@variable.11"/> + </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.38/@variable.13"/> + </ownedSource> + </where> + </templateExpression> + </pattern> + </domain> + <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RDomainToMDBottomForEnforcementOfNonIdentityPropObject.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.38/@variable.18"> + <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.38/@variable.18 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.38/@variable.19 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.38/@variable.20 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.38/@variable.21 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.38/@variable.22 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.38/@variable.23 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.38/@variable.24 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.38/@variable.25 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.38/@variable.26 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.38/@variable.27 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.38/@variable.28 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.38/@variable.29"> + <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.38/@variable.18" + referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcore/model/QVTcore.ecore.oclas#T.qvtcore.Mapping"> + <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcore/model/QVTcore.ecore.oclas#p.qvtcore.Mapping.local"> + <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.38/@variable.19" + referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcore/model/QVTcore.ecore.oclas#T.qvtcore.Mapping"> + <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: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.qvtd.pivot.qvtcore/model/QVTcore.ecore.oclas#T.qvtcore.Mapping" + referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.38/@variable.18"/> + </ownedSource> + <ownedArguments xsi:type="pivot:StringLiteralExp" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String" + stringSymbol="_for_"/> + </ownedSource> + <ownedArguments 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.38/@variable.15"/> + </ownedArguments> + </value> + </part> + <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Rule.transformation"> + <value 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.38/@variable.20" + referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Transformation"/> + </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.38/@variable.21" + 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.38/@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="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.38/@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.38/@variable.2"/> + </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.38/@variable.8"/> + </part> + <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.TypedModel.transformation"> + <value xsi:type="pivot:VariableExp" 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.38/@variable.20"/> + </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.38/@variable.23" + 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.realizedVariable"> + <value 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.38/@variable.24" + referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.RealizedVariable"/> + </part> + <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.38/@variable.25" + 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.38/@variable.26" + 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.38/@variable.3"/> + </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.38/@variable.27" + 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.38/@variable.1"/> + </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.38/@variable.3"/> + </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.38/@variable.28" + 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.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.RealizedVariable" + referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.38/@variable.24"/> + </part> + </value> + </part> + </value> + </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.38/@variable.29" + 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.38/@variable.19"/> + </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="pn" 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="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="rt" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationalTransformation"/> + <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="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="pte" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"/> + <variable name="pv" 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="m" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcore/model/QVTcore.ecore.oclas#T.qvtcore.Mapping"/> + <variable name="cm" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcore/model/QVTcore.ecore.oclas#T.qvtcore.Mapping"/> + <variable name="mt" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Transformation"/> + <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="cmdb" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"/> + <variable name="mpv" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.RealizedVariable"/> + <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"/> + <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" 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.38/@variable.5"/> + <argument xsi:type="pivot:VariableExp" 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.38/@variable.20"/> + </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.38/@variable.10"/> + <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.38/@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.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.38/@variable.15"/> + <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.38/@variable.24"/> + </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.38/@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.38/@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.38/@variable.14"/> + <argument xsi:type="pivot:VariableExp" type="#//@ownedPackages.1/@ownedClasses.10" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.38/@variable.16"/> + <argument xsi:type="pivot:VariableExp" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.38/@variable.17"/> + <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.38/@variable.23"/> + </conditionExpression> + </predicate> + </where> + </rule> + <rule xsi:type="qvtr:Relation" name="RDomainPatternToMDBottomPatternComposite"> + <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RDomainPatternToMDBottomPatternComposite.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.39/@variable.4 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.39/@variable.5"> + <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.39/@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.39/@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.39/@variable.5 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.39/@variable.6 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.39/@variable.7 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.39/@variable.8 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.39/@variable.9 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.39/@variable.10"> + <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.39/@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.39/@variable.6" + referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/> + </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.39/@variable.7" + 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.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.39/@variable.8" + 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.39/@variable.2"/> + </part> + </value> + </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.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp" + bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.39/@variable.9" + 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.39/@variable.10" + referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/> + </part> + </value> + </part> + </value> + </part> + </templateExpression> + </pattern> + </domain> + <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RDomainPatternToMDBottomPatternComposite.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.39/@variable.11"> + <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.39/@variable.11 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.39/@variable.12 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.39/@variable.13 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.39/@variable.14 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.39/@variable.15"> + <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.39/@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.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.39/@variable.12" + 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.39/@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" 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.39/@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.39/@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.39/@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" 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.39/@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.39/@variable.15" + 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.39/@variable.1"/> + </part> + </value> + </part> + </value> + </part> + </templateExpression> + </pattern> + </domain> + <variable name="mvte" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/> + <variable name="mvpte" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/> + <variable name="pn" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"/> + <variable name="sharedDomainVars" 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="te" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"/> + <variable name="vte" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/> + <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="pte" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"/> + <variable name="vpte" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/> + <variable name="db" 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.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.39/@variable.6"/> + <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.39/@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.39/@variable.10"/> + <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.39/@variable.1"/> + </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.39/@variable.4"/> + <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.39/@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.39/@variable.11"/> + </conditionExpression> + </predicate> + </where> + </rule> + <rule xsi:type="qvtr:Relation" name="RDomainPatternToMDBottomPatternSimpleUnSharedVarExpr"> + <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RDomainPatternToMDBottomPatternSimpleUnSharedVarExpr.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.40/@variable.4 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.40/@variable.5"> + <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.40/@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.40/@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.40/@variable.5 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.40/@variable.6 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.40/@variable.7 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.40/@variable.8 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.40/@variable.9 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.40/@variable.10"> + <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.40/@variable.5" + referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"> + <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.Collection.includes..ocl.OclAny"> + <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.40/@variable.3"/> + <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.40/@variable.10"/> + </ownedSource> + </where> + <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.40/@variable.6" + referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/> + </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.40/@variable.7" + 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.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.40/@variable.8" + 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.40/@variable.2"/> + </part> + </value> + </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.VariableExp" + bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.40/@variable.9" + 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.40/@variable.10" + referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/> + </part> + </value> + </part> + </value> + </part> + </templateExpression> + </pattern> + </domain> + <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RDomainPatternToMDBottomPatternSimpleUnSharedVarExpr.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.40/@variable.11"> + <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.40/@variable.11 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.40/@variable.12 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.40/@variable.13 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.40/@variable.14 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.40/@variable.15"> + <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.40/@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.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.40/@variable.12" + 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.40/@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" 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.40/@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.40/@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.40/@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" 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.40/@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.40/@variable.15" + 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.40/@variable.1"/> + </part> + </value> + </part> + </value> + </part> + </templateExpression> + </pattern> + </domain> + <variable name="mvte" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/> + <variable name="mvpte" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/> + <variable name="pn" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"/> + <variable name="sharedDomainVars" 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="te" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"/> + <variable name="vte" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/> + <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.VariableExp"/> + <variable name="vpte" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/> + <variable name="db" 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"/> + <when> + <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.40/@variable.3"/> + <ownedArguments 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.40/@variable.4"/> + </ownedArguments> + </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.40/@variable.6"/> + <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.40/@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.40/@variable.10"/> + <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.40/@variable.1"/> + </conditionExpression> + </predicate> + </where> + </rule> + <rule xsi:type="qvtr:Relation" name="RDomainPatternToMDBottomPatternSimpleSharedVarExpr"> + <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RDomainPatternToMDBottomPatternSimpleSharedVarExpr.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.41/@variable.4 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.41/@variable.5"> + <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.41/@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.41/@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.41/@variable.5 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.41/@variable.6 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.41/@variable.7 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.41/@variable.8 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.41/@variable.9 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.41/@variable.10"> + <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.41/@variable.5" + referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"> + <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:VariableExp" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.0" referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.41/@variable.3"/> + <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.41/@variable.10"/> + </where> + <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.41/@variable.6" + referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/> + </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.41/@variable.7" + 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.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.41/@variable.8" + 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.41/@variable.2"/> + </part> + </value> + </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.VariableExp" + bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.41/@variable.9" + 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.41/@variable.10" + referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/> + </part> + </value> + </part> + </value> + </part> + </templateExpression> + </pattern> + </domain> + <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RDomainPatternToMDBottomPatternSimpleSharedVarExpr.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.41/@variable.11"> + <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.41/@variable.11 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.41/@variable.12 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.41/@variable.13 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.41/@variable.14 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.41/@variable.15"> + <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.41/@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.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.41/@variable.12" + 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.41/@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" 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.41/@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.41/@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.41/@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" 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.41/@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.41/@variable.15" + 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.41/@variable.1"/> + </part> + </value> + </part> + </value> + </part> + </templateExpression> + </pattern> + </domain> + <variable name="mvte" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/> + <variable name="mvpte" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/> + <variable name="pn" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"/> + <variable name="sharedDomainVars" 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="te" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"/> + <variable name="vte" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/> + <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.VariableExp"/> + <variable name="vpte" 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"/> + <when> + <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.41/@variable.3"/> + <ownedArguments 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.41/@variable.4"/> + </ownedArguments> + </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.41/@variable.6"/> + <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.41/@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.41/@variable.10"/> + <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.41/@variable.1"/> + </conditionExpression> + </predicate> + </where> + </rule> + <rule xsi:type="qvtr:Relation" name="RDomainPatternToMDBottomPatternSimpleNonVarExpr"> + <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RDomainPatternToMDBottomPatternSimpleNonVarExpr.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.42/@variable.2"> + <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.42/@variable.2 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.42/@variable.3 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.42/@variable.4 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.42/@variable.5 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.42/@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.42/@variable.2" + referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"> + <where xsi:type="pivot:OperationCallExp" name="and" 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.and..ocl.Boolean"> + <ownedSource 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.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/@rule.42/@variable.6"/> + <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.TemplateExp"/> + </ownedSource> + </ownedSource> + <ownedArguments 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.42/@variable.6"/> + <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> + </where> + <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.42/@variable.3" + referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/> + </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.42/@variable.4" + 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.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.42/@variable.5" + 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.42/@variable.1"/> + </part> + </value> + </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.42/@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.RDomainPatternToMDBottomPatternSimpleNonVarExpr.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.42/@variable.7"> + <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.42/@variable.7 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.42/@variable.8 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.42/@variable.9 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.42/@variable.10 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.42/@variable.11"> + <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.42/@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.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.42/@variable.8" + 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.42/@variable.9" + 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.42/@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.42/@variable.10" + 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.42/@variable.1"/> + </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.42/@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.OCLExpression" + bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.42/@variable.11" + referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OCLExpression"/> + </part> + </value> + </part> + </templateExpression> + </pattern> + </domain> + <variable name="mvte" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/> + <variable name="pn" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"/> + <variable name="te" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.ObjectTemplateExp"/> + <variable name="vte" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/> + <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="a" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.PropertyAssignment"/> + <variable name="ve" 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="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.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.42/@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.42/@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.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.42/@variable.6"/> + <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.42/@variable.11"/> + </conditionExpression> + </predicate> + </where> + </rule> + <rule xsi:type="qvtr:Relation" name="RDomainVarsToTraceClassProps"> + <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RDomainVarsToTraceClassProps.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.43/@variable.2"> + <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.43/@variable.2 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.43/@variable.3 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.43/@variable.4 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.43/@variable.5 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.43/@variable.6 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.43/@variable.7 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.43/@variable.8"> + <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.43/@variable.2" + 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.rule"> + <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.43/@variable.3" + referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"/> + </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.43/@variable.4" + 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.43/@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.43/@variable.8"> + <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.43/@variable.6" + referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"> + <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#p.pivot.Variable.templateExp"> + <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.TemplateExp" + bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.43/@variable.7" + referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.TemplateExp"/> + </part> + </member> + </value> + </part> + </value> + </part> + </templateExpression> + </pattern> + </domain> + <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RDomainVarsToTraceClassProps.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.43/@variable.9"> + <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.43/@variable.9 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.43/@variable.10 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.43/@variable.11 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.43/@variable.12 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.43/@variable.13"> + <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.43/@variable.9" + 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.43/@variable.10" + 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.43/@variable.11" + 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.43/@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.43/@variable.12" + 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.43/@variable.6"/> + </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.43/@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.43/@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" 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.43/@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="mdv" isRequired="false" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/> + <variable name="rd" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"/> + <variable name="r" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.Relation"/> + <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="dv" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/> + <variable name="te" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.TemplateExp"/> + <variable name="_6" 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="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.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.43/@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.43/@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.43/@variable.6"/> + <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.43/@variable.1"/> + </conditionExpression> + </predicate> + </where> + </rule> + <rule xsi:type="qvtr:Relation" name="ROppositeDomainVarsToTraceClassProps"> + <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.ROppositeDomainVarsToTraceClassProps.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.44/@variable.2 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.44/@variable.3 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.44/@variable.4"> + <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.44/@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.44/@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.44/@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.44/@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.44/@variable.4 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.44/@variable.5 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.44/@variable.6 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.44/@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.44/@variable.4" + 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.44/@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.44/@variable.5" + referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"> + <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#p.pivot.Variable.templateExp"> + <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.TemplateExp" + bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.44/@variable.6" + referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.TemplateExp"/> + </part> + </member> + </templateExpression> + </pattern> + </domain> + <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.ROppositeDomainVarsToTraceClassProps.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.44/@variable.8"> + <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.44/@variable.8 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.44/@variable.9 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.44/@variable.10 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.44/@variable.11 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.44/@variable.12"> + <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.44/@variable.8" + 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.44/@variable.9" + 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.44/@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.44/@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.44/@variable.11" + 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.44/@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.44/@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.44/@variable.12" + 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.44/@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="mdv" 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="domainVars" type="#//@ownedPackages.1/@ownedClasses.0"/> + <variable name="dv" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/> + <variable name="te" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.TemplateExp"/> + <variable name="_3" 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="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.44/@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.44/@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.44/@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.44/@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.44/@variable.1"/> + </conditionExpression> + </predicate> + </where> + </rule> + <rule xsi:type="qvtr:Relation" name="RRelImplToMBottomEnforcementOperation"> + <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RRelImplToMBottomEnforcementOperation.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.45/@variable.1 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.45/@variable.5"> + <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.45/@variable.1 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.45/@variable.2 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.45/@variable.3 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.45/@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.45/@variable.1" + 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.operationalImpl"> + <value xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationImplementation" + bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.45/@variable.2" + referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationImplementation"> + <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#p.qvtrelation.RelationImplementation.inDirectionOf"> + <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.45/@variable.3" + referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.TypedModel"/> + </part> + <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#p.qvtrelation.RelationImplementation.impl"> + <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.45/@variable.4" + referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Operation"/> + </part> + </value> + </part> + </templateExpression> + </pattern> + <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.45/@variable.5 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.45/@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.45/@variable.5" + 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.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.45/@variable.6" + referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.TypedModel"/> + </part> + </templateExpression> + </pattern> + </domain> + <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RRelImplToMBottomEnforcementOperation.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.45/@variable.7"> + <defaultAssignment variable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.45/@variable.0"> + <valueExp xsi:type="pivot:CollectionLiteralExp" type="#//@ownedPackages.1/@ownedClasses.7" kind="Set"/> + </defaultAssignment> + <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.45/@variable.7 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.45/@variable.8 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.45/@variable.9 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.45/@variable.10 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.45/@variable.11 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.45/@variable.12"> + <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.45/@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.enforcementOperation"> + <value xsi:type="qvtt:CollectionTemplateExp" type="#//@ownedPackages.1/@ownedClasses.23" bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.45/@variable.8" + referredCollectionType="http://www.eclipse.org/ocl/2015/Orphanage#//@ownedPackages.0/@ownedClasses.297" rest="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.45/@variable.12"> + <member xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.EnforcementOperation" + bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.45/@variable.9" + referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.EnforcementOperation"> + <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#p.qvtcorebase.EnforcementOperation.enforcementMode"> + <value xsi:type="pivot:EnumLiteralExp" type="pivot:Enumeration ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.EnforcementMode" + referredLiteral="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#//@ownedPackages.0/@ownedClasses.13/@ownedLiterals.0"/> + </part> + <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#p.qvtcorebase.EnforcementOperation.operationCallExp"> + <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.45/@variable.10" + referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OperationCallExp"> + <part referredProperty="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.OperationCallExp.referredOperation"> + <value xsi:type="pivot:VariableExp" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Operation" + referredVariable="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.45/@variable.4"/> + </part> + </value> + </part> + </member> + <member xsi:type="qvtt:ObjectTemplateExp" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.EnforcementOperation" + bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.45/@variable.11" + referredClass="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.EnforcementOperation"> + <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#p.qvtcorebase.EnforcementOperation.enforcementMode"> + <value xsi:type="pivot:EnumLiteralExp" type="pivot:Enumeration ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.EnforcementMode" + referredLiteral="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#//@ownedPackages.0/@ownedClasses.13/@ownedLiterals.1"/> + </part> + <part referredProperty="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#p.qvtcorebase.EnforcementOperation.operationCallExp"> + <value 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/@rule.45/@variable.10"/> + </part> + </member> + </value> + </part> + </templateExpression> + </pattern> + </domain> + <variable name="emptySet" isRequired="false" type="#//@ownedPackages.1/@ownedClasses.23"/> + <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.RelationImplementation"/> + <variable name="tm" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.TypedModel"/> + <variable name="op" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Operation"/> + <variable name="rd" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"/> + <variable name="tm" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.TypedModel"/> + <variable name="mb" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern"/> + <variable name="eoSet" type="#//@ownedPackages.1/@ownedClasses.23"/> + <variable name="eoc" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.EnforcementOperation"/> + <variable name="oce" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OperationCallExp"/> + <variable name="eod" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.EnforcementOperation"/> + <variable name="_5" type="#//@ownedPackages.1/@ownedClasses.23"/> + <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.46"> + <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.45/@variable.1"/> + <argument 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/@rule.45/@variable.10"/> + </conditionExpression> + </predicate> + </where> + </rule> + <rule xsi:type="qvtr:Relation" name="RRelDomainsToMOpCallArg"> + <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RRelDomainsToMOpCallArg.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.46/@variable.0"> + <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.46/@variable.0 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.46/@variable.1 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.46/@variable.2 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.46/@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.46/@variable.0" + 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.46/@variable.1" + 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.46/@variable.2" + 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: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.46/@variable.3" + referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/> + </part> + </value> + </part> + </value> + </part> + </templateExpression> + </pattern> + </domain> + <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RRelDomainsToMOpCallArg.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.46/@variable.4"> + <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.46/@variable.4 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.46/@variable.5 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.46/@variable.6"> + <templateExpression 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.46/@variable.4" + referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OperationCallExp"> + <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.46/@variable.5" + 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.46/@variable.6" + referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/> + </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="rd" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"/> + <variable name="p" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.DomainPattern"/> + <variable name="rv" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"/> + <variable name="oce" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OperationCallExp"/> + <variable name="ar" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.VariableExp"/> + <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.46/@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.46/@variable.6"/> + </conditionExpression> + </predicate> + </where> + </rule> + <rule xsi:type="qvtr:Relation" name="RelationToTraceClassVar"> + <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RelationToTraceClassVar.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.47/@variable.2"> + <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.47/@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.47/@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.47/@variable.0"/> + </part> + </templateExpression> + </pattern> + </domain> + <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RelationToTraceClassVar.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.47/@variable.3"> + <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.47/@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.47/@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: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.47/@variable.0"/> + <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.47/@variable.1"/> + </part> + </templateExpression> + </pattern> + </domain> + <variable name="rn" isRequired="false" type="pivot:PrimitiveType ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#String"/> + <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="tcv" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.RealizedVariable"/> + <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.47/@variable.2"/> + <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.47/@variable.1"/> + </conditionExpression> + </predicate> + </when> + </rule> + <rule xsi:type="qvtr:Relation" name="RelationDomainToTraceClassVar"> + <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RelationDomainToTraceClassVar.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.48/@variable.3 #//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.48/@variable.4"> + <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.48/@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.48/@variable.3" + 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.48/@variable.0"/> + </part> + </templateExpression> + </pattern> + <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.48/@variable.4"> + <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.48/@variable.4" + 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.48/@variable.1"/> + </part> + </templateExpression> + </pattern> + </domain> + <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RelationDomainToTraceClassVar.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.48/@variable.5"> + <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.48/@variable.5"> + <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.48/@variable.5" + 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: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.48/@variable.0"/> + <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.48/@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.48/@variable.2"/> + </part> + </templateExpression> + </pattern> + </domain> + <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="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="d" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"/> + <variable name="tcv" type="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.RealizedVariable"/> + <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.48/@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.48/@variable.2"/> + </conditionExpression> + </predicate> + </when> + </rule> + <rule xsi:type="qvtr:Relation" name="RExpToMExp" isDefault="true"> + <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RExpToMExp.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.49/@variable.0"> + <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.49/@variable.0"> + <templateExpression 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.49/@variable.0" + referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OCLExpression"/> + </pattern> + </domain> + <domain xsi:type="qvtr:RelationDomain" xmi:id="qD.org.eclipse.qvtd.compiler.qvtr.relToCore.RExpToMExp.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.49/@variable.1"> + <pattern bindsTo="#//@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedPackages.0/@ownedClasses.0/@rule.49/@variable.1"> + <templateExpression 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.49/@variable.1" + referredClass="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OCLExpression"/> + </pattern> + </domain> + <variable name="re" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OCLExpression"/> + <variable name="me" type="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OCLExpression"/> + </rule> + <ownedContext name="this"/> + <ownedKey identifies="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcore/model/QVTcore.ecore.oclas#T.qvtcore.Mapping" + part="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Rule.transformation"/> + <ownedKey identifies="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.GuardPattern" + part="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#p.qvtcorebase.GuardPattern.area"/> + <ownedKey identifies="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.BottomPattern" + part="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#p.qvtcorebase.BottomPattern.area"/> + <ownedKey identifies="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable" part="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.TypedElement.type"/> + <ownedKey identifies="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Type" part="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name"/> + <ownedKey identifies="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Class" part="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name"/> + <ownedKey identifies="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Property" part="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.Property.owningClass"/> + <ownedKey identifies="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.CoreDomain" + part="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Domain.rule"/> + <ownedKey identifies="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.TypedModel" + part="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.TypedModel.usedPackage ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.TypedModel.transformation"/> + <ownedKey identifies="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Package" part="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name"/> + <ownedKey identifies="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Transformation" + part="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name"/> + <ownedKey identifies="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Operation" part="../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#p.pivot.NamedElement.name"/> + <ownedKey identifies="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Predicate" + part="../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Predicate.pattern ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#p.qvtbase.Predicate.conditionExpression"/> + </ownedClasses> + </ownedPackages> + </ownedPackages> + </ownedPackages> + </ownedPackages> + </ownedPackages> + <ownedPackages xmi:id="P.$$" name="$$" URI="http://www.eclipse.org/ocl/2015/Orphanage" nsPrefix="orphanage"> + <ownedClasses xsi:type="pivot:SetType" name="Set" superClasses="#//@ownedPackages.1/@ownedClasses.24" elementType="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"> + <ownedBindings> + <ownedSubstitutions actual="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable" + formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..SetT"/> + </ownedBindings> + </ownedClasses> + <ownedClasses xsi:type="pivot:BagType" name="Bag" superClasses="#//@ownedPackages.1/@ownedClasses.3" elementType="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"> + <ownedBindings> + <ownedSubstitutions actual="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable" + formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..BagT"/> + </ownedBindings> + </ownedClasses> + <ownedClasses xsi:type="pivot:OrderedSetType" name="OrderedSet" superClasses="#//@ownedPackages.1/@ownedClasses.25 #//@ownedPackages.1/@ownedClasses.26" + elementType="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Domain" + isNullFree="true"> + <ownedBindings> + <ownedSubstitutions actual="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Domain" + formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..OrderedSetT"/> + </ownedBindings> + </ownedClasses> + <ownedClasses xsi:type="pivot:CollectionType" name="Collection" superClasses="http://www.eclipse.org/ocl/2015/Library.oclas#T.ocl.OclAny" + elementType="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"> + <ownedBindings> + <ownedSubstitutions actual="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable" + formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..CollectionT"/> + </ownedBindings> + </ownedClasses> + <ownedClasses xsi:type="pivot:SequenceType" name="Sequence" superClasses="#//@ownedPackages.1/@ownedClasses.27" elementType="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable" + isNullFree="true"> + <ownedBindings> + <ownedSubstitutions actual="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable" + formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..SequenceT"/> + </ownedBindings> + </ownedClasses> + <ownedClasses xsi:type="pivot:OrderedSetType" name="OrderedSet" superClasses="#//@ownedPackages.1/@ownedClasses.28 #//@ownedPackages.1/@ownedClasses.29" + elementType="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.DomainPattern" + isNullFree="true"> + <ownedBindings> + <ownedSubstitutions actual="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.DomainPattern" + formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..OrderedSetT"/> + </ownedBindings> + </ownedClasses> + <ownedClasses xsi:type="pivot:SetType" name="Set" superClasses="#//@ownedPackages.1/@ownedClasses.24" elementType="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable" + isNullFree="true"> + <ownedBindings> + <ownedSubstitutions actual="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable" + formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..SetT"/> + </ownedBindings> + </ownedClasses> + <ownedClasses xsi:type="pivot:SetType" name="Set" superClasses="#//@ownedPackages.1/@ownedClasses.30" elementType="pivot:VoidType http://www.eclipse.org/ocl/2015/Library.oclas#T.ocl.OclVoid" + isNullFree="true"> + <ownedBindings> + <ownedSubstitutions actual="pivot:VoidType http://www.eclipse.org/ocl/2015/Library.oclas#T.ocl.OclVoid" formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..SetT"/> + </ownedBindings> + </ownedClasses> + <ownedClasses xsi:type="pivot:SetType" name="Set" superClasses="#//@ownedPackages.1/@ownedClasses.31" elementType="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.VariableDeclaration"> + <ownedBindings> + <ownedSubstitutions actual="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.VariableDeclaration" + formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..SetT"/> + </ownedBindings> + </ownedClasses> + <ownedClasses xsi:type="pivot:OrderedSetType" name="OrderedSet" superClasses="#//@ownedPackages.1/@ownedClasses.32 #//@ownedPackages.1/@ownedClasses.33" + elementType="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OCLExpression" isNullFree="true"> + <ownedBindings> + <ownedSubstitutions actual="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OCLExpression" + formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..OrderedSetT"/> + </ownedBindings> + </ownedClasses> + <ownedClasses xsi:type="pivot:SetType" name="Set" superClasses="#//@ownedPackages.1/@ownedClasses.34" elementType="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Predicate"> + <ownedBindings> + <ownedSubstitutions actual="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Predicate" + formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..SetT"/> + </ownedBindings> + </ownedClasses> + <ownedClasses xsi:type="pivot:BagType" name="Bag" superClasses="#//@ownedPackages.1/@ownedClasses.35" elementType="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OCLExpression" + isNullFree="true"> + <ownedBindings> + <ownedSubstitutions actual="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OCLExpression" + formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..BagT"/> + </ownedBindings> + </ownedClasses> + <ownedClasses xsi:type="pivot:SetType" name="Set" superClasses="#//@ownedPackages.1/@ownedClasses.36" elementType="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.PropertyTemplateItem" + isNullFree="true"> + <ownedBindings> + <ownedSubstitutions actual="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.PropertyTemplateItem" + formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..SetT"/> + </ownedBindings> + </ownedClasses> + <ownedClasses xsi:type="pivot:BagType" name="Bag" superClasses="#//@ownedPackages.1/@ownedClasses.3" elementType="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable" + isNullFree="true"> + <ownedBindings> + <ownedSubstitutions actual="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable" + formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..BagT"/> + </ownedBindings> + </ownedClasses> + <ownedClasses xsi:type="pivot:BagType" name="Bag" superClasses="#//@ownedPackages.1/@ownedClasses.37" elementType="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.DomainPattern" + isNullFree="true"> + <ownedBindings> + <ownedSubstitutions actual="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.DomainPattern" + formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..BagT"/> + </ownedBindings> + </ownedClasses> + <ownedClasses xsi:type="pivot:SetType" name="Set" superClasses="#//@ownedPackages.1/@ownedClasses.38" elementType="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"> + <ownedBindings> + <ownedSubstitutions actual="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain" + formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..SetT"/> + </ownedBindings> + </ownedClasses> + <ownedClasses xsi:type="pivot:SequenceType" name="Sequence" superClasses="#//@ownedPackages.1/@ownedClasses.27" elementType="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"> + <ownedBindings> + <ownedSubstitutions actual="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable" + formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..SequenceT"/> + </ownedBindings> + </ownedClasses> + <ownedClasses xsi:type="pivot:SetType" name="Set" superClasses="#//@ownedPackages.1/@ownedClasses.34" elementType="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Predicate" + isNullFree="true"> + <ownedBindings> + <ownedSubstitutions actual="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Predicate" + formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..SetT"/> + </ownedBindings> + </ownedClasses> + <ownedClasses xsi:type="pivot:SequenceType" name="Sequence" superClasses="#//@ownedPackages.1/@ownedClasses.39" elementType="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Predicate"> + <ownedBindings> + <ownedSubstitutions actual="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Predicate" + formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..SequenceT"/> + </ownedBindings> + </ownedClasses> + <ownedClasses xsi:type="pivot:SequenceType" name="Sequence" superClasses="#//@ownedPackages.1/@ownedClasses.40" elementType="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"> + <ownedBindings> + <ownedSubstitutions actual="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain" + formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..SequenceT"/> + </ownedBindings> + </ownedClasses> + <ownedClasses xsi:type="pivot:SequenceType" name="Sequence" superClasses="#//@ownedPackages.1/@ownedClasses.41" elementType="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.VariableExp"> + <ownedBindings> + <ownedSubstitutions actual="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.VariableExp" + formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..SequenceT"/> + </ownedBindings> + </ownedClasses> + <ownedClasses xsi:type="pivot:SetType" name="Set" superClasses="#//@ownedPackages.1/@ownedClasses.42" elementType="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Property" + isNullFree="true"> + <ownedBindings> + <ownedSubstitutions actual="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Property" + formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..SetT"/> + </ownedBindings> + </ownedClasses> + <ownedClasses xsi:type="pivot:SequenceType" name="Sequence" superClasses="#//@ownedPackages.1/@ownedClasses.43" elementType="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Element"> + <ownedBindings> + <ownedSubstitutions actual="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Element" + formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..SequenceT"/> + </ownedBindings> + </ownedClasses> + <ownedClasses xsi:type="pivot:SetType" name="Set" superClasses="#//@ownedPackages.1/@ownedClasses.44" elementType="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.EnforcementOperation"> + <ownedBindings> + <ownedSubstitutions actual="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.EnforcementOperation" + formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..SetT"/> + </ownedBindings> + </ownedClasses> + <ownedClasses xsi:type="pivot:CollectionType" name="UniqueCollection" superClasses="#//@ownedPackages.1/@ownedClasses.3" elementType="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"> + <ownedBindings> + <ownedSubstitutions actual="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable" + formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..UniqueCollectionT"/> + </ownedBindings> + </ownedClasses> + <ownedClasses xsi:type="pivot:CollectionType" name="OrderedCollection" superClasses="#//@ownedPackages.1/@ownedClasses.45" elementType="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Domain"> + <ownedBindings> + <ownedSubstitutions actual="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Domain" + formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..OrderedCollectionT"/> + </ownedBindings> + </ownedClasses> + <ownedClasses xsi:type="pivot:CollectionType" name="UniqueCollection" superClasses="#//@ownedPackages.1/@ownedClasses.45" elementType="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Domain"> + <ownedBindings> + <ownedSubstitutions actual="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Domain" + formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..UniqueCollectionT"/> + </ownedBindings> + </ownedClasses> + <ownedClasses xsi:type="pivot:CollectionType" name="OrderedCollection" superClasses="#//@ownedPackages.1/@ownedClasses.3" elementType="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable"> + <ownedBindings> + <ownedSubstitutions actual="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Variable" + formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..OrderedCollectionT"/> + </ownedBindings> + </ownedClasses> + <ownedClasses xsi:type="pivot:CollectionType" name="OrderedCollection" superClasses="#//@ownedPackages.1/@ownedClasses.37" elementType="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.DomainPattern"> + <ownedBindings> + <ownedSubstitutions actual="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.DomainPattern" + formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..OrderedCollectionT"/> + </ownedBindings> + </ownedClasses> + <ownedClasses xsi:type="pivot:CollectionType" name="UniqueCollection" superClasses="#//@ownedPackages.1/@ownedClasses.37" elementType="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.DomainPattern"> + <ownedBindings> + <ownedSubstitutions actual="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.DomainPattern" + formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..UniqueCollectionT"/> + </ownedBindings> + </ownedClasses> + <ownedClasses xsi:type="pivot:CollectionType" name="UniqueCollection" superClasses="#//@ownedPackages.1/@ownedClasses.46" elementType="pivot:VoidType http://www.eclipse.org/ocl/2015/Library.oclas#T.ocl.OclVoid"> + <ownedBindings> + <ownedSubstitutions actual="pivot:VoidType http://www.eclipse.org/ocl/2015/Library.oclas#T.ocl.OclVoid" formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..UniqueCollectionT"/> + </ownedBindings> + </ownedClasses> + <ownedClasses xsi:type="pivot:CollectionType" name="UniqueCollection" superClasses="#//@ownedPackages.1/@ownedClasses.47" elementType="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.VariableDeclaration"> + <ownedBindings> + <ownedSubstitutions actual="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.VariableDeclaration" + formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..UniqueCollectionT"/> + </ownedBindings> + </ownedClasses> + <ownedClasses xsi:type="pivot:CollectionType" name="OrderedCollection" superClasses="#//@ownedPackages.1/@ownedClasses.35" elementType="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OCLExpression"> + <ownedBindings> + <ownedSubstitutions actual="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OCLExpression" + formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..OrderedCollectionT"/> + </ownedBindings> + </ownedClasses> + <ownedClasses xsi:type="pivot:CollectionType" name="UniqueCollection" superClasses="#//@ownedPackages.1/@ownedClasses.35" elementType="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OCLExpression"> + <ownedBindings> + <ownedSubstitutions actual="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OCLExpression" + formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..UniqueCollectionT"/> + </ownedBindings> + </ownedClasses> + <ownedClasses xsi:type="pivot:CollectionType" name="UniqueCollection" superClasses="#//@ownedPackages.1/@ownedClasses.48" elementType="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Predicate"> + <ownedBindings> + <ownedSubstitutions actual="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Predicate" + formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..UniqueCollectionT"/> + </ownedBindings> + </ownedClasses> + <ownedClasses xsi:type="pivot:CollectionType" name="Collection" superClasses="http://www.eclipse.org/ocl/2015/Library.oclas#T.ocl.OclAny" + elementType="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OCLExpression"> + <ownedBindings> + <ownedSubstitutions actual="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.OCLExpression" + formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..CollectionT"/> + </ownedBindings> + </ownedClasses> + <ownedClasses xsi:type="pivot:CollectionType" name="UniqueCollection" superClasses="#//@ownedPackages.1/@ownedClasses.49" elementType="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.PropertyTemplateItem"> + <ownedBindings> + <ownedSubstitutions actual="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.PropertyTemplateItem" + formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..UniqueCollectionT"/> + </ownedBindings> + </ownedClasses> + <ownedClasses xsi:type="pivot:CollectionType" name="Collection" superClasses="http://www.eclipse.org/ocl/2015/Library.oclas#T.ocl.OclAny" + elementType="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.DomainPattern"> + <ownedBindings> + <ownedSubstitutions actual="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.DomainPattern" + formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..CollectionT"/> + </ownedBindings> + </ownedClasses> + <ownedClasses xsi:type="pivot:CollectionType" name="UniqueCollection" superClasses="#//@ownedPackages.1/@ownedClasses.50" elementType="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"> + <ownedBindings> + <ownedSubstitutions actual="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain" + formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..UniqueCollectionT"/> + </ownedBindings> + </ownedClasses> + <ownedClasses xsi:type="pivot:CollectionType" name="OrderedCollection" superClasses="#//@ownedPackages.1/@ownedClasses.48" elementType="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Predicate"> + <ownedBindings> + <ownedSubstitutions actual="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Predicate" + formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..OrderedCollectionT"/> + </ownedBindings> + </ownedClasses> + <ownedClasses xsi:type="pivot:CollectionType" name="OrderedCollection" superClasses="#//@ownedPackages.1/@ownedClasses.50" elementType="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"> + <ownedBindings> + <ownedSubstitutions actual="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain" + formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..OrderedCollectionT"/> + </ownedBindings> + </ownedClasses> + <ownedClasses xsi:type="pivot:CollectionType" name="OrderedCollection" superClasses="#//@ownedPackages.1/@ownedClasses.51" elementType="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.VariableExp"> + <ownedBindings> + <ownedSubstitutions actual="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.VariableExp" + formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..OrderedCollectionT"/> + </ownedBindings> + </ownedClasses> + <ownedClasses xsi:type="pivot:CollectionType" name="UniqueCollection" superClasses="#//@ownedPackages.1/@ownedClasses.52" elementType="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Property"> + <ownedBindings> + <ownedSubstitutions actual="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Property" + formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..UniqueCollectionT"/> + </ownedBindings> + </ownedClasses> + <ownedClasses xsi:type="pivot:CollectionType" name="OrderedCollection" superClasses="#//@ownedPackages.1/@ownedClasses.53" elementType="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Element"> + <ownedBindings> + <ownedSubstitutions actual="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Element" + formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..OrderedCollectionT"/> + </ownedBindings> + </ownedClasses> + <ownedClasses xsi:type="pivot:CollectionType" name="UniqueCollection" superClasses="#//@ownedPackages.1/@ownedClasses.54" elementType="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.EnforcementOperation"> + <ownedBindings> + <ownedSubstitutions actual="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.EnforcementOperation" + formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..UniqueCollectionT"/> + </ownedBindings> + </ownedClasses> + <ownedClasses xsi:type="pivot:CollectionType" name="Collection" superClasses="http://www.eclipse.org/ocl/2015/Library.oclas#T.ocl.OclAny" + elementType="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Domain"> + <ownedBindings> + <ownedSubstitutions actual="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Domain" + formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..CollectionT"/> + </ownedBindings> + </ownedClasses> + <ownedClasses xsi:type="pivot:CollectionType" name="Collection" superClasses="http://www.eclipse.org/ocl/2015/Library.oclas#T.ocl.OclAny" + elementType="pivot:VoidType http://www.eclipse.org/ocl/2015/Library.oclas#T.ocl.OclVoid"> + <ownedBindings> + <ownedSubstitutions actual="pivot:VoidType http://www.eclipse.org/ocl/2015/Library.oclas#T.ocl.OclVoid" formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..CollectionT"/> + </ownedBindings> + </ownedClasses> + <ownedClasses xsi:type="pivot:CollectionType" name="Collection" superClasses="http://www.eclipse.org/ocl/2015/Library.oclas#T.ocl.OclAny" + elementType="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.VariableDeclaration"> + <ownedBindings> + <ownedSubstitutions actual="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.VariableDeclaration" + formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..CollectionT"/> + </ownedBindings> + </ownedClasses> + <ownedClasses xsi:type="pivot:CollectionType" name="Collection" superClasses="http://www.eclipse.org/ocl/2015/Library.oclas#T.ocl.OclAny" + elementType="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Predicate"> + <ownedBindings> + <ownedSubstitutions actual="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore.oclas#T.qvtbase.Predicate" + formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..CollectionT"/> + </ownedBindings> + </ownedClasses> + <ownedClasses xsi:type="pivot:CollectionType" name="Collection" superClasses="http://www.eclipse.org/ocl/2015/Library.oclas#T.ocl.OclAny" + elementType="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.PropertyTemplateItem"> + <ownedBindings> + <ownedSubstitutions actual="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore.oclas#T.qvttemplate.PropertyTemplateItem" + formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..CollectionT"/> + </ownedBindings> + </ownedClasses> + <ownedClasses xsi:type="pivot:CollectionType" name="Collection" superClasses="http://www.eclipse.org/ocl/2015/Library.oclas#T.ocl.OclAny" + elementType="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain"> + <ownedBindings> + <ownedSubstitutions actual="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore.oclas#T.qvtrelation.RelationDomain" + formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..CollectionT"/> + </ownedBindings> + </ownedClasses> + <ownedClasses xsi:type="pivot:CollectionType" name="Collection" superClasses="http://www.eclipse.org/ocl/2015/Library.oclas#T.ocl.OclAny" + elementType="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.VariableExp"> + <ownedBindings> + <ownedSubstitutions actual="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.VariableExp" + formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..CollectionT"/> + </ownedBindings> + </ownedClasses> + <ownedClasses xsi:type="pivot:CollectionType" name="Collection" superClasses="http://www.eclipse.org/ocl/2015/Library.oclas#T.ocl.OclAny" + elementType="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Property"> + <ownedBindings> + <ownedSubstitutions actual="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Property" + formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..CollectionT"/> + </ownedBindings> + </ownedClasses> + <ownedClasses xsi:type="pivot:CollectionType" name="Collection" superClasses="http://www.eclipse.org/ocl/2015/Library.oclas#T.ocl.OclAny" + elementType="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Element"> + <ownedBindings> + <ownedSubstitutions actual="pivot:Class ../../../../../../../../../../org.eclipse.ocl.pivot/model/Pivot.ecore.oclas#T.pivot.Element" + formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..CollectionT"/> + </ownedBindings> + </ownedClasses> + <ownedClasses xsi:type="pivot:CollectionType" name="Collection" superClasses="http://www.eclipse.org/ocl/2015/Library.oclas#T.ocl.OclAny" + elementType="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.EnforcementOperation"> + <ownedBindings> + <ownedSubstitutions actual="pivot:Class ../../../../../../../../../../org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore.oclas#T.qvtcorebase.EnforcementOperation" + formal="http://www.eclipse.org/ocl/2015/Library.oclas#t.ocl..CollectionT"/> + </ownedBindings> + </ownedClasses> + </ownedPackages> +</qvtr:RelationModel> diff --git a/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/rel2core/samples/Rel2Core_expected.ecore b/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/rel2core/samples/Rel2Core_expected.oclas index a6c937c2d..a6c937c2d 100644 --- a/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/rel2core/samples/Rel2Core_expected.ecore +++ b/tests/org.eclipse.qvtd.xtext.qvtrelation.tests/src/org/eclipse/qvtd/xtext/qvtrelation/tests/rel2core/samples/Rel2Core_expected.oclas |