blob: 4069170b11bde47083a9db4209f7b08b6748e6e2 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<qvtc:CoreModel 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:qvtc="http://www.eclipse.org/qvt/2015/QVTcore" 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/QVTcore java://org.eclipse.qvtd.pivot.qvtcore.QVTcorePackage"
name="Upper2Lower.qvtc" externalURI="platform:/resource/org.eclipse.qvtd.xtext.qvtcore.tests/bin/org/eclipse/qvtd/xtext/qvtcore/tests/upper2lower/Upper2Lower.qvtc">
<ownedImports name="SimpleGraph" importedNamespace="pivot:Package SimpleGraph.ecore.oclas#P.simplegraph"/>
<ownedImports name="SimpleGraph2Graph" importedNamespace="pivot:Package SimpleGraph2Graph.ecore.oclas#P.simplegraph2graph"/>
<ownedPackages xmi:id="P." name="">
<ownedClasses xsi:type="qvtb:Transformation" xmi:id="T..Upper2Lower" name="Upper2Lower" superClasses="http://www.eclipse.org/ocl/2015/Library.oclas#T.ocl.OclElement">
<modelParameter xmi:id="qT..Upper2Lower.upperGraph" name="upperGraph" usedPackage="SimpleGraph.ecore.oclas#P.simplegraph"/>
<modelParameter xmi:id="qT..Upper2Lower.lowerGraph" name="lowerGraph" usedPackage="SimpleGraph.ecore.oclas#P.simplegraph"/>
<modelParameter usedPackage="SimpleGraph2Graph.ecore.oclas#P.simplegraph2graph"/>
<rule xsi:type="qvtc:Mapping" xmi:id="m..Upper2Lower.graph2graph" name="graph2graph">
<ownedComments body="Don't use realize keywords on the two initial domains indicates that both models must exist and at least have the root node defined?"/>
<domain xsi:type="qvtc:CoreDomain" isCheckable="true" isEnforceable="true" typedModel="#qT..Upper2Lower.upperGraph">
<guardPattern/>
<bottomPattern>
<realizedVariable xmi:id="qV..Upper2Lower.graph2graph.upperGraph.bottom.g1" name="g1" type="pivot:Class SimpleGraph.ecore.oclas#T.simplegraph.Graph"/>
</bottomPattern>
</domain>
<domain xsi:type="qvtc:CoreDomain" isCheckable="false" isEnforceable="true" typedModel="#qT..Upper2Lower.lowerGraph">
<guardPattern/>
<bottomPattern>
<realizedVariable xmi:id="qV..Upper2Lower.graph2graph.lowerGraph.bottom.g2" name="g2" type="pivot:Class SimpleGraph.ecore.oclas#T.simplegraph.Graph">
<ownedComments body="Enforced domains should at least have one realized variable?"/>
</realizedVariable>
</bottomPattern>
</domain>
<guardPattern/>
<bottomPattern>
<assignment xsi:type="qvtc:PropertyAssignment" isDefault="false" targetProperty="SimpleGraph2Graph.ecore.oclas#p.simplegraph2graph.Graph2Graph.graph1">
<value xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph.ecore.oclas#T.simplegraph.Graph" referredVariable="#qV..Upper2Lower.graph2graph.upperGraph.bottom.g1"/>
<slotExpression xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph2Graph.ecore.oclas#T.simplegraph2graph.Graph2Graph"
referredVariable="#qV..Upper2Lower.graph2graph.bottom.g2g"/>
</assignment>
<assignment xsi:type="qvtc:PropertyAssignment" isDefault="false" targetProperty="SimpleGraph2Graph.ecore.oclas#p.simplegraph2graph.Graph2Graph.graph2">
<value xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph.ecore.oclas#T.simplegraph.Graph" referredVariable="#qV..Upper2Lower.graph2graph.lowerGraph.bottom.g2"/>
<slotExpression xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph2Graph.ecore.oclas#T.simplegraph2graph.Graph2Graph"
referredVariable="#qV..Upper2Lower.graph2graph.bottom.g2g"/>
</assignment>
<realizedVariable xmi:id="qV..Upper2Lower.graph2graph.bottom.g2g" name="g2g" type="pivot:Class SimpleGraph2Graph.ecore.oclas#T.simplegraph2graph.Graph2Graph">
<ownedComments body="Although in the example is not realized, all middle model variables should be realized&#xA;or does the middle model is also expected to have at least the initial element?"/>
</realizedVariable>
</bottomPattern>
<local>
<guardPattern/>
<bottomPattern>
<assignment xsi:type="qvtc:PropertyAssignment" isDefault="false" targetProperty="SimpleGraph2Graph.ecore.oclas#p.simplegraph2graph.Graph2Graph.name">
<value xsi:type="pivot:OperationCallExp" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#String"
isSafe="true" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.String.toLowerCase">
<ownedSource xsi:type="pivot:PropertyCallExp" isRequired="false" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#String"
referredProperty="SimpleGraph.ecore.oclas#p.simplegraph.Graph.name">
<ownedSource xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph.ecore.oclas#T.simplegraph.Graph" referredVariable="#qV..Upper2Lower.graph2graph.upperGraph.bottom.g1"/>
</ownedSource>
</value>
<slotExpression xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph2Graph.ecore.oclas#T.simplegraph2graph.Graph2Graph"
referredVariable="#qV..Upper2Lower.graph2graph.bottom.g2g"/>
</assignment>
<assignment xsi:type="qvtc:PropertyAssignment" isDefault="false" targetProperty="SimpleGraph2Graph.ecore.oclas#p.simplegraph2graph.Graph2Graph.name">
<value xsi:type="pivot:OperationCallExp" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#String"
isSafe="true" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.String.toUpperCase">
<ownedSource xsi:type="pivot:PropertyCallExp" isRequired="false" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#String"
referredProperty="SimpleGraph.ecore.oclas#p.simplegraph.Graph.name">
<ownedSource xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph.ecore.oclas#T.simplegraph.Graph" referredVariable="#qV..Upper2Lower.graph2graph.lowerGraph.bottom.g2"/>
</ownedSource>
</value>
<slotExpression xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph2Graph.ecore.oclas#T.simplegraph2graph.Graph2Graph"
referredVariable="#qV..Upper2Lower.graph2graph.bottom.g2g"/>
</assignment>
<assignment xsi:type="qvtc:PropertyAssignment" isDefault="false" targetProperty="SimpleGraph.ecore.oclas#p.simplegraph.Graph.name">
<value xsi:type="pivot:PropertyCallExp" isRequired="false" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#String"
referredProperty="SimpleGraph2Graph.ecore.oclas#p.simplegraph2graph.Graph2Graph.name">
<ownedSource xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph2Graph.ecore.oclas#T.simplegraph2graph.Graph2Graph"
referredVariable="#qV..Upper2Lower.graph2graph.bottom.g2g"/>
</value>
<slotExpression xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph.ecore.oclas#T.simplegraph.Graph" referredVariable="#qV..Upper2Lower.graph2graph.upperGraph.bottom.g1"/>
</assignment>
<assignment xsi:type="qvtc:PropertyAssignment" isDefault="false" targetProperty="SimpleGraph.ecore.oclas#p.simplegraph.Graph.name">
<value xsi:type="pivot:PropertyCallExp" isRequired="false" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#String"
referredProperty="SimpleGraph2Graph.ecore.oclas#p.simplegraph2graph.Graph2Graph.name">
<ownedSource xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph2Graph.ecore.oclas#T.simplegraph2graph.Graph2Graph"
referredVariable="#qV..Upper2Lower.graph2graph.bottom.g2g"/>
</value>
<slotExpression xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph.ecore.oclas#T.simplegraph.Graph" referredVariable="#qV..Upper2Lower.graph2graph.lowerGraph.bottom.g2"/>
</assignment>
</bottomPattern>
</local>
</rule>
<rule xsi:type="qvtc:Mapping" xmi:id="m..Upper2Lower.node2node" name="node2node">
<domain xsi:type="qvtc:CoreDomain" isCheckable="true" isEnforceable="true" typedModel="#qT..Upper2Lower.upperGraph">
<guardPattern>
<variable xsi:type="qvtc:GuardVariable" xmi:id="qV..Upper2Lower.node2node.upperGraph.guard.g1" name="g1" type="pivot:Class SimpleGraph.ecore.oclas#T.simplegraph.Graph"/>
</guardPattern>
<bottomPattern>
<assignment xsi:type="qvtc:PropertyAssignment" isDefault="false" targetProperty="SimpleGraph.ecore.oclas#p.simplegraph.Element.graph">
<value xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph.ecore.oclas#T.simplegraph.Graph" referredVariable="#qV..Upper2Lower.node2node.upperGraph.guard.g1"/>
<slotExpression xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph.ecore.oclas#T.simplegraph.Node" referredVariable="#qV..Upper2Lower.node2node.upperGraph.bottom.n1"/>
</assignment>
<realizedVariable xmi:id="qV..Upper2Lower.node2node.upperGraph.bottom.n1" name="n1" type="pivot:Class SimpleGraph.ecore.oclas#T.simplegraph.Node"/>
</bottomPattern>
</domain>
<domain xsi:type="qvtc:CoreDomain" isCheckable="false" isEnforceable="true" typedModel="#qT..Upper2Lower.lowerGraph">
<guardPattern>
<variable xsi:type="qvtc:GuardVariable" xmi:id="qV..Upper2Lower.node2node.lowerGraph.guard.g2" name="g2" type="pivot:Class SimpleGraph.ecore.oclas#T.simplegraph.Graph"/>
</guardPattern>
<bottomPattern>
<assignment xsi:type="qvtc:PropertyAssignment" isDefault="false" targetProperty="SimpleGraph.ecore.oclas#p.simplegraph.Element.graph">
<value xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph.ecore.oclas#T.simplegraph.Graph" referredVariable="#qV..Upper2Lower.node2node.lowerGraph.guard.g2"/>
<slotExpression xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph.ecore.oclas#T.simplegraph.Node" referredVariable="#qV..Upper2Lower.node2node.lowerGraph.bottom.n2"/>
</assignment>
<realizedVariable xmi:id="qV..Upper2Lower.node2node.lowerGraph.bottom.n2" name="n2" type="pivot:Class SimpleGraph.ecore.oclas#T.simplegraph.Node"/>
</bottomPattern>
</domain>
<guardPattern>
<predicate>
<conditionExpression xsi:type="pivot:OperationCallExp" name="=" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#Boolean"
referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.%61%..ocl.OclSelf">
<ownedSource xsi:type="pivot:PropertyCallExp" type="pivot:Class SimpleGraph.ecore.oclas#T.simplegraph.Graph" referredProperty="SimpleGraph2Graph.ecore.oclas#p.simplegraph2graph.Graph2Graph.graph1">
<ownedSource xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph2Graph.ecore.oclas#T.simplegraph2graph.Graph2Graph"
referredVariable="#qV..Upper2Lower.node2node.guard.g2g"/>
</ownedSource>
<ownedArguments xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph.ecore.oclas#T.simplegraph.Graph" referredVariable="#qV..Upper2Lower.node2node.upperGraph.guard.g1"/>
</conditionExpression>
</predicate>
<predicate>
<conditionExpression xsi:type="pivot:OperationCallExp" name="=" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#Boolean"
referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.%61%..ocl.OclSelf">
<ownedSource xsi:type="pivot:PropertyCallExp" type="pivot:Class SimpleGraph.ecore.oclas#T.simplegraph.Graph" referredProperty="SimpleGraph2Graph.ecore.oclas#p.simplegraph2graph.Graph2Graph.graph2">
<ownedSource xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph2Graph.ecore.oclas#T.simplegraph2graph.Graph2Graph"
referredVariable="#qV..Upper2Lower.node2node.guard.g2g"/>
</ownedSource>
<ownedArguments xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph.ecore.oclas#T.simplegraph.Graph" referredVariable="#qV..Upper2Lower.node2node.lowerGraph.guard.g2"/>
</conditionExpression>
</predicate>
<variable xsi:type="qvtc:GuardVariable" xmi:id="qV..Upper2Lower.node2node.guard.g2g" name="g2g" type="pivot:Class SimpleGraph2Graph.ecore.oclas#T.simplegraph2graph.Graph2Graph"/>
</guardPattern>
<bottomPattern>
<assignment xsi:type="qvtc:PropertyAssignment" isDefault="false" targetProperty="SimpleGraph2Graph.ecore.oclas#p.simplegraph2graph.Element2Element.owner">
<value xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph2Graph.ecore.oclas#T.simplegraph2graph.Graph2Graph" referredVariable="#qV..Upper2Lower.node2node.guard.g2g"/>
<slotExpression xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph2Graph.ecore.oclas#T.simplegraph2graph.Node2Node"
referredVariable="#qV..Upper2Lower.node2node.bottom.n2n"/>
</assignment>
<assignment xsi:type="qvtc:PropertyAssignment" isDefault="false" targetProperty="SimpleGraph2Graph.ecore.oclas#p.simplegraph2graph.Node2Node.node1">
<value xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph.ecore.oclas#T.simplegraph.Node" referredVariable="#qV..Upper2Lower.node2node.upperGraph.bottom.n1"/>
<slotExpression xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph2Graph.ecore.oclas#T.simplegraph2graph.Node2Node"
referredVariable="#qV..Upper2Lower.node2node.bottom.n2n"/>
</assignment>
<assignment xsi:type="qvtc:PropertyAssignment" isDefault="false" targetProperty="SimpleGraph2Graph.ecore.oclas#p.simplegraph2graph.Node2Node.node2">
<value xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph.ecore.oclas#T.simplegraph.Node" referredVariable="#qV..Upper2Lower.node2node.lowerGraph.bottom.n2"/>
<slotExpression xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph2Graph.ecore.oclas#T.simplegraph2graph.Node2Node"
referredVariable="#qV..Upper2Lower.node2node.bottom.n2n"/>
</assignment>
<realizedVariable xmi:id="qV..Upper2Lower.node2node.bottom.n2n" name="n2n" type="pivot:Class SimpleGraph2Graph.ecore.oclas#T.simplegraph2graph.Node2Node"/>
</bottomPattern>
<local>
<guardPattern/>
<bottomPattern>
<assignment xsi:type="qvtc:PropertyAssignment" isDefault="false" targetProperty="SimpleGraph2Graph.ecore.oclas#p.simplegraph2graph.Node2Node.label">
<value xsi:type="pivot:OperationCallExp" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#String"
isSafe="true" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.String.toLowerCase">
<ownedSource xsi:type="pivot:PropertyCallExp" isRequired="false" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#String"
referredProperty="SimpleGraph.ecore.oclas#p.simplegraph.Node.label">
<ownedSource xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph.ecore.oclas#T.simplegraph.Node" referredVariable="#qV..Upper2Lower.node2node.upperGraph.bottom.n1"/>
</ownedSource>
</value>
<slotExpression xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph2Graph.ecore.oclas#T.simplegraph2graph.Node2Node"
referredVariable="#qV..Upper2Lower.node2node.bottom.n2n"/>
</assignment>
<assignment xsi:type="qvtc:PropertyAssignment" isDefault="false" targetProperty="SimpleGraph2Graph.ecore.oclas#p.simplegraph2graph.Node2Node.label">
<value xsi:type="pivot:OperationCallExp" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#String"
isSafe="true" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.String.toUpperCase">
<ownedSource xsi:type="pivot:PropertyCallExp" isRequired="false" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#String"
referredProperty="SimpleGraph.ecore.oclas#p.simplegraph.Node.label">
<ownedSource xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph.ecore.oclas#T.simplegraph.Node" referredVariable="#qV..Upper2Lower.node2node.lowerGraph.bottom.n2"/>
</ownedSource>
</value>
<slotExpression xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph2Graph.ecore.oclas#T.simplegraph2graph.Node2Node"
referredVariable="#qV..Upper2Lower.node2node.bottom.n2n"/>
</assignment>
<assignment xsi:type="qvtc:PropertyAssignment" isDefault="false" targetProperty="SimpleGraph.ecore.oclas#p.simplegraph.Node.label">
<value xsi:type="pivot:PropertyCallExp" isRequired="false" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#String"
referredProperty="SimpleGraph2Graph.ecore.oclas#p.simplegraph2graph.Node2Node.label">
<ownedSource xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph2Graph.ecore.oclas#T.simplegraph2graph.Node2Node"
referredVariable="#qV..Upper2Lower.node2node.bottom.n2n"/>
</value>
<slotExpression xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph.ecore.oclas#T.simplegraph.Node" referredVariable="#qV..Upper2Lower.node2node.upperGraph.bottom.n1"/>
</assignment>
<assignment xsi:type="qvtc:PropertyAssignment" isDefault="false" targetProperty="SimpleGraph.ecore.oclas#p.simplegraph.Node.label">
<value xsi:type="pivot:PropertyCallExp" isRequired="false" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#String"
referredProperty="SimpleGraph2Graph.ecore.oclas#p.simplegraph2graph.Node2Node.label">
<ownedSource xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph2Graph.ecore.oclas#T.simplegraph2graph.Node2Node"
referredVariable="#qV..Upper2Lower.node2node.bottom.n2n"/>
</value>
<slotExpression xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph.ecore.oclas#T.simplegraph.Node" referredVariable="#qV..Upper2Lower.node2node.lowerGraph.bottom.n2"/>
</assignment>
</bottomPattern>
</local>
</rule>
<rule xsi:type="qvtc:Mapping" xmi:id="m..Upper2Lower.edge2edge" name="edge2edge">
<domain xsi:type="qvtc:CoreDomain" isCheckable="false" isEnforceable="true" typedModel="#qT..Upper2Lower.upperGraph">
<guardPattern>
<variable xsi:type="qvtc:GuardVariable" xmi:id="qV..Upper2Lower.edge2edge.upperGraph.guard.g1" name="g1" type="pivot:Class SimpleGraph.ecore.oclas#T.simplegraph.Graph"/>
<variable xsi:type="qvtc:GuardVariable" xmi:id="qV..Upper2Lower.edge2edge.upperGraph.guard.sn1" name="sn1" type="pivot:Class SimpleGraph.ecore.oclas#T.simplegraph.Node"/>
<variable xsi:type="qvtc:GuardVariable" xmi:id="qV..Upper2Lower.edge2edge.upperGraph.guard.tn1" name="tn1" type="pivot:Class SimpleGraph.ecore.oclas#T.simplegraph.Node"/>
</guardPattern>
<bottomPattern>
<assignment xsi:type="qvtc:PropertyAssignment" isDefault="false" targetProperty="SimpleGraph.ecore.oclas#p.simplegraph.Element.graph">
<value xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph.ecore.oclas#T.simplegraph.Graph" referredVariable="#qV..Upper2Lower.edge2edge.upperGraph.guard.g1"/>
<slotExpression xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph.ecore.oclas#T.simplegraph.Edge" referredVariable="#qV..Upper2Lower.edge2edge.upperGraph.bottom.e1"/>
</assignment>
<assignment xsi:type="qvtc:PropertyAssignment" isDefault="false" targetProperty="SimpleGraph.ecore.oclas#p.simplegraph.Edge.source">
<value xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph.ecore.oclas#T.simplegraph.Node" referredVariable="#qV..Upper2Lower.edge2edge.upperGraph.guard.sn1"/>
<slotExpression xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph.ecore.oclas#T.simplegraph.Edge" referredVariable="#qV..Upper2Lower.edge2edge.upperGraph.bottom.e1"/>
</assignment>
<assignment xsi:type="qvtc:PropertyAssignment" isDefault="false" targetProperty="SimpleGraph.ecore.oclas#p.simplegraph.Edge.target">
<value xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph.ecore.oclas#T.simplegraph.Node" referredVariable="#qV..Upper2Lower.edge2edge.upperGraph.guard.tn1"/>
<slotExpression xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph.ecore.oclas#T.simplegraph.Edge" referredVariable="#qV..Upper2Lower.edge2edge.upperGraph.bottom.e1"/>
</assignment>
<realizedVariable xmi:id="qV..Upper2Lower.edge2edge.upperGraph.bottom.e1" name="e1" type="pivot:Class SimpleGraph.ecore.oclas#T.simplegraph.Edge"/>
</bottomPattern>
</domain>
<domain xsi:type="qvtc:CoreDomain" isCheckable="false" isEnforceable="true" typedModel="#qT..Upper2Lower.lowerGraph">
<guardPattern>
<variable xsi:type="qvtc:GuardVariable" xmi:id="qV..Upper2Lower.edge2edge.lowerGraph.guard.g2" name="g2" type="pivot:Class SimpleGraph.ecore.oclas#T.simplegraph.Graph"/>
<variable xsi:type="qvtc:GuardVariable" xmi:id="qV..Upper2Lower.edge2edge.lowerGraph.guard.sn2" name="sn2" type="pivot:Class SimpleGraph.ecore.oclas#T.simplegraph.Node"/>
<variable xsi:type="qvtc:GuardVariable" xmi:id="qV..Upper2Lower.edge2edge.lowerGraph.guard.tn2" name="tn2" type="pivot:Class SimpleGraph.ecore.oclas#T.simplegraph.Node"/>
</guardPattern>
<bottomPattern>
<assignment xsi:type="qvtc:PropertyAssignment" isDefault="false" targetProperty="SimpleGraph.ecore.oclas#p.simplegraph.Element.graph">
<value xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph.ecore.oclas#T.simplegraph.Graph" referredVariable="#qV..Upper2Lower.edge2edge.lowerGraph.guard.g2"/>
<slotExpression xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph.ecore.oclas#T.simplegraph.Edge" referredVariable="#qV..Upper2Lower.edge2edge.lowerGraph.bottom.e2"/>
</assignment>
<assignment xsi:type="qvtc:PropertyAssignment" isDefault="false" targetProperty="SimpleGraph.ecore.oclas#p.simplegraph.Edge.source">
<value xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph.ecore.oclas#T.simplegraph.Node" referredVariable="#qV..Upper2Lower.edge2edge.lowerGraph.guard.sn2"/>
<slotExpression xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph.ecore.oclas#T.simplegraph.Edge" referredVariable="#qV..Upper2Lower.edge2edge.lowerGraph.bottom.e2"/>
</assignment>
<assignment xsi:type="qvtc:PropertyAssignment" isDefault="false" targetProperty="SimpleGraph.ecore.oclas#p.simplegraph.Edge.target">
<value xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph.ecore.oclas#T.simplegraph.Node" referredVariable="#qV..Upper2Lower.edge2edge.lowerGraph.guard.tn2"/>
<slotExpression xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph.ecore.oclas#T.simplegraph.Edge" referredVariable="#qV..Upper2Lower.edge2edge.lowerGraph.bottom.e2"/>
</assignment>
<realizedVariable xmi:id="qV..Upper2Lower.edge2edge.lowerGraph.bottom.e2" name="e2" type="pivot:Class SimpleGraph.ecore.oclas#T.simplegraph.Edge"/>
</bottomPattern>
</domain>
<guardPattern>
<predicate>
<conditionExpression xsi:type="pivot:OperationCallExp" name="=" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#Boolean"
referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.%61%..ocl.OclSelf">
<ownedSource xsi:type="pivot:PropertyCallExp" type="pivot:Class SimpleGraph.ecore.oclas#T.simplegraph.Graph" referredProperty="SimpleGraph2Graph.ecore.oclas#p.simplegraph2graph.Graph2Graph.graph1">
<ownedSource xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph2Graph.ecore.oclas#T.simplegraph2graph.Graph2Graph"
referredVariable="#qV..Upper2Lower.edge2edge.guard.g2g"/>
</ownedSource>
<ownedArguments xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph.ecore.oclas#T.simplegraph.Graph" referredVariable="#qV..Upper2Lower.edge2edge.upperGraph.guard.g1"/>
</conditionExpression>
</predicate>
<predicate>
<conditionExpression xsi:type="pivot:OperationCallExp" name="=" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#Boolean"
referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.%61%..ocl.OclSelf">
<ownedSource xsi:type="pivot:PropertyCallExp" type="pivot:Class SimpleGraph.ecore.oclas#T.simplegraph.Graph" referredProperty="SimpleGraph2Graph.ecore.oclas#p.simplegraph2graph.Graph2Graph.graph2">
<ownedSource xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph2Graph.ecore.oclas#T.simplegraph2graph.Graph2Graph"
referredVariable="#qV..Upper2Lower.edge2edge.guard.g2g"/>
</ownedSource>
<ownedArguments xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph.ecore.oclas#T.simplegraph.Graph" referredVariable="#qV..Upper2Lower.edge2edge.lowerGraph.guard.g2"/>
</conditionExpression>
</predicate>
<predicate>
<conditionExpression xsi:type="pivot:OperationCallExp" name="=" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#Boolean"
referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.%61%..ocl.OclSelf">
<ownedSource xsi:type="pivot:PropertyCallExp" type="pivot:Class SimpleGraph2Graph.ecore.oclas#T.simplegraph2graph.Graph2Graph"
referredProperty="SimpleGraph2Graph.ecore.oclas#p.simplegraph2graph.Element2Element.owner">
<ownedSource xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph2Graph.ecore.oclas#T.simplegraph2graph.Node2Node"
referredVariable="#qV..Upper2Lower.edge2edge.guard.sn2n"/>
</ownedSource>
<ownedArguments xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph2Graph.ecore.oclas#T.simplegraph2graph.Graph2Graph"
referredVariable="#qV..Upper2Lower.edge2edge.guard.g2g"/>
</conditionExpression>
</predicate>
<predicate>
<conditionExpression xsi:type="pivot:OperationCallExp" name="=" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#Boolean"
referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.%61%..ocl.OclSelf">
<ownedSource xsi:type="pivot:PropertyCallExp" type="pivot:Class SimpleGraph.ecore.oclas#T.simplegraph.Node" referredProperty="SimpleGraph2Graph.ecore.oclas#p.simplegraph2graph.Node2Node.node1">
<ownedSource xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph2Graph.ecore.oclas#T.simplegraph2graph.Node2Node"
referredVariable="#qV..Upper2Lower.edge2edge.guard.sn2n"/>
</ownedSource>
<ownedArguments xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph.ecore.oclas#T.simplegraph.Node" referredVariable="#qV..Upper2Lower.edge2edge.upperGraph.guard.sn1"/>
</conditionExpression>
</predicate>
<predicate>
<conditionExpression xsi:type="pivot:OperationCallExp" name="=" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#Boolean"
referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.%61%..ocl.OclSelf">
<ownedSource xsi:type="pivot:PropertyCallExp" type="pivot:Class SimpleGraph.ecore.oclas#T.simplegraph.Node" referredProperty="SimpleGraph2Graph.ecore.oclas#p.simplegraph2graph.Node2Node.node2">
<ownedSource xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph2Graph.ecore.oclas#T.simplegraph2graph.Node2Node"
referredVariable="#qV..Upper2Lower.edge2edge.guard.sn2n"/>
</ownedSource>
<ownedArguments xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph.ecore.oclas#T.simplegraph.Node" referredVariable="#qV..Upper2Lower.edge2edge.lowerGraph.guard.sn2"/>
</conditionExpression>
</predicate>
<predicate>
<conditionExpression xsi:type="pivot:OperationCallExp" name="=" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#Boolean"
referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.%61%..ocl.OclSelf">
<ownedSource xsi:type="pivot:PropertyCallExp" type="pivot:Class SimpleGraph.ecore.oclas#T.simplegraph.Node" referredProperty="SimpleGraph2Graph.ecore.oclas#p.simplegraph2graph.Node2Node.node1">
<ownedSource xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph2Graph.ecore.oclas#T.simplegraph2graph.Node2Node"
referredVariable="#qV..Upper2Lower.edge2edge.guard.tn2n"/>
</ownedSource>
<ownedArguments xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph.ecore.oclas#T.simplegraph.Node" referredVariable="#qV..Upper2Lower.edge2edge.upperGraph.guard.tn1"/>
</conditionExpression>
</predicate>
<predicate>
<conditionExpression xsi:type="pivot:OperationCallExp" name="=" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#Boolean"
referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.%61%..ocl.OclSelf">
<ownedSource xsi:type="pivot:PropertyCallExp" type="pivot:Class SimpleGraph.ecore.oclas#T.simplegraph.Node" referredProperty="SimpleGraph2Graph.ecore.oclas#p.simplegraph2graph.Node2Node.node2">
<ownedSource xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph2Graph.ecore.oclas#T.simplegraph2graph.Node2Node"
referredVariable="#qV..Upper2Lower.edge2edge.guard.tn2n"/>
</ownedSource>
<ownedArguments xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph.ecore.oclas#T.simplegraph.Node" referredVariable="#qV..Upper2Lower.edge2edge.lowerGraph.guard.tn2"/>
</conditionExpression>
</predicate>
<variable xsi:type="qvtc:GuardVariable" xmi:id="qV..Upper2Lower.edge2edge.guard.g2g" name="g2g" type="pivot:Class SimpleGraph2Graph.ecore.oclas#T.simplegraph2graph.Graph2Graph"/>
<variable xsi:type="qvtc:GuardVariable" xmi:id="qV..Upper2Lower.edge2edge.guard.sn2n" name="sn2n" type="pivot:Class SimpleGraph2Graph.ecore.oclas#T.simplegraph2graph.Node2Node"/>
<variable xsi:type="qvtc:GuardVariable" xmi:id="qV..Upper2Lower.edge2edge.guard.tn2n" name="tn2n" type="pivot:Class SimpleGraph2Graph.ecore.oclas#T.simplegraph2graph.Node2Node"/>
</guardPattern>
<bottomPattern>
<assignment xsi:type="qvtc:PropertyAssignment" isDefault="false" targetProperty="SimpleGraph2Graph.ecore.oclas#p.simplegraph2graph.Element2Element.owner">
<value xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph2Graph.ecore.oclas#T.simplegraph2graph.Graph2Graph" referredVariable="#qV..Upper2Lower.edge2edge.guard.g2g"/>
<slotExpression xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph2Graph.ecore.oclas#T.simplegraph2graph.Edge2Edge"
referredVariable="#qV..Upper2Lower.edge2edge.bottom.e2e"/>
</assignment>
<assignment xsi:type="qvtc:PropertyAssignment" isDefault="false" targetProperty="SimpleGraph2Graph.ecore.oclas#p.simplegraph2graph.Edge2Edge.edge1">
<value xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph.ecore.oclas#T.simplegraph.Edge" referredVariable="#qV..Upper2Lower.edge2edge.upperGraph.bottom.e1"/>
<slotExpression xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph2Graph.ecore.oclas#T.simplegraph2graph.Edge2Edge"
referredVariable="#qV..Upper2Lower.edge2edge.bottom.e2e"/>
</assignment>
<assignment xsi:type="qvtc:PropertyAssignment" isDefault="false" targetProperty="SimpleGraph2Graph.ecore.oclas#p.simplegraph2graph.Edge2Edge.edge2">
<value xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph.ecore.oclas#T.simplegraph.Edge" referredVariable="#qV..Upper2Lower.edge2edge.lowerGraph.bottom.e2"/>
<slotExpression xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph2Graph.ecore.oclas#T.simplegraph2graph.Edge2Edge"
referredVariable="#qV..Upper2Lower.edge2edge.bottom.e2e"/>
</assignment>
<assignment xsi:type="qvtc:PropertyAssignment" isDefault="false" targetProperty="SimpleGraph2Graph.ecore.oclas#p.simplegraph2graph.Edge2Edge.source">
<value xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph2Graph.ecore.oclas#T.simplegraph2graph.Node2Node" referredVariable="#qV..Upper2Lower.edge2edge.guard.sn2n"/>
<slotExpression xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph2Graph.ecore.oclas#T.simplegraph2graph.Edge2Edge"
referredVariable="#qV..Upper2Lower.edge2edge.bottom.e2e"/>
</assignment>
<assignment xsi:type="qvtc:PropertyAssignment" isDefault="false" targetProperty="SimpleGraph2Graph.ecore.oclas#p.simplegraph2graph.Edge2Edge.target">
<value xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph2Graph.ecore.oclas#T.simplegraph2graph.Node2Node" referredVariable="#qV..Upper2Lower.edge2edge.guard.tn2n"/>
<slotExpression xsi:type="pivot:VariableExp" type="pivot:Class SimpleGraph2Graph.ecore.oclas#T.simplegraph2graph.Edge2Edge"
referredVariable="#qV..Upper2Lower.edge2edge.bottom.e2e"/>
</assignment>
<realizedVariable xmi:id="qV..Upper2Lower.edge2edge.bottom.e2e" name="e2e" type="pivot:Class SimpleGraph2Graph.ecore.oclas#T.simplegraph2graph.Edge2Edge"/>
</bottomPattern>
</rule>
<ownedContext xsi:type="pivot:ParameterVariable" xmi:id="qV..Upper2Lower.this" name="this" type="#T..Upper2Lower"/>
</ownedClasses>
</ownedPackages>
</qvtc:CoreModel>