blob: 38aa92bece9715b98beef94bc65a3dc4bdb94c18 [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="Families2Persons.qvtc" externalURI="platform:/resource/org.eclipse.qvtd.examples.qvtcore/qvtcsrc/Families2Persons/Families2Persons.qvtc">
<ownedImports name="fMM" importedNamespace="pivot:Package Families.ecore.oclas#P.Families"/>
<ownedImports name="pMM" importedNamespace="pivot:Package Persons.ecore.oclas#P.Persons"/>
<ownedImports name="f2pMM" importedNamespace="pivot:Package Families2Persons.ecore.oclas#P.Families2Persons"/>
<ownedPackages xmi:id="P." name="">
<ownedClasses xsi:type="qvtb:Transformation" xmi:id="T..F2P" name="F2P" superClasses="http://www.eclipse.org/ocl/2015/Library.oclas#T.ocl.OclElement">
<ownedOperations xsi:type="qvtb:Function" xmi:id="o..F2P.familyName..Families.Member" name="familyName" isRequired="false" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#String"
isStatic="true">
<ownedParameters xsi:type="qvtb:FunctionParameter" xmi:id="p0o..F2P.familyName..Families.Member" name="member" isRequired="false"
type="pivot:Class Families.ecore.oclas#T.Families.Member"/>
<queryExpression xsi:type="pivot:IfExp" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#String">
<ownedCondition xsi:type="pivot:OperationCallExp" name="not" isRequired="false" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#Boolean"
referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Boolean.not">
<ownedSource xsi:type="pivot:OperationCallExp" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#Boolean"
referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.oclIsUndefined">
<ownedSource xsi:type="pivot:PropertyCallExp" isRequired="false" type="pivot:Class Families.ecore.oclas#T.Families.Family"
referredProperty="Families.ecore.oclas#p.Families.Member.familyFather">
<ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class Families.ecore.oclas#T.Families.Member"
referredVariable="#p0o..F2P.familyName..Families.Member"/>
</ownedSource>
</ownedSource>
</ownedCondition>
<ownedElse xsi:type="pivot:IfExp" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#String">
<ownedCondition xsi:type="pivot:OperationCallExp" name="not" isRequired="false" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#Boolean"
referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Boolean.not">
<ownedSource xsi:type="pivot:OperationCallExp" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#Boolean"
referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.oclIsUndefined">
<ownedSource xsi:type="pivot:PropertyCallExp" isRequired="false" type="pivot:Class Families.ecore.oclas#T.Families.Family"
referredProperty="Families.ecore.oclas#p.Families.Member.familyMother">
<ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class Families.ecore.oclas#T.Families.Member"
referredVariable="#p0o..F2P.familyName..Families.Member"/>
</ownedSource>
</ownedSource>
</ownedCondition>
<ownedElse xsi:type="pivot:IfExp" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#String">
<ownedCondition xsi:type="pivot:OperationCallExp" name="not" isRequired="false" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#Boolean"
referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Boolean.not">
<ownedSource xsi:type="pivot:OperationCallExp" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#Boolean"
referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.oclIsUndefined">
<ownedSource xsi:type="pivot:PropertyCallExp" isRequired="false" type="pivot:Class Families.ecore.oclas#T.Families.Family"
referredProperty="Families.ecore.oclas#p.Families.Member.familySon">
<ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class Families.ecore.oclas#T.Families.Member"
referredVariable="#p0o..F2P.familyName..Families.Member"/>
</ownedSource>
</ownedSource>
</ownedCondition>
<ownedElse xsi:type="pivot:PropertyCallExp" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#String"
referredProperty="Families.ecore.oclas#p.Families.Family.lastName">
<ownedSource xsi:type="pivot:PropertyCallExp" isRequired="false" type="pivot:Class Families.ecore.oclas#T.Families.Family"
referredProperty="Families.ecore.oclas#p.Families.Member.familyDaughter">
<ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class Families.ecore.oclas#T.Families.Member"
referredVariable="#p0o..F2P.familyName..Families.Member"/>
</ownedSource>
</ownedElse>
<ownedThen xsi:type="pivot:PropertyCallExp" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#String"
referredProperty="Families.ecore.oclas#p.Families.Family.lastName">
<ownedSource xsi:type="pivot:PropertyCallExp" isRequired="false" type="pivot:Class Families.ecore.oclas#T.Families.Family"
referredProperty="Families.ecore.oclas#p.Families.Member.familySon">
<ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class Families.ecore.oclas#T.Families.Member"
referredVariable="#p0o..F2P.familyName..Families.Member"/>
</ownedSource>
</ownedThen>
</ownedElse>
<ownedThen xsi:type="pivot:PropertyCallExp" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#String"
referredProperty="Families.ecore.oclas#p.Families.Family.lastName">
<ownedSource xsi:type="pivot:PropertyCallExp" isRequired="false" type="pivot:Class Families.ecore.oclas#T.Families.Family"
referredProperty="Families.ecore.oclas#p.Families.Member.familyMother">
<ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class Families.ecore.oclas#T.Families.Member"
referredVariable="#p0o..F2P.familyName..Families.Member"/>
</ownedSource>
</ownedThen>
</ownedElse>
<ownedThen xsi:type="pivot:PropertyCallExp" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#String"
referredProperty="Families.ecore.oclas#p.Families.Family.lastName">
<ownedSource xsi:type="pivot:PropertyCallExp" isRequired="false" type="pivot:Class Families.ecore.oclas#T.Families.Family"
referredProperty="Families.ecore.oclas#p.Families.Member.familyFather">
<ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class Families.ecore.oclas#T.Families.Member" referredVariable="#p0o..F2P.familyName..Families.Member"/>
</ownedSource>
</ownedThen>
</queryExpression>
</ownedOperations>
<ownedOperations xsi:type="qvtb:Function" xmi:id="o..F2P.isFemale..Families.Member" name="isFemale" isRequired="false" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#Boolean"
isStatic="true">
<ownedParameters xsi:type="qvtb:FunctionParameter" xmi:id="p0o..F2P.isFemale..Families.Member" name="member" isRequired="false"
type="pivot:Class Families.ecore.oclas#T.Families.Member"/>
<queryExpression xsi:type="pivot:IfExp" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#Boolean">
<ownedCondition xsi:type="pivot:OperationCallExp" name="not" isRequired="false" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#Boolean"
referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Boolean.not">
<ownedSource xsi:type="pivot:OperationCallExp" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#Boolean"
referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.oclIsUndefined">
<ownedSource xsi:type="pivot:PropertyCallExp" isRequired="false" type="pivot:Class Families.ecore.oclas#T.Families.Family"
referredProperty="Families.ecore.oclas#p.Families.Member.familyMother">
<ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class Families.ecore.oclas#T.Families.Member"
referredVariable="#p0o..F2P.isFemale..Families.Member"/>
</ownedSource>
</ownedSource>
</ownedCondition>
<ownedElse xsi:type="pivot:IfExp" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#Boolean">
<ownedCondition xsi:type="pivot:OperationCallExp" name="not" isRequired="false" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#Boolean"
referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Boolean.not">
<ownedSource xsi:type="pivot:OperationCallExp" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#Boolean"
referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.OclAny.oclIsUndefined">
<ownedSource xsi:type="pivot:PropertyCallExp" isRequired="false" type="pivot:Class Families.ecore.oclas#T.Families.Family"
referredProperty="Families.ecore.oclas#p.Families.Member.familyDaughter">
<ownedSource xsi:type="pivot:VariableExp" isRequired="false" type="pivot:Class Families.ecore.oclas#T.Families.Member"
referredVariable="#p0o..F2P.isFemale..Families.Member"/>
</ownedSource>
</ownedSource>
</ownedCondition>
<ownedElse xsi:type="pivot:BooleanLiteralExp" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#Boolean"
booleanSymbol="false"/>
<ownedThen xsi:type="pivot:BooleanLiteralExp" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#Boolean"
booleanSymbol="true"/>
</ownedElse>
<ownedThen xsi:type="pivot:BooleanLiteralExp" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#Boolean"
booleanSymbol="true"/>
</queryExpression>
</ownedOperations>
<modelParameter xmi:id="qT..F2P.family" name="family" usedPackage="Families.ecore.oclas#P.Families"/>
<modelParameter xmi:id="qT..F2P.person" name="person" usedPackage="Persons.ecore.oclas#P.Persons"/>
<modelParameter usedPackage="Families2Persons.ecore.oclas#P.Families2Persons"/>
<rule xsi:type="qvtc:Mapping" name="Member2Male">
<domain xsi:type="qvtc:CoreDomain" isCheckable="true" isEnforceable="false" typedModel="#qT..F2P.family">
<guardPattern>
<predicate>
<conditionExpression xsi:type="pivot:OperationCallExp" name="not" isRequired="false" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#Boolean"
referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.Boolean.not">
<ownedSource xsi:type="pivot:OperationCallExp" isRequired="false" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#Boolean"
referredOperation="#o..F2P.isFemale..Families.Member">
<ownedArguments xsi:type="pivot:VariableExp" type="pivot:Class Families.ecore.oclas#T.Families.Member" referredVariable="#qV..F2P.Member2Male.family.guard.s"/>
</ownedSource>
</conditionExpression>
</predicate>
<variable xmi:id="qV..F2P.Member2Male.family.guard.s" name="s" type="pivot:Class Families.ecore.oclas#T.Families.Member"/>
</guardPattern>
<bottomPattern/>
</domain>
<domain xsi:type="qvtc:CoreDomain" isCheckable="false" isEnforceable="true" typedModel="#qT..F2P.person">
<guardPattern/>
<bottomPattern>
<realizedVariable xmi:id="qV..F2P.Member2Male.person.bottom.t" name="t" type="pivot:Class Persons.ecore.oclas#T.Persons.Male"/>
</bottomPattern>
</domain>
<guardPattern/>
<bottomPattern>
<assignment xsi:type="qvtc:PropertyAssignment" isDefault="false" targetProperty="Families2Persons.ecore.oclas#p.Families2Persons.MemberToPerson.member">
<value xsi:type="pivot:VariableExp" type="pivot:Class Families.ecore.oclas#T.Families.Member" referredVariable="#qV..F2P.Member2Male.family.guard.s"/>
<slotExpression xsi:type="pivot:VariableExp" type="pivot:Class Families2Persons.ecore.oclas#T.Families2Persons.Member2Male"
referredVariable="#qV..F2P.Member2Male.bottom.m2m"/>
</assignment>
<assignment xsi:type="qvtc:PropertyAssignment" isDefault="false" targetProperty="Families2Persons.ecore.oclas#p.Families2Persons.MemberToPerson.person">
<value xsi:type="pivot:VariableExp" type="pivot:Class Persons.ecore.oclas#T.Persons.Male" referredVariable="#qV..F2P.Member2Male.person.bottom.t"/>
<slotExpression xsi:type="pivot:VariableExp" type="pivot:Class Families2Persons.ecore.oclas#T.Families2Persons.Member2Male"
referredVariable="#qV..F2P.Member2Male.bottom.m2m"/>
</assignment>
<realizedVariable xmi:id="qV..F2P.Member2Male.bottom.m2m" name="m2m" type="pivot:Class Families2Persons.ecore.oclas#T.Families2Persons.Member2Male"/>
</bottomPattern>
<local>
<guardPattern/>
<bottomPattern>
<assignment xsi:type="qvtc:PropertyAssignment" isDefault="false" targetProperty="Persons.ecore.oclas#p.Persons.Person.fullName">
<value xsi:type="pivot:OperationCallExp" name="+" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.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 http://www.eclipse.org/ocl/2015/Library.oclas#String"
referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.String.%43%..ocl.String">
<ownedSource xsi:type="pivot:PropertyCallExp" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#String"
referredProperty="Families.ecore.oclas#p.Families.Member.firstName">
<ownedSource xsi:type="pivot:VariableExp" type="pivot:Class Families.ecore.oclas#T.Families.Member" referredVariable="#qV..F2P.Member2Male.family.guard.s"/>
</ownedSource>
<ownedArguments xsi:type="pivot:StringLiteralExp" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#String"
stringSymbol=" "/>
</ownedSource>
<ownedArguments xsi:type="pivot:OperationCallExp" isRequired="false" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#String"
referredOperation="#o..F2P.familyName..Families.Member">
<ownedArguments xsi:type="pivot:VariableExp" type="pivot:Class Families.ecore.oclas#T.Families.Member" referredVariable="#qV..F2P.Member2Male.family.guard.s"/>
</ownedArguments>
</value>
<slotExpression xsi:type="pivot:VariableExp" type="pivot:Class Persons.ecore.oclas#T.Persons.Male" referredVariable="#qV..F2P.Member2Male.person.bottom.t"/>
</assignment>
</bottomPattern>
</local>
</rule>
<rule xsi:type="qvtc:Mapping" name="Member2Female">
<domain xsi:type="qvtc:CoreDomain" isCheckable="true" isEnforceable="false" typedModel="#qT..F2P.family">
<guardPattern>
<predicate>
<conditionExpression xsi:type="pivot:OperationCallExp" isRequired="false" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#Boolean"
referredOperation="#o..F2P.isFemale..Families.Member">
<ownedArguments xsi:type="pivot:VariableExp" type="pivot:Class Families.ecore.oclas#T.Families.Member" referredVariable="#qV..F2P.Member2Female.family.guard.s"/>
</conditionExpression>
</predicate>
<variable xmi:id="qV..F2P.Member2Female.family.guard.s" name="s" type="pivot:Class Families.ecore.oclas#T.Families.Member"/>
</guardPattern>
<bottomPattern/>
</domain>
<domain xsi:type="qvtc:CoreDomain" isCheckable="false" isEnforceable="true" typedModel="#qT..F2P.person">
<guardPattern/>
<bottomPattern>
<realizedVariable xmi:id="qV..F2P.Member2Female.person.bottom.t" name="t" type="pivot:Class Persons.ecore.oclas#T.Persons.Female"/>
</bottomPattern>
</domain>
<guardPattern/>
<bottomPattern>
<assignment xsi:type="qvtc:PropertyAssignment" isDefault="false" targetProperty="Families2Persons.ecore.oclas#p.Families2Persons.MemberToPerson.member">
<value xsi:type="pivot:VariableExp" type="pivot:Class Families.ecore.oclas#T.Families.Member" referredVariable="#qV..F2P.Member2Female.family.guard.s"/>
<slotExpression xsi:type="pivot:VariableExp" type="pivot:Class Families2Persons.ecore.oclas#T.Families2Persons.Member2Female"
referredVariable="#qV..F2P.Member2Female.bottom.m2m"/>
</assignment>
<assignment xsi:type="qvtc:PropertyAssignment" isDefault="false" targetProperty="Families2Persons.ecore.oclas#p.Families2Persons.MemberToPerson.person">
<value xsi:type="pivot:VariableExp" type="pivot:Class Persons.ecore.oclas#T.Persons.Female" referredVariable="#qV..F2P.Member2Female.person.bottom.t"/>
<slotExpression xsi:type="pivot:VariableExp" type="pivot:Class Families2Persons.ecore.oclas#T.Families2Persons.Member2Female"
referredVariable="#qV..F2P.Member2Female.bottom.m2m"/>
</assignment>
<realizedVariable xmi:id="qV..F2P.Member2Female.bottom.m2m" name="m2m" type="pivot:Class Families2Persons.ecore.oclas#T.Families2Persons.Member2Female"/>
</bottomPattern>
<local>
<guardPattern/>
<bottomPattern>
<assignment xsi:type="qvtc:PropertyAssignment" isDefault="false" targetProperty="Persons.ecore.oclas#p.Persons.Person.fullName">
<value xsi:type="pivot:OperationCallExp" name="+" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.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 http://www.eclipse.org/ocl/2015/Library.oclas#String"
referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#o.ocl.String.%43%..ocl.String">
<ownedSource xsi:type="pivot:PropertyCallExp" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#String"
referredProperty="Families.ecore.oclas#p.Families.Member.firstName">
<ownedSource xsi:type="pivot:VariableExp" type="pivot:Class Families.ecore.oclas#T.Families.Member" referredVariable="#qV..F2P.Member2Female.family.guard.s"/>
</ownedSource>
<ownedArguments xsi:type="pivot:StringLiteralExp" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#String"
stringSymbol=" "/>
</ownedSource>
<ownedArguments xsi:type="pivot:OperationCallExp" isRequired="false" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#String"
referredOperation="#o..F2P.familyName..Families.Member">
<ownedArguments xsi:type="pivot:VariableExp" type="pivot:Class Families.ecore.oclas#T.Families.Member" referredVariable="#qV..F2P.Member2Female.family.guard.s"/>
</ownedArguments>
</value>
<slotExpression xsi:type="pivot:VariableExp" type="pivot:Class Persons.ecore.oclas#T.Persons.Female" referredVariable="#qV..F2P.Member2Female.person.bottom.t"/>
</assignment>
</bottomPattern>
</local>
</rule>
</ownedClasses>
</ownedPackages>
</qvtc:CoreModel>