diff options
author | Ed Willink | 2017-10-07 14:13:17 +0000 |
---|---|---|
committer | Ed Willink | 2017-10-07 16:04:42 +0000 |
commit | dfed7e60e574ddc5c28cf29f035aadba11249847 (patch) | |
tree | 379725f908ca46841556fc9f2431d25b6625afa9 | |
parent | 3ee3500af50bb1d23f634981dc672877e4ace3cf (diff) | |
download | org.eclipse.qvtd-dfed7e60e574ddc5c28cf29f035aadba11249847.tar.gz org.eclipse.qvtd-dfed7e60e574ddc5c28cf29f035aadba11249847.tar.xz org.eclipse.qvtd-dfed7e60e574ddc5c28cf29f035aadba11249847.zip |
[514590] Add full ATL tests
15 files changed, 7014 insertions, 664 deletions
diff --git a/plugins/org.eclipse.qvtd.atl/src/org/eclipse/qvtd/atl/atl2qvtr/Helper4getCommonType.java b/plugins/org.eclipse.qvtd.atl/src/org/eclipse/qvtd/atl/atl2qvtr/Helper4getCommonType.java new file mode 100644 index 000000000..92ce4de26 --- /dev/null +++ b/plugins/org.eclipse.qvtd.atl/src/org/eclipse/qvtd/atl/atl2qvtr/Helper4getCommonType.java @@ -0,0 +1,22 @@ +package org.eclipse.qvtd.atl.atl2qvtr; + +import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.jdt.annotation.Nullable; +import org.eclipse.ocl.pivot.evaluation.Executor; +import org.eclipse.ocl.pivot.ids.TypeId; +import org.eclipse.ocl.pivot.library.AbstractBinaryOperation; + +public class Helper4getCommonType extends AbstractBinaryOperation +{ + public static final @NonNull Helper4getCommonType INSTANCE = new Helper4getCommonType(); + + @Override + public org.eclipse.ocl.pivot.@NonNull Class evaluate(@NonNull Executor executor, @NonNull TypeId returnTypeId, @Nullable Object sourceValue, @Nullable Object argumentValue) { + org.eclipse.ocl.pivot.Class asType1 = (org.eclipse.ocl.pivot.Class)sourceValue; + org.eclipse.ocl.pivot.Class asType2 = (org.eclipse.ocl.pivot.Class)argumentValue; + assert (asType1 != null); + assert (asType2 != null); + org.eclipse.ocl.pivot.Class asCommonType = (org.eclipse.ocl.pivot.Class)asType1.getCommonType(executor.getIdResolver(), asType2); + return asCommonType; + } +} diff --git a/plugins/org.eclipse.qvtd.atl/src/org/eclipse/qvtd/atl/atl2qvtr/Helper4getModule.java b/plugins/org.eclipse.qvtd.atl/src/org/eclipse/qvtd/atl/atl2qvtr/Helper4getModule.java new file mode 100644 index 000000000..6ee3599eb --- /dev/null +++ b/plugins/org.eclipse.qvtd.atl/src/org/eclipse/qvtd/atl/atl2qvtr/Helper4getModule.java @@ -0,0 +1,28 @@ +package org.eclipse.qvtd.atl.atl2qvtr; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.jdt.annotation.Nullable; +import org.eclipse.m2m.atl.common.ATL.LocatedElement; +import org.eclipse.m2m.atl.common.ATL.Module; +import org.eclipse.ocl.pivot.evaluation.Executor; +import org.eclipse.ocl.pivot.ids.TypeId; +import org.eclipse.ocl.pivot.library.AbstractUnaryOperation; + +public class Helper4getModule extends AbstractUnaryOperation +{ + public static final @NonNull Helper4getModule INSTANCE = new Helper4getModule(); + + // query getHelper(element : atlMM::LocatedElement) : atlMM::Helper[1] { + // element->closure(e : ocl::OclElement | e.oclContainer())->selectByKind(atlMM::Helper)->any(true) + // } + @Override + public @NonNull Module evaluate(@NonNull Executor executor, @NonNull TypeId returnTypeId, @Nullable Object sourceValue) { + for (EObject eObject = (LocatedElement)sourceValue; eObject != null; eObject = eObject.eContainer()) { + if (eObject instanceof Module) { + return (Module) eObject; + } + } + return (Module) throwInvalidValueException(); + } +} diff --git a/plugins/org.eclipse.qvtd.atl/src/org/eclipse/qvtd/atl/atl2qvtr/Helper4getOperation.java b/plugins/org.eclipse.qvtd.atl/src/org/eclipse/qvtd/atl/atl2qvtr/Helper4getOperation.java new file mode 100644 index 000000000..64bd543dd --- /dev/null +++ b/plugins/org.eclipse.qvtd.atl/src/org/eclipse/qvtd/atl/atl2qvtr/Helper4getOperation.java @@ -0,0 +1,33 @@ +package org.eclipse.qvtd.atl.atl2qvtr; + +import java.util.Iterator; + +import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.jdt.annotation.Nullable; +import org.eclipse.ocl.pivot.CompleteClass; +import org.eclipse.ocl.pivot.Operation; +import org.eclipse.ocl.pivot.evaluation.Executor; +import org.eclipse.ocl.pivot.ids.TypeId; +import org.eclipse.ocl.pivot.library.AbstractBinaryOperation; + +public class Helper4getOperation extends AbstractBinaryOperation +{ + public static final @NonNull Helper4getOperation INSTANCE = new Helper4getOperation(); + + @Override + public @NonNull Operation evaluate(@NonNull Executor executor, @NonNull TypeId returnTypeId, @Nullable Object sourceValue, @Nullable Object argumentValue) { + org.eclipse.ocl.pivot.Class asType = (org.eclipse.ocl.pivot.Class)sourceValue; + Operation asOperation = null; + assert (asType != null);// { + String operationName = (String) argumentValue; + assert operationName != null; + CompleteClass completeClass = executor.getEnvironmentFactory().getCompleteModel().getCompleteClass(asType); + Iterator<@NonNull Operation> asOperations = completeClass.getOperations(null, operationName).iterator(); + asOperation = asOperations.hasNext() ? asOperations.next() : null; + // } + if (asOperation == null) { + asOperation = executor.getStandardLibrary().getOclInvalidOperation(); + } + return asOperation; + } +} diff --git a/plugins/org.eclipse.qvtd.atl/src/org/eclipse/qvtd/atl/atl2qvtr/Helper4getTypedModel.java b/plugins/org.eclipse.qvtd.atl/src/org/eclipse/qvtd/atl/atl2qvtr/Helper4getTypedModel.java new file mode 100644 index 000000000..51a384e0f --- /dev/null +++ b/plugins/org.eclipse.qvtd.atl/src/org/eclipse/qvtd/atl/atl2qvtr/Helper4getTypedModel.java @@ -0,0 +1,33 @@ +package org.eclipse.qvtd.atl.atl2qvtr; + +import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.jdt.annotation.Nullable; +import org.eclipse.ocl.pivot.evaluation.Executor; +import org.eclipse.ocl.pivot.ids.TypeId; +import org.eclipse.ocl.pivot.library.AbstractBinaryOperation; +import org.eclipse.ocl.pivot.utilities.ClassUtil; +import org.eclipse.qvtd.pivot.qvtbase.TypedModel; +import org.eclipse.qvtd.pivot.qvtrelation.Relation; + +public class Helper4getTypedModel extends AbstractBinaryOperation +{ + public static final @NonNull Helper4getTypedModel INSTANCE = new Helper4getTypedModel(); + + @Override + public @NonNull TypedModel evaluate(@NonNull Executor executor, @NonNull TypeId returnTypeId, @Nullable Object sourceValue, @Nullable Object argumentValue) { + Relation relation = (Relation)argumentValue; + assert relation != null; + /* String propertyName = (String) argumentValue; + if (sourceValue instanceof OclType) { + OclType atlType = (OclType)sourceValue; + assert propertyName != null; + org.eclipse.ocl.pivot.Class asType = HelperUtils.getType(executor, atlType); + CompleteClass completeClass = executor.getEnvironmentFactory().getCompleteModel().getCompleteClass(asType); + asProperty = completeClass.getProperty(propertyName); + } + if (asProperty == null) { + asProperty = executor.getStandardLibrary().getOclInvalidProperty(); + } */ + return ClassUtil.nonNullState(relation.getTransformation().getModelParameter().get(0)); + } +} diff --git a/plugins/org.eclipse.qvtd.atl/src/org/eclipse/qvtd/atl/atl2qvtr/samples/Families.ecore b/plugins/org.eclipse.qvtd.atl/src/org/eclipse/qvtd/atl/atl2qvtr/samples/Families.ecore deleted file mode 100644 index 19b530321..000000000 --- a/plugins/org.eclipse.qvtd.atl/src/org/eclipse/qvtd/atl/atl2qvtr/samples/Families.ecore +++ /dev/null @@ -1,29 +0,0 @@ -<?xml version="1.0" encoding="ISO-8859-1"?> -<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="Families" nsURI="http://www.eclipse.org/qvtd/xtext/qvtcore/tests/Upper2Lower/1.0/Families" - nsPrefix="families"> - <eClassifiers xsi:type="ecore:EClass" name="Family"> - <eStructuralFeatures xsi:type="ecore:EAttribute" name="lastName" ordered="false" - unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> - <eStructuralFeatures xsi:type="ecore:EReference" name="father" ordered="false" - lowerBound="1" eType="#//Member" containment="true" eOpposite="#//Member/familyFather"/> - <eStructuralFeatures xsi:type="ecore:EReference" name="mother" ordered="false" - lowerBound="1" eType="#//Member" containment="true" eOpposite="#//Member/familyMother"/> - <eStructuralFeatures xsi:type="ecore:EReference" name="sons" ordered="false" upperBound="-1" - eType="#//Member" containment="true" eOpposite="#//Member/familySon"/> - <eStructuralFeatures xsi:type="ecore:EReference" name="daughters" ordered="false" - upperBound="-1" eType="#//Member" containment="true" eOpposite="#//Member/familyDaughter"/> - </eClassifiers> - <eClassifiers xsi:type="ecore:EClass" name="Member"> - <eStructuralFeatures xsi:type="ecore:EAttribute" name="firstName" ordered="false" - unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> - <eStructuralFeatures xsi:type="ecore:EReference" name="familyFather" ordered="false" - eType="#//Family" eOpposite="#//Family/father"/> - <eStructuralFeatures xsi:type="ecore:EReference" name="familyMother" ordered="false" - eType="#//Family" eOpposite="#//Family/mother"/> - <eStructuralFeatures xsi:type="ecore:EReference" name="familySon" ordered="false" - eType="#//Family" eOpposite="#//Family/sons"/> - <eStructuralFeatures xsi:type="ecore:EReference" name="familyDaughter" ordered="false" - eType="#//Family" eOpposite="#//Family/daughters"/> - </eClassifiers> -</ecore:EPackage> diff --git a/plugins/org.eclipse.qvtd.atl/src/org/eclipse/qvtd/atl/atl2qvtr/samples/Families2Persons.atl b/plugins/org.eclipse.qvtd.atl/src/org/eclipse/qvtd/atl/atl2qvtr/samples/Families2Persons.atl deleted file mode 100644 index 4f657be7b..000000000 --- a/plugins/org.eclipse.qvtd.atl/src/org/eclipse/qvtd/atl/atl2qvtr/samples/Families2Persons.atl +++ /dev/null @@ -1,51 +0,0 @@ --- @atlcompiler emftvm
--- @path Families=/org.eclipse.qvtd.atl.tests/src/org/eclipse/qvtd/atl/tests/families2persons/Families.ecore
--- @path Persons=/org.eclipse.qvtd.atl.tests/src/org/eclipse/qvtd/atl/tests/families2persons/Persons.ecore
-
-module Families2Persons;
-create OUT : Persons from IN : Families;
-
-helper context Families!Member def: familyName : String =
- if not self.familyFather.oclIsUndefined() then
- self.familyFather.lastName
- else
- if not self.familyMother.oclIsUndefined() then
- self.familyMother.lastName
- else
- if not self.familySon.oclIsUndefined() then
- self.familySon.lastName
- else
- self.familyDaughter.lastName
- endif
- endif
- endif;
-
-helper context Families!Member def: isFemale() : Boolean =
- if not self.familyMother.oclIsUndefined() then
- true
- else
- if not self.familyDaughter.oclIsUndefined() then
- true
- else
- false
- endif
- endif;
-
-rule Member2Male {
- from
- s : Families!Member (not s.isFemale())
- to
- t : Persons!Male (
- fullName <- s.firstName + ' ' + s.familyName
- )
-}
-
-rule Member2Female {
- from
- s : Families!Member (s.isFemale())
- to
- t : Persons!Female (
- fullName <- s.firstName + ' ' + s.familyName
- )
-}
-
diff --git a/plugins/org.eclipse.qvtd.atl/src/org/eclipse/qvtd/atl/atl2qvtr/samples/Families2Persons.atl.xmi b/plugins/org.eclipse.qvtd.atl/src/org/eclipse/qvtd/atl/atl2qvtr/samples/Families2Persons.atl.xmi deleted file mode 100644 index 2ff77b7dd..000000000 --- a/plugins/org.eclipse.qvtd.atl/src/org/eclipse/qvtd/atl/atl2qvtr/samples/Families2Persons.atl.xmi +++ /dev/null @@ -1,167 +0,0 @@ -<?xml version="1.0" encoding="ASCII"?>
-<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:atl="http://www.eclipse.org/gmt/2005/ATL" xmlns:ocl="http://www.eclipse.org/gmt/2005/OCL">
- <atl:Module location="5:1-50:2" name="Families2Persons">
- <commentsBefore>-- @atlcompiler emftvm</commentsBefore>
- <commentsBefore>-- @path Families=/org.eclipse.qvtd.atl.tests/src/org/eclipse/qvtd/atl/tests/families2persons/Families.ecore</commentsBefore>
- <commentsBefore>-- @path Persons=/org.eclipse.qvtd.atl.tests/src/org/eclipse/qvtd/atl/tests/families2persons/Persons.ecore</commentsBefore>
- <inModels location="6:27-6:40" name="IN" metamodel="/2"/>
- <outModels location="6:8-6:21" name="OUT" metamodel="/1"/>
- <elements xsi:type="atl:Helper" location="8:1-21:8">
- <definition location="8:8-21:7">
- <feature xsi:type="ocl:Attribute" location="8:37-21:7" name="familyName">
- <initExpression xsi:type="ocl:IfExp" location="9:2-21:7">
- <thenExpression xsi:type="ocl:NavigationOrAttributeCallExp" location="10:3-10:29" name="lastName">
- <source xsi:type="ocl:NavigationOrAttributeCallExp" location="10:3-10:20" name="familyFather">
- <source xsi:type="ocl:VariableExp" location="10:3-10:7" referredVariable="/4"/>
- </source>
- </thenExpression>
- <condition xsi:type="ocl:OperatorCallExp" location="9:5-9:43" operationName="not">
- <source xsi:type="ocl:OperationCallExp" location="9:9-9:43" operationName="oclIsUndefined">
- <source xsi:type="ocl:NavigationOrAttributeCallExp" location="9:9-9:26" name="familyFather">
- <source xsi:type="ocl:VariableExp" location="9:9-9:13" referredVariable="/3"/>
- </source>
- </source>
- </condition>
- <elseExpression xsi:type="ocl:IfExp" location="12:3-20:8">
- <thenExpression xsi:type="ocl:NavigationOrAttributeCallExp" location="13:4-13:30" name="lastName">
- <source xsi:type="ocl:NavigationOrAttributeCallExp" location="13:4-13:21" name="familyMother">
- <source xsi:type="ocl:VariableExp" location="13:4-13:8" referredVariable="/6"/>
- </source>
- </thenExpression>
- <condition xsi:type="ocl:OperatorCallExp" location="12:6-12:44" operationName="not">
- <source xsi:type="ocl:OperationCallExp" location="12:10-12:44" operationName="oclIsUndefined">
- <source xsi:type="ocl:NavigationOrAttributeCallExp" location="12:10-12:27" name="familyMother">
- <source xsi:type="ocl:VariableExp" location="12:10-12:14" referredVariable="/5"/>
- </source>
- </source>
- </condition>
- <elseExpression xsi:type="ocl:IfExp" location="15:4-19:9">
- <thenExpression xsi:type="ocl:NavigationOrAttributeCallExp" location="16:5-16:28" name="lastName">
- <source xsi:type="ocl:NavigationOrAttributeCallExp" location="16:5-16:19" name="familySon">
- <source xsi:type="ocl:VariableExp" location="16:5-16:9" referredVariable="/8"/>
- </source>
- </thenExpression>
- <condition xsi:type="ocl:OperatorCallExp" location="15:7-15:42" operationName="not">
- <source xsi:type="ocl:OperationCallExp" location="15:11-15:42" operationName="oclIsUndefined">
- <source xsi:type="ocl:NavigationOrAttributeCallExp" location="15:11-15:25" name="familySon">
- <source xsi:type="ocl:VariableExp" location="15:11-15:15" referredVariable="/7"/>
- </source>
- </source>
- </condition>
- <elseExpression xsi:type="ocl:NavigationOrAttributeCallExp" location="18:5-18:33" name="lastName">
- <source xsi:type="ocl:NavigationOrAttributeCallExp" location="18:5-18:24" name="familyDaughter">
- <source xsi:type="ocl:VariableExp" location="18:5-18:9" referredVariable="/9"/>
- </source>
- </elseExpression>
- </elseExpression>
- </elseExpression>
- </initExpression>
- <type xsi:type="ocl:StringType" location="8:50-8:56"/>
- </feature>
- <context_ location="8:8-8:31">
- <context_ xsi:type="ocl:OclModelElement" location="8:16-8:31" name="Member" model="/2"/>
- </context_>
- </definition>
- </elements>
- <elements xsi:type="atl:Helper" location="23:1-32:8">
- <definition location="23:8-32:7">
- <feature xsi:type="ocl:Operation" location="23:37-32:7" name="isFemale">
- <returnType xsi:type="ocl:BooleanType" location="23:50-23:57"/>
- <body xsi:type="ocl:IfExp" location="24:2-32:7">
- <thenExpression xsi:type="ocl:BooleanExp" location="25:3-25:7" booleanSymbol="true"/>
- <condition xsi:type="ocl:OperatorCallExp" location="24:5-24:43" operationName="not">
- <source xsi:type="ocl:OperationCallExp" location="24:9-24:43" operationName="oclIsUndefined">
- <source xsi:type="ocl:NavigationOrAttributeCallExp" location="24:9-24:26" name="familyMother">
- <source xsi:type="ocl:VariableExp" location="24:9-24:13" referredVariable="/10"/>
- </source>
- </source>
- </condition>
- <elseExpression xsi:type="ocl:IfExp" location="27:3-31:8">
- <thenExpression xsi:type="ocl:BooleanExp" location="28:4-28:8" booleanSymbol="true"/>
- <condition xsi:type="ocl:OperatorCallExp" location="27:6-27:46" operationName="not">
- <source xsi:type="ocl:OperationCallExp" location="27:10-27:46" operationName="oclIsUndefined">
- <source xsi:type="ocl:NavigationOrAttributeCallExp" location="27:10-27:29" name="familyDaughter">
- <source xsi:type="ocl:VariableExp" location="27:10-27:14" referredVariable="/11"/>
- </source>
- </source>
- </condition>
- <elseExpression xsi:type="ocl:BooleanExp" location="30:4-30:9"/>
- </elseExpression>
- </body>
- </feature>
- <context_ location="23:8-23:31">
- <context_ xsi:type="ocl:OclModelElement" location="23:16-23:31" name="Member" model="/2"/>
- </context_>
- </definition>
- </elements>
- <elements xsi:type="atl:MatchedRule" location="34:1-41:2" name="Member2Male">
- <outPattern location="37:2-40:4">
- <elements xsi:type="atl:SimpleOutPatternElement" location="38:3-40:4" varName="t">
- <type xsi:type="ocl:OclModelElement" location="38:7-38:19" name="Male" model="/1"/>
- <bindings location="39:4-39:48" propertyName="fullName">
- <value xsi:type="ocl:OperatorCallExp" location="39:16-39:48" operationName="+">
- <source xsi:type="ocl:OperatorCallExp" location="39:16-39:33" operationName="+">
- <source xsi:type="ocl:NavigationOrAttributeCallExp" location="39:16-39:27" name="firstName">
- <source xsi:type="ocl:VariableExp" location="39:16-39:17" referredVariable="/0/@elements.2/@inPattern/@elements.0"/>
- </source>
- <arguments xsi:type="ocl:StringExp" location="39:30-39:33" stringSymbol=" "/>
- </source>
- <arguments xsi:type="ocl:NavigationOrAttributeCallExp" location="39:36-39:48" name="familyName">
- <source xsi:type="ocl:VariableExp" location="39:36-39:37" referredVariable="/0/@elements.2/@inPattern/@elements.0"/>
- </arguments>
- </value>
- </bindings>
- </elements>
- </outPattern>
- <inPattern location="35:2-36:41">
- <elements xsi:type="atl:SimpleInPatternElement" location="36:3-36:22" varName="s" variableExp="/0/@elements.2/@inPattern/@filter/@source/@source /0/@elements.2/@outPattern/@elements.0/@bindings.0/@value/@source/@source/@source /0/@elements.2/@outPattern/@elements.0/@bindings.0/@value/@arguments.0/@source">
- <type xsi:type="ocl:OclModelElement" location="36:7-36:22" name="Member" model="/2"/>
- </elements>
- <filter xsi:type="ocl:OperatorCallExp" location="36:24-36:40" operationName="not">
- <source xsi:type="ocl:OperationCallExp" location="36:28-36:40" operationName="isFemale">
- <source xsi:type="ocl:VariableExp" location="36:28-36:29" referredVariable="/0/@elements.2/@inPattern/@elements.0"/>
- </source>
- </filter>
- </inPattern>
- </elements>
- <elements xsi:type="atl:MatchedRule" location="43:1-50:2" name="Member2Female">
- <outPattern location="46:2-49:4">
- <elements xsi:type="atl:SimpleOutPatternElement" location="47:3-49:4" varName="t">
- <type xsi:type="ocl:OclModelElement" location="47:7-47:21" name="Female" model="/1"/>
- <bindings location="48:4-48:48" propertyName="fullName">
- <value xsi:type="ocl:OperatorCallExp" location="48:16-48:48" operationName="+">
- <source xsi:type="ocl:OperatorCallExp" location="48:16-48:33" operationName="+">
- <source xsi:type="ocl:NavigationOrAttributeCallExp" location="48:16-48:27" name="firstName">
- <source xsi:type="ocl:VariableExp" location="48:16-48:17" referredVariable="/0/@elements.3/@inPattern/@elements.0"/>
- </source>
- <arguments xsi:type="ocl:StringExp" location="48:30-48:33" stringSymbol=" "/>
- </source>
- <arguments xsi:type="ocl:NavigationOrAttributeCallExp" location="48:36-48:48" name="familyName">
- <source xsi:type="ocl:VariableExp" location="48:36-48:37" referredVariable="/0/@elements.3/@inPattern/@elements.0"/>
- </arguments>
- </value>
- </bindings>
- </elements>
- </outPattern>
- <inPattern location="44:2-45:37">
- <elements xsi:type="atl:SimpleInPatternElement" location="45:3-45:22" varName="s" variableExp="/0/@elements.3/@inPattern/@filter/@source /0/@elements.3/@outPattern/@elements.0/@bindings.0/@value/@source/@source/@source /0/@elements.3/@outPattern/@elements.0/@bindings.0/@value/@arguments.0/@source">
- <type xsi:type="ocl:OclModelElement" location="45:7-45:22" name="Member" model="/2"/>
- </elements>
- <filter xsi:type="ocl:OperationCallExp" location="45:24-45:36" operationName="isFemale">
- <source xsi:type="ocl:VariableExp" location="45:24-45:25" referredVariable="/0/@elements.3/@inPattern/@elements.0"/>
- </filter>
- </inPattern>
- </elements>
- </atl:Module>
- <ocl:OclModel location="6:14-6:21" name="Persons" elements="/0/@elements.2/@outPattern/@elements.0/@type /0/@elements.3/@outPattern/@elements.0/@type" model="/0/@outModels.0"/>
- <ocl:OclModel location="6:32-6:40" name="Families" elements="/0/@elements.0/@definition/@context_/@context_ /0/@elements.1/@definition/@context_/@context_ /0/@elements.2/@inPattern/@elements.0/@type /0/@elements.3/@inPattern/@elements.0/@type" model="/0/@inModels.0"/>
- <ocl:VariableDeclaration location="9:9-9:13" varName="self" variableExp="/0/@elements.0/@definition/@feature/@initExpression/@condition/@source/@source/@source"/>
- <ocl:VariableDeclaration location="10:3-10:7" varName="self" variableExp="/0/@elements.0/@definition/@feature/@initExpression/@thenExpression/@source/@source"/>
- <ocl:VariableDeclaration location="12:10-12:14" varName="self" variableExp="/0/@elements.0/@definition/@feature/@initExpression/@elseExpression/@condition/@source/@source/@source"/>
- <ocl:VariableDeclaration location="13:4-13:8" varName="self" variableExp="/0/@elements.0/@definition/@feature/@initExpression/@elseExpression/@thenExpression/@source/@source"/>
- <ocl:VariableDeclaration location="15:11-15:15" varName="self" variableExp="/0/@elements.0/@definition/@feature/@initExpression/@elseExpression/@elseExpression/@condition/@source/@source/@source"/>
- <ocl:VariableDeclaration location="16:5-16:9" varName="self" variableExp="/0/@elements.0/@definition/@feature/@initExpression/@elseExpression/@elseExpression/@thenExpression/@source/@source"/>
- <ocl:VariableDeclaration location="18:5-18:9" varName="self" variableExp="/0/@elements.0/@definition/@feature/@initExpression/@elseExpression/@elseExpression/@elseExpression/@source/@source"/>
- <ocl:VariableDeclaration location="24:9-24:13" varName="self" variableExp="/0/@elements.1/@definition/@feature/@body/@condition/@source/@source/@source"/>
- <ocl:VariableDeclaration location="27:10-27:14" varName="self" variableExp="/0/@elements.1/@definition/@feature/@body/@elseExpression/@condition/@source/@source/@source"/>
-</xmi:XMI>
diff --git a/plugins/org.eclipse.qvtd.atl/src/org/eclipse/qvtd/atl/atl2qvtr/samples/Families2Persons_expected.qvtras b/plugins/org.eclipse.qvtd.atl/src/org/eclipse/qvtd/atl/atl2qvtr/samples/Families2Persons_expected.qvtras deleted file mode 100644 index c1fd66a66..000000000 --- a/plugins/org.eclipse.qvtd.atl/src/org/eclipse/qvtd/atl/atl2qvtr/samples/Families2Persons_expected.qvtras +++ /dev/null @@ -1,158 +0,0 @@ -<?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" - xmi:id="AAAAA" xmiidVersion="1"> - <ownedPackages xmi:id="6Fh3I"> - <ownedClasses xsi:type="qvtr:RelationalTransformation" xmi:id="lSZ2I" name="Families2Persons"> - <modelParameter name="Families" usedPackage="../../../../../../../../org.eclipse.qvtd.atl.tests/src/org/eclipse/qvtd/atl/tests/families2persons/Families.ecore.oclas#ci1p7"/> - <modelParameter name="Persons" usedPackage="../../../../../../../../org.eclipse.qvtd.atl.tests/src/org/eclipse/qvtd/atl/tests/families2persons/Persons.ecore.oclas#YknpD"/> - <ownedOperations xsi:type="qvtb:Function" xmi:id="Gr4OV" name="familyName" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#AlwVZ"> - <ownedParameters xsi:type="qvtb:FunctionParameter" xmi:id="lcaR4" name="self" type="pivot:Class ../../../../../../../../org.eclipse.qvtd.atl.tests/src/org/eclipse/qvtd/atl/tests/families2persons/Families.ecore.oclas#r2YVU"/> - <queryExpression xsi:type="pivot:IfExp"> - <ownedCondition xsi:type="pivot:OperationCallExp"> - <ownedSource xsi:type="pivot:OperationCallExp"> - <ownedSource xsi:type="pivot:PropertyCallExp"> - <ownedSource xsi:type="pivot:VariableExp" name="self" referredVariable="#lcaR4"/> - </ownedSource> - </ownedSource> - </ownedCondition> - <ownedElse xsi:type="pivot:IfExp"> - <ownedCondition xsi:type="pivot:OperationCallExp"> - <ownedSource xsi:type="pivot:OperationCallExp"> - <ownedSource xsi:type="pivot:PropertyCallExp"> - <ownedSource xsi:type="pivot:VariableExp" name="self" referredVariable="#lcaR4"/> - </ownedSource> - </ownedSource> - </ownedCondition> - <ownedElse xsi:type="pivot:IfExp"> - <ownedCondition xsi:type="pivot:OperationCallExp"> - <ownedSource xsi:type="pivot:OperationCallExp"> - <ownedSource xsi:type="pivot:PropertyCallExp"> - <ownedSource xsi:type="pivot:VariableExp" name="self" referredVariable="#lcaR4"/> - </ownedSource> - </ownedSource> - </ownedCondition> - <ownedElse xsi:type="pivot:PropertyCallExp"> - <ownedSource xsi:type="pivot:PropertyCallExp"> - <ownedSource xsi:type="pivot:VariableExp" name="self" referredVariable="#lcaR4"/> - </ownedSource> - </ownedElse> - <ownedThen xsi:type="pivot:PropertyCallExp"> - <ownedSource xsi:type="pivot:PropertyCallExp"> - <ownedSource xsi:type="pivot:VariableExp" name="self" referredVariable="#lcaR4"/> - </ownedSource> - </ownedThen> - </ownedElse> - <ownedThen xsi:type="pivot:PropertyCallExp"> - <ownedSource xsi:type="pivot:PropertyCallExp"> - <ownedSource xsi:type="pivot:VariableExp" name="self" referredVariable="#lcaR4"/> - </ownedSource> - </ownedThen> - </ownedElse> - <ownedThen xsi:type="pivot:PropertyCallExp"> - <ownedSource xsi:type="pivot:PropertyCallExp"> - <ownedSource xsi:type="pivot:VariableExp" name="self" referredVariable="#lcaR4"/> - </ownedSource> - </ownedThen> - </queryExpression> - </ownedOperations> - <ownedOperations xsi:type="qvtb:Function" xmi:id="N,BoB" name="isFemale" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#XEMMs"> - <ownedParameters xsi:type="qvtb:FunctionParameter" xmi:id="QQAbF" name="self" type="pivot:Class ../../../../../../../../org.eclipse.qvtd.atl.tests/src/org/eclipse/qvtd/atl/tests/families2persons/Families.ecore.oclas#r2YVU"/> - <queryExpression xsi:type="pivot:IfExp"> - <ownedCondition xsi:type="pivot:OperationCallExp"> - <ownedSource xsi:type="pivot:OperationCallExp"> - <ownedSource xsi:type="pivot:PropertyCallExp"> - <ownedSource xsi:type="pivot:VariableExp" name="self" referredVariable="#QQAbF"/> - </ownedSource> - </ownedSource> - </ownedCondition> - <ownedElse xsi:type="pivot:IfExp"> - <ownedCondition xsi:type="pivot:OperationCallExp"> - <ownedSource xsi:type="pivot:OperationCallExp"> - <ownedSource xsi:type="pivot:PropertyCallExp"> - <ownedSource xsi:type="pivot:VariableExp" name="self" referredVariable="#QQAbF"/> - </ownedSource> - </ownedSource> - </ownedCondition> - <ownedElse xsi:type="pivot:BooleanLiteralExp" booleanSymbol="false" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#XEMMs"/> - <ownedThen xsi:type="pivot:BooleanLiteralExp" booleanSymbol="true" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#XEMMs"/> - </ownedElse> - <ownedThen xsi:type="pivot:BooleanLiteralExp" booleanSymbol="true" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#XEMMs"/> - </queryExpression> - </ownedOperations> - <rule xsi:type="qvtr:Relation" name="Member2Female"> - <domain xsi:type="qvtr:RelationDomain" isCheckable="true" isEnforceable="false" rootVariable="#8tM8f"> - <pattern> - <templateExpression xsi:type="qvtt:ObjectTemplateExp" bindsTo="#8tM8f"/> - </pattern> - </domain> - <domain xsi:type="qvtr:RelationDomain" isCheckable="false" isEnforceable="true" rootVariable="#9tM8f"> - <pattern> - <templateExpression xsi:type="qvtt:ObjectTemplateExp" bindsTo="#9tM8f"> - <part referredProperty="http://www.eclipse.org/ocl/2015/Library.oclas#//@ownedPackages.0/@ownedClasses.7/@ownedProperties.0"> - <value xsi:type="pivot:OperationCallExp"> - <ownedArguments xsi:type="pivot:PropertyCallExp"> - <ownedSource xsi:type="pivot:VariableExp" name="s" referredVariable="#8tM8f"/> - </ownedArguments> - <ownedSource xsi:type="pivot:OperationCallExp"> - <ownedArguments xsi:type="pivot:StringLiteralExp" stringSymbol=" " type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#AlwVZ"/> - <ownedSource xsi:type="pivot:PropertyCallExp"> - <ownedSource xsi:type="pivot:VariableExp" name="s" referredVariable="#8tM8f"/> - </ownedSource> - </ownedSource> - </value> - </part> - </templateExpression> - </pattern> - </domain> - <variable xsi:type="qvtr:TemplateVariable" xmi:id="8tM8f" name="s"/> - <variable xsi:type="qvtr:TemplateVariable" xmi:id="9tM8f" name="t"/> - <when> - <predicate> - <conditionExpression xsi:type="pivot:OperationCallExp"> - <ownedSource xsi:type="pivot:VariableExp" name="s" referredVariable="#8tM8f"/> - </conditionExpression> - </predicate> - </when> - </rule> - <rule xsi:type="qvtr:Relation" name="Member2Male"> - <domain xsi:type="qvtr:RelationDomain" isCheckable="true" isEnforceable="false" rootVariable="#50ALF"> - <pattern> - <templateExpression xsi:type="qvtt:ObjectTemplateExp" bindsTo="#50ALF"/> - </pattern> - </domain> - <domain xsi:type="qvtr:RelationDomain" isCheckable="false" isEnforceable="true" rootVariable="#60ALF"> - <pattern> - <templateExpression xsi:type="qvtt:ObjectTemplateExp" bindsTo="#60ALF"> - <part referredProperty="http://www.eclipse.org/ocl/2015/Library.oclas#//@ownedPackages.0/@ownedClasses.7/@ownedProperties.0"> - <value xsi:type="pivot:OperationCallExp"> - <ownedArguments xsi:type="pivot:PropertyCallExp"> - <ownedSource xsi:type="pivot:VariableExp" name="s" referredVariable="#50ALF"/> - </ownedArguments> - <ownedSource xsi:type="pivot:OperationCallExp"> - <ownedArguments xsi:type="pivot:StringLiteralExp" stringSymbol=" " type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#AlwVZ"/> - <ownedSource xsi:type="pivot:PropertyCallExp"> - <ownedSource xsi:type="pivot:VariableExp" name="s" referredVariable="#50ALF"/> - </ownedSource> - </ownedSource> - </value> - </part> - </templateExpression> - </pattern> - </domain> - <variable xsi:type="qvtr:TemplateVariable" xmi:id="50ALF" name="s"/> - <variable xsi:type="qvtr:TemplateVariable" xmi:id="60ALF" name="t"/> - <when> - <predicate> - <conditionExpression xsi:type="pivot:OperationCallExp"> - <ownedSource xsi:type="pivot:OperationCallExp"> - <ownedSource xsi:type="pivot:VariableExp" name="s" referredVariable="#50ALF"/> - </ownedSource> - </conditionExpression> - </predicate> - </when> - </rule> - </ownedClasses> - </ownedPackages> -</qvtr:RelationModel> diff --git a/plugins/org.eclipse.qvtd.atl/src/org/eclipse/qvtd/atl/atl2qvtr/samples/Persons.ecore b/plugins/org.eclipse.qvtd.atl/src/org/eclipse/qvtd/atl/atl2qvtr/samples/Persons.ecore deleted file mode 100644 index d7106738c..000000000 --- a/plugins/org.eclipse.qvtd.atl/src/org/eclipse/qvtd/atl/atl2qvtr/samples/Persons.ecore +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="ISO-8859-1"?> -<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="Persons" nsURI="http://www.eclipse.org/qvtd/xtext/qvtcore/tests/Upper2Lower/1.0/Persons" - nsPrefix="persons"> - <eClassifiers xsi:type="ecore:EClass" name="Person" abstract="true"> - <eStructuralFeatures xsi:type="ecore:EAttribute" name="fullName" ordered="false" - unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> - </eClassifiers> - <eClassifiers xsi:type="ecore:EClass" name="Male" eSuperTypes="#//Person"/> - <eClassifiers xsi:type="ecore:EClass" name="Female" eSuperTypes="#//Person"/> -</ecore:EPackage> diff --git a/plugins/org.eclipse.qvtd.atl/test-gen/org/eclipse/qvtd/atl/atl2qvtr/.gitignore b/plugins/org.eclipse.qvtd.atl/test-gen/org/eclipse/qvtd/atl/atl2qvtr/.gitignore deleted file mode 100644 index a9031dc7d..000000000 --- a/plugins/org.eclipse.qvtd.atl/test-gen/org/eclipse/qvtd/atl/atl2qvtr/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/ATL2QVTr.java diff --git a/plugins/org.eclipse.qvtd.atl/test-gen/org/eclipse/qvtd/atl/atl2qvtr/ATL2QVTr.java b/plugins/org.eclipse.qvtd.atl/test-gen/org/eclipse/qvtd/atl/atl2qvtr/ATL2QVTr.java new file mode 100644 index 000000000..4f0752280 --- /dev/null +++ b/plugins/org.eclipse.qvtd.atl/test-gen/org/eclipse/qvtd/atl/atl2qvtr/ATL2QVTr.java @@ -0,0 +1,6737 @@ +/******************************************************************************* + * «codeGenHelper.getCopyright(' * ')» + * + * This code is 100% auto-generated + * using: org.eclipse.qvtd.codegen.qvti.java.QVTiCodeGenerator + * + * Do not edit it. + ********************************************************************************/ + +package org.eclipse.qvtd.atl.atl2qvtr; + +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.jdt.annotation.Nullable; +import org.eclipse.m2m.atl.common.ATL.ATLPackage; +import org.eclipse.m2m.atl.common.ATL.Binding; +import org.eclipse.m2m.atl.common.ATL.Helper; +import org.eclipse.m2m.atl.common.ATL.InPattern; +import org.eclipse.m2m.atl.common.ATL.InPatternElement; +import org.eclipse.m2m.atl.common.ATL.LocatedElement; +import org.eclipse.m2m.atl.common.ATL.MatchedRule; +import org.eclipse.m2m.atl.common.ATL.Module; +import org.eclipse.m2m.atl.common.ATL.ModuleElement; +import org.eclipse.m2m.atl.common.ATL.OutPattern; +import org.eclipse.m2m.atl.common.ATL.OutPatternElement; +import org.eclipse.m2m.atl.common.ATL.PatternElement; +import org.eclipse.m2m.atl.common.ATL.Rule; +import org.eclipse.m2m.atl.common.ATL.SimpleInPatternElement; +import org.eclipse.m2m.atl.common.ATL.SimpleOutPatternElement; +import org.eclipse.m2m.atl.common.OCL.Attribute; +import org.eclipse.m2m.atl.common.OCL.BooleanExp; +import org.eclipse.m2m.atl.common.OCL.IntegerExp; +import org.eclipse.m2m.atl.common.OCL.NavigationOrAttributeCallExp; +import org.eclipse.m2m.atl.common.OCL.OCLPackage; +import org.eclipse.m2m.atl.common.OCL.OclContextDefinition; +import org.eclipse.m2m.atl.common.OCL.OclExpression; +import org.eclipse.m2m.atl.common.OCL.OclFeature; +import org.eclipse.m2m.atl.common.OCL.OclFeatureDefinition; +import org.eclipse.m2m.atl.common.OCL.OclModel; +import org.eclipse.m2m.atl.common.OCL.OclModelElement; +import org.eclipse.m2m.atl.common.OCL.OclType; +import org.eclipse.m2m.atl.common.OCL.OperatorCallExp; +import org.eclipse.m2m.atl.common.OCL.StringExp; +import org.eclipse.ocl.pivot.BooleanLiteralExp; +import org.eclipse.ocl.pivot.Class; +import org.eclipse.ocl.pivot.IntegerLiteralExp; +import org.eclipse.ocl.pivot.OCLExpression; +import org.eclipse.ocl.pivot.Package; +import org.eclipse.ocl.pivot.ParameterVariable; +import org.eclipse.ocl.pivot.PivotFactory; +import org.eclipse.ocl.pivot.PivotPackage; +import org.eclipse.ocl.pivot.Property; +import org.eclipse.ocl.pivot.PropertyCallExp; +import org.eclipse.ocl.pivot.StringLiteralExp; +import org.eclipse.ocl.pivot.Type; +import org.eclipse.ocl.pivot.Variable; +import org.eclipse.ocl.pivot.ids.ClassId; +import org.eclipse.ocl.pivot.ids.CollectionTypeId; +import org.eclipse.ocl.pivot.ids.IdManager; +import org.eclipse.ocl.pivot.ids.IdResolver; +import org.eclipse.ocl.pivot.ids.NestedPackageId; +import org.eclipse.ocl.pivot.ids.NsURIPackageId; +import org.eclipse.ocl.pivot.ids.PropertyId; +import org.eclipse.ocl.pivot.ids.RootPackageId; +import org.eclipse.ocl.pivot.ids.TypeId; +import org.eclipse.ocl.pivot.internal.library.UnboxedCompositionProperty; +import org.eclipse.ocl.pivot.library.collection.CollectionIsEmptyOperation; +import org.eclipse.ocl.pivot.library.collection.CollectionNotEmptyOperation; +import org.eclipse.ocl.pivot.library.collection.CollectionSelectByKindOperation; +import org.eclipse.ocl.pivot.library.logical.BooleanNotOperation; +import org.eclipse.ocl.pivot.library.oclany.OclAnyOclAsSetOperation; +import org.eclipse.ocl.pivot.library.oclany.OclAnyOclIsKindOfOperation; +import org.eclipse.ocl.pivot.utilities.ValueUtil; +import org.eclipse.ocl.pivot.values.BagValue; +import org.eclipse.ocl.pivot.values.InvalidValueException; +import org.eclipse.ocl.pivot.values.OrderedSetValue; +import org.eclipse.ocl.pivot.values.SequenceValue; +import org.eclipse.ocl.pivot.values.SetValue; +import org.eclipse.qvtd.atl.atl2qvtr.ATL2QVTr; +import org.eclipse.qvtd.atl.atl2qvtr.trace_ATL2QVTr.TC_mapBinding; +import org.eclipse.qvtd.atl.atl2qvtr.trace_ATL2QVTr.TC_mapBooleanExp; +import org.eclipse.qvtd.atl.atl2qvtr.trace_ATL2QVTr.TC_mapHelper_Attribute; +import org.eclipse.qvtd.atl.atl2qvtr.trace_ATL2QVTr.TC_mapHelper_Context; +import org.eclipse.qvtd.atl.atl2qvtr.trace_ATL2QVTr.TC_mapHelper_Operation; +import org.eclipse.qvtd.atl.atl2qvtr.trace_ATL2QVTr.TC_mapIfExp; +import org.eclipse.qvtd.atl.atl2qvtr.trace_ATL2QVTr.TC_mapInPattern; +import org.eclipse.qvtd.atl.atl2qvtr.trace_ATL2QVTr.TC_mapInPattern_filter; +import org.eclipse.qvtd.atl.atl2qvtr.trace_ATL2QVTr.TC_mapIntegerExp; +import org.eclipse.qvtd.atl.atl2qvtr.trace_ATL2QVTr.TC_mapMatchedRule; +import org.eclipse.qvtd.atl.atl2qvtr.trace_ATL2QVTr.TC_mapMatchedRule_super; +import org.eclipse.qvtd.atl.atl2qvtr.trace_ATL2QVTr.TC_mapModule; +import org.eclipse.qvtd.atl.atl2qvtr.trace_ATL2QVTr.TC_mapNavigationOrAttributeCallExp_Helper; +import org.eclipse.qvtd.atl.atl2qvtr.trace_ATL2QVTr.TC_mapNavigationOrAttributeCallExp_Property; +import org.eclipse.qvtd.atl.atl2qvtr.trace_ATL2QVTr.TC_mapOclMetamodel; +import org.eclipse.qvtd.atl.atl2qvtr.trace_ATL2QVTr.TC_mapOclModel_IN; +import org.eclipse.qvtd.atl.atl2qvtr.trace_ATL2QVTr.TC_mapOclModel_OUT; +import org.eclipse.qvtd.atl.atl2qvtr.trace_ATL2QVTr.TC_mapOperationCallExp_Helper; +import org.eclipse.qvtd.atl.atl2qvtr.trace_ATL2QVTr.TC_mapOperationCallExp_Operation; +import org.eclipse.qvtd.atl.atl2qvtr.trace_ATL2QVTr.TC_mapOperationCallExp_argument; +import org.eclipse.qvtd.atl.atl2qvtr.trace_ATL2QVTr.TC_mapOperatorCallExp; +import org.eclipse.qvtd.atl.atl2qvtr.trace_ATL2QVTr.TC_mapOutPattern; +import org.eclipse.qvtd.atl.atl2qvtr.trace_ATL2QVTr.TC_mapSimpleInPatternElement; +import org.eclipse.qvtd.atl.atl2qvtr.trace_ATL2QVTr.TC_mapSimpleOutPatternElement; +import org.eclipse.qvtd.atl.atl2qvtr.trace_ATL2QVTr.TC_mapStringExp; +import org.eclipse.qvtd.atl.atl2qvtr.trace_ATL2QVTr.TC_mapVariable; +import org.eclipse.qvtd.atl.atl2qvtr.trace_ATL2QVTr.TC_mapVariableExp; +import org.eclipse.qvtd.atl.atl2qvtr.trace_ATL2QVTr.TC_mapVariableExp_referredVariable_Helper; +import org.eclipse.qvtd.atl.atl2qvtr.trace_ATL2QVTr.TC_mapVariableExp_referredVariable_VariableDeclaration; +import org.eclipse.qvtd.atl.atl2qvtr.trace_ATL2QVTr.TI_mapHelper; +import org.eclipse.qvtd.atl.atl2qvtr.trace_ATL2QVTr.TI_mapHelper_Attribute; +import org.eclipse.qvtd.atl.atl2qvtr.trace_ATL2QVTr.TI_mapHelper_Operation; +import org.eclipse.qvtd.atl.atl2qvtr.trace_ATL2QVTr.TI_mapOclExpression; +import org.eclipse.qvtd.atl.atl2qvtr.trace_ATL2QVTr.TI_mapOperationCallExp; +import org.eclipse.qvtd.atl.atl2qvtr.trace_ATL2QVTr.WC_mapVariableExp_referredVariable; +import org.eclipse.qvtd.atl.atl2qvtr.trace_ATL2QVTr.WI_mapVariableExp_referredVariable; +import org.eclipse.qvtd.atl.atl2qvtr.trace_ATL2QVTr.trace_ATL2QVTrFactory; +import org.eclipse.qvtd.atl.atl2qvtr.trace_ATL2QVTr.trace_ATL2QVTrPackage; +import org.eclipse.qvtd.pivot.qvtbase.Function; +import org.eclipse.qvtd.pivot.qvtbase.FunctionParameter; +import org.eclipse.qvtd.pivot.qvtbase.Pattern; +import org.eclipse.qvtd.pivot.qvtbase.Predicate; +import org.eclipse.qvtd.pivot.qvtbase.QVTbaseFactory; +import org.eclipse.qvtd.pivot.qvtbase.QVTbasePackage; +import org.eclipse.qvtd.pivot.qvtbase.TypedModel; +import org.eclipse.qvtd.pivot.qvtrelation.DomainPattern; +import org.eclipse.qvtd.pivot.qvtrelation.QVTrelationFactory; +import org.eclipse.qvtd.pivot.qvtrelation.QVTrelationPackage; +import org.eclipse.qvtd.pivot.qvtrelation.Relation; +import org.eclipse.qvtd.pivot.qvtrelation.RelationDomain; +import org.eclipse.qvtd.pivot.qvtrelation.RelationModel; +import org.eclipse.qvtd.pivot.qvtrelation.RelationalTransformation; +import org.eclipse.qvtd.pivot.qvtrelation.TemplateVariable; +import org.eclipse.qvtd.pivot.qvttemplate.ObjectTemplateExp; +import org.eclipse.qvtd.pivot.qvttemplate.PropertyTemplateItem; +import org.eclipse.qvtd.pivot.qvttemplate.QVTtemplateFactory; +import org.eclipse.qvtd.pivot.qvttemplate.QVTtemplatePackage; +import org.eclipse.qvtd.runtime.evaluation.AbstractComputation; +import org.eclipse.qvtd.runtime.evaluation.AbstractInvocation; +import org.eclipse.qvtd.runtime.evaluation.AbstractTransformer; +import org.eclipse.qvtd.runtime.evaluation.Connection; +import org.eclipse.qvtd.runtime.evaluation.InvalidEvaluationException; +import org.eclipse.qvtd.runtime.evaluation.InvocationConstructor; +import org.eclipse.qvtd.runtime.evaluation.TransformationExecutor; +import org.eclipse.qvtd.runtime.internal.evaluation.AbstractComputationConstructor; +import org.eclipse.qvtd.runtime.internal.evaluation.AbstractInvocationConstructor; + +/** + * The ATL2QVTr transformation: + * <p> + * Construct with an evaluator + * <br> + * Populate each input model with {@link addRootObjects(String,List)} + * <br> + * {@link run()} + * <br> + * Extract each output model with {@link getRootObjects(String)} + */ +@SuppressWarnings("unused") +public class ATL2QVTr extends AbstractTransformer +{ + public static final /*@NonInvalid*/ @NonNull RootPackageId PACKid_org = IdManager.getRootPackageId("org"); + public static final /*@NonInvalid*/ @NonNull RootPackageId PACKid_$metamodel$ = IdManager.getRootPackageId("$metamodel$"); + public static final /*@NonInvalid*/ @NonNull NestedPackageId PACKid_eclipse = PACKid_org.getNestedPackageId("eclipse"); + public static final /*@NonInvalid*/ @NonNull NsURIPackageId PACKid_http_c_s_s_www_eclipse_org_s_gmt_s_2005_s_ATL = IdManager.getNsURIPackageId("http://www.eclipse.org/gmt/2005/ATL", null, ATLPackage.eINSTANCE); + public static final /*@NonInvalid*/ @NonNull NsURIPackageId PACKid_http_c_s_s_www_eclipse_org_s_gmt_s_2005_s_OCL = IdManager.getNsURIPackageId("http://www.eclipse.org/gmt/2005/OCL", null, OCLPackage.eINSTANCE); + public static final /*@NonInvalid*/ @NonNull NsURIPackageId PACKid_http_c_s_s_www_eclipse_org_s_qvt_s_2015_s_QVTbase = IdManager.getNsURIPackageId("http://www.eclipse.org/qvt/2015/QVTbase", "qvtb", QVTbasePackage.eINSTANCE); + public static final /*@NonInvalid*/ @NonNull NsURIPackageId PACKid_http_c_s_s_www_eclipse_org_s_qvt_s_2015_s_QVTrelation = IdManager.getNsURIPackageId("http://www.eclipse.org/qvt/2015/QVTrelation", "qvtr", QVTrelationPackage.eINSTANCE); + public static final /*@NonInvalid*/ @NonNull NsURIPackageId PACKid_http_c_s_s_www_eclipse_org_s_qvt_s_2015_s_QVTtemplate = IdManager.getNsURIPackageId("http://www.eclipse.org/qvt/2015/QVTtemplate", null, QVTtemplatePackage.eINSTANCE); + public static final /*@NonInvalid*/ @NonNull NsURIPackageId PACKid_http_c_s_s_www_eclipse_org_s_qvtd_m_example_s_org_s_eclipse_s_qvtd_s_atl_s_atl2qvtr_s_ATL2QVTr = IdManager.getNsURIPackageId("http://www.eclipse.org/qvtd-example/org/eclipse/qvtd/atl/atl2qvtr/ATL2QVTr", "PATL2QVTr", trace_ATL2QVTrPackage.eINSTANCE); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_Attribute = PACKid_http_c_s_s_www_eclipse_org_s_gmt_s_2005_s_OCL.getClassId("Attribute", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_Binding = PACKid_http_c_s_s_www_eclipse_org_s_gmt_s_2005_s_ATL.getClassId("Binding", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_BooleanExp = PACKid_http_c_s_s_www_eclipse_org_s_gmt_s_2005_s_OCL.getClassId("BooleanExp", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_BooleanLiteralExp = PACKid_$metamodel$.getClassId("BooleanLiteralExp", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_Class = PACKid_$metamodel$.getClassId("Class", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_DomainPattern = PACKid_http_c_s_s_www_eclipse_org_s_qvt_s_2015_s_QVTrelation.getClassId("DomainPattern", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_Function = PACKid_http_c_s_s_www_eclipse_org_s_qvt_s_2015_s_QVTbase.getClassId("Function", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_FunctionParameter = PACKid_http_c_s_s_www_eclipse_org_s_qvt_s_2015_s_QVTbase.getClassId("FunctionParameter", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_Helper = PACKid_http_c_s_s_www_eclipse_org_s_gmt_s_2005_s_ATL.getClassId("Helper", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_IfExp = PACKid_http_c_s_s_www_eclipse_org_s_gmt_s_2005_s_OCL.getClassId("IfExp", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_IfExp_0 = PACKid_$metamodel$.getClassId("IfExp", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_InPattern = PACKid_http_c_s_s_www_eclipse_org_s_gmt_s_2005_s_ATL.getClassId("InPattern", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_InPatternElement = PACKid_http_c_s_s_www_eclipse_org_s_gmt_s_2005_s_ATL.getClassId("InPatternElement", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_IntegerExp = PACKid_http_c_s_s_www_eclipse_org_s_gmt_s_2005_s_OCL.getClassId("IntegerExp", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_IntegerLiteralExp = PACKid_$metamodel$.getClassId("IntegerLiteralExp", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_LocatedElement = PACKid_http_c_s_s_www_eclipse_org_s_gmt_s_2005_s_ATL.getClassId("LocatedElement", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_MatchedRule = PACKid_http_c_s_s_www_eclipse_org_s_gmt_s_2005_s_ATL.getClassId("MatchedRule", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_Module = PACKid_http_c_s_s_www_eclipse_org_s_gmt_s_2005_s_ATL.getClassId("Module", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_ModuleElement = PACKid_http_c_s_s_www_eclipse_org_s_gmt_s_2005_s_ATL.getClassId("ModuleElement", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_NavigationOrAttributeCallExp = PACKid_http_c_s_s_www_eclipse_org_s_gmt_s_2005_s_OCL.getClassId("NavigationOrAttributeCallExp", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_OCLExpression = PACKid_$metamodel$.getClassId("OCLExpression", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_ObjectTemplateExp = PACKid_http_c_s_s_www_eclipse_org_s_qvt_s_2015_s_QVTtemplate.getClassId("ObjectTemplateExp", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_OclContextDefinition = PACKid_http_c_s_s_www_eclipse_org_s_gmt_s_2005_s_OCL.getClassId("OclContextDefinition", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_OclExpression = PACKid_http_c_s_s_www_eclipse_org_s_gmt_s_2005_s_OCL.getClassId("OclExpression", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_OclFeature = PACKid_http_c_s_s_www_eclipse_org_s_gmt_s_2005_s_OCL.getClassId("OclFeature", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_OclFeatureDefinition = PACKid_http_c_s_s_www_eclipse_org_s_gmt_s_2005_s_OCL.getClassId("OclFeatureDefinition", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_OclModel = PACKid_http_c_s_s_www_eclipse_org_s_gmt_s_2005_s_OCL.getClassId("OclModel", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_OclModelElement = PACKid_http_c_s_s_www_eclipse_org_s_gmt_s_2005_s_OCL.getClassId("OclModelElement", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_OclType = PACKid_http_c_s_s_www_eclipse_org_s_gmt_s_2005_s_OCL.getClassId("OclType", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_Operation = PACKid_http_c_s_s_www_eclipse_org_s_gmt_s_2005_s_OCL.getClassId("Operation", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_OperationCallExp = PACKid_http_c_s_s_www_eclipse_org_s_gmt_s_2005_s_OCL.getClassId("OperationCallExp", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_OperationCallExp_0 = PACKid_$metamodel$.getClassId("OperationCallExp", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_Operation_0 = PACKid_$metamodel$.getClassId("Operation", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_OperatorCallExp = PACKid_http_c_s_s_www_eclipse_org_s_gmt_s_2005_s_OCL.getClassId("OperatorCallExp", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_OutPattern = PACKid_http_c_s_s_www_eclipse_org_s_gmt_s_2005_s_ATL.getClassId("OutPattern", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_OutPatternElement = PACKid_http_c_s_s_www_eclipse_org_s_gmt_s_2005_s_ATL.getClassId("OutPatternElement", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_Package = PACKid_$metamodel$.getClassId("Package", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_ParameterVariable = PACKid_$metamodel$.getClassId("ParameterVariable", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_Pattern = PACKid_http_c_s_s_www_eclipse_org_s_qvt_s_2015_s_QVTbase.getClassId("Pattern", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_PatternElement = PACKid_http_c_s_s_www_eclipse_org_s_gmt_s_2005_s_ATL.getClassId("PatternElement", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_Predicate = PACKid_http_c_s_s_www_eclipse_org_s_qvt_s_2015_s_QVTbase.getClassId("Predicate", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_Property = PACKid_$metamodel$.getClassId("Property", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_PropertyCallExp = PACKid_$metamodel$.getClassId("PropertyCallExp", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_PropertyTemplateItem = PACKid_http_c_s_s_www_eclipse_org_s_qvt_s_2015_s_QVTtemplate.getClassId("PropertyTemplateItem", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_Relation = PACKid_http_c_s_s_www_eclipse_org_s_qvt_s_2015_s_QVTrelation.getClassId("Relation", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_RelationDomain = PACKid_http_c_s_s_www_eclipse_org_s_qvt_s_2015_s_QVTrelation.getClassId("RelationDomain", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_RelationModel = PACKid_http_c_s_s_www_eclipse_org_s_qvt_s_2015_s_QVTrelation.getClassId("RelationModel", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_RelationalTransformation = PACKid_http_c_s_s_www_eclipse_org_s_qvt_s_2015_s_QVTrelation.getClassId("RelationalTransformation", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_Rule = PACKid_http_c_s_s_www_eclipse_org_s_gmt_s_2005_s_ATL.getClassId("Rule", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_SimpleInPatternElement = PACKid_http_c_s_s_www_eclipse_org_s_gmt_s_2005_s_ATL.getClassId("SimpleInPatternElement", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_SimpleOutPatternElement = PACKid_http_c_s_s_www_eclipse_org_s_gmt_s_2005_s_ATL.getClassId("SimpleOutPatternElement", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_StringExp = PACKid_http_c_s_s_www_eclipse_org_s_gmt_s_2005_s_OCL.getClassId("StringExp", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_StringLiteralExp = PACKid_$metamodel$.getClassId("StringLiteralExp", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_TC_mapBinding = PACKid_http_c_s_s_www_eclipse_org_s_qvtd_m_example_s_org_s_eclipse_s_qvtd_s_atl_s_atl2qvtr_s_ATL2QVTr.getClassId("TC_mapBinding", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_TC_mapBooleanExp = PACKid_http_c_s_s_www_eclipse_org_s_qvtd_m_example_s_org_s_eclipse_s_qvtd_s_atl_s_atl2qvtr_s_ATL2QVTr.getClassId("TC_mapBooleanExp", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_TC_mapHelper_Attribute = PACKid_http_c_s_s_www_eclipse_org_s_qvtd_m_example_s_org_s_eclipse_s_qvtd_s_atl_s_atl2qvtr_s_ATL2QVTr.getClassId("TC_mapHelper_Attribute", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_TC_mapHelper_Context = PACKid_http_c_s_s_www_eclipse_org_s_qvtd_m_example_s_org_s_eclipse_s_qvtd_s_atl_s_atl2qvtr_s_ATL2QVTr.getClassId("TC_mapHelper_Context", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_TC_mapHelper_Operation = PACKid_http_c_s_s_www_eclipse_org_s_qvtd_m_example_s_org_s_eclipse_s_qvtd_s_atl_s_atl2qvtr_s_ATL2QVTr.getClassId("TC_mapHelper_Operation", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_TC_mapIfExp = PACKid_http_c_s_s_www_eclipse_org_s_qvtd_m_example_s_org_s_eclipse_s_qvtd_s_atl_s_atl2qvtr_s_ATL2QVTr.getClassId("TC_mapIfExp", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_TC_mapInPattern = PACKid_http_c_s_s_www_eclipse_org_s_qvtd_m_example_s_org_s_eclipse_s_qvtd_s_atl_s_atl2qvtr_s_ATL2QVTr.getClassId("TC_mapInPattern", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_TC_mapInPattern_filter = PACKid_http_c_s_s_www_eclipse_org_s_qvtd_m_example_s_org_s_eclipse_s_qvtd_s_atl_s_atl2qvtr_s_ATL2QVTr.getClassId("TC_mapInPattern_filter", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_TC_mapIntegerExp = PACKid_http_c_s_s_www_eclipse_org_s_qvtd_m_example_s_org_s_eclipse_s_qvtd_s_atl_s_atl2qvtr_s_ATL2QVTr.getClassId("TC_mapIntegerExp", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_TC_mapMatchedRule = PACKid_http_c_s_s_www_eclipse_org_s_qvtd_m_example_s_org_s_eclipse_s_qvtd_s_atl_s_atl2qvtr_s_ATL2QVTr.getClassId("TC_mapMatchedRule", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_TC_mapMatchedRule_super = PACKid_http_c_s_s_www_eclipse_org_s_qvtd_m_example_s_org_s_eclipse_s_qvtd_s_atl_s_atl2qvtr_s_ATL2QVTr.getClassId("TC_mapMatchedRule_super", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_TC_mapModule = PACKid_http_c_s_s_www_eclipse_org_s_qvtd_m_example_s_org_s_eclipse_s_qvtd_s_atl_s_atl2qvtr_s_ATL2QVTr.getClassId("TC_mapModule", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_TC_mapNavigationOrAttributeCallExp_Helper = PACKid_http_c_s_s_www_eclipse_org_s_qvtd_m_example_s_org_s_eclipse_s_qvtd_s_atl_s_atl2qvtr_s_ATL2QVTr.getClassId("TC_mapNavigationOrAttributeCallExp_Helper", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_TC_mapNavigationOrAttributeCallExp_Property = PACKid_http_c_s_s_www_eclipse_org_s_qvtd_m_example_s_org_s_eclipse_s_qvtd_s_atl_s_atl2qvtr_s_ATL2QVTr.getClassId("TC_mapNavigationOrAttributeCallExp_Property", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_TC_mapOclMetamodel = PACKid_http_c_s_s_www_eclipse_org_s_qvtd_m_example_s_org_s_eclipse_s_qvtd_s_atl_s_atl2qvtr_s_ATL2QVTr.getClassId("TC_mapOclMetamodel", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_TC_mapOclModel_IN = PACKid_http_c_s_s_www_eclipse_org_s_qvtd_m_example_s_org_s_eclipse_s_qvtd_s_atl_s_atl2qvtr_s_ATL2QVTr.getClassId("TC_mapOclModel_IN", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_TC_mapOclModel_OUT = PACKid_http_c_s_s_www_eclipse_org_s_qvtd_m_example_s_org_s_eclipse_s_qvtd_s_atl_s_atl2qvtr_s_ATL2QVTr.getClassId("TC_mapOclModel_OUT", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_TC_mapOperationCallExp_Helper = PACKid_http_c_s_s_www_eclipse_org_s_qvtd_m_example_s_org_s_eclipse_s_qvtd_s_atl_s_atl2qvtr_s_ATL2QVTr.getClassId("TC_mapOperationCallExp_Helper", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_TC_mapOperationCallExp_Operation = PACKid_http_c_s_s_www_eclipse_org_s_qvtd_m_example_s_org_s_eclipse_s_qvtd_s_atl_s_atl2qvtr_s_ATL2QVTr.getClassId("TC_mapOperationCallExp_Operation", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_TC_mapOperationCallExp_argument = PACKid_http_c_s_s_www_eclipse_org_s_qvtd_m_example_s_org_s_eclipse_s_qvtd_s_atl_s_atl2qvtr_s_ATL2QVTr.getClassId("TC_mapOperationCallExp_argument", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_TC_mapOperatorCallExp = PACKid_http_c_s_s_www_eclipse_org_s_qvtd_m_example_s_org_s_eclipse_s_qvtd_s_atl_s_atl2qvtr_s_ATL2QVTr.getClassId("TC_mapOperatorCallExp", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_TC_mapOutPattern = PACKid_http_c_s_s_www_eclipse_org_s_qvtd_m_example_s_org_s_eclipse_s_qvtd_s_atl_s_atl2qvtr_s_ATL2QVTr.getClassId("TC_mapOutPattern", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_TC_mapSimpleInPatternElement = PACKid_http_c_s_s_www_eclipse_org_s_qvtd_m_example_s_org_s_eclipse_s_qvtd_s_atl_s_atl2qvtr_s_ATL2QVTr.getClassId("TC_mapSimpleInPatternElement", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_TC_mapSimpleOutPatternElement = PACKid_http_c_s_s_www_eclipse_org_s_qvtd_m_example_s_org_s_eclipse_s_qvtd_s_atl_s_atl2qvtr_s_ATL2QVTr.getClassId("TC_mapSimpleOutPatternElement", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_TC_mapStringExp = PACKid_http_c_s_s_www_eclipse_org_s_qvtd_m_example_s_org_s_eclipse_s_qvtd_s_atl_s_atl2qvtr_s_ATL2QVTr.getClassId("TC_mapStringExp", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_TC_mapVariable = PACKid_http_c_s_s_www_eclipse_org_s_qvtd_m_example_s_org_s_eclipse_s_qvtd_s_atl_s_atl2qvtr_s_ATL2QVTr.getClassId("TC_mapVariable", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_TC_mapVariableExp = PACKid_http_c_s_s_www_eclipse_org_s_qvtd_m_example_s_org_s_eclipse_s_qvtd_s_atl_s_atl2qvtr_s_ATL2QVTr.getClassId("TC_mapVariableExp", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_TC_mapVariableExp_referredVariable_Helper = PACKid_http_c_s_s_www_eclipse_org_s_qvtd_m_example_s_org_s_eclipse_s_qvtd_s_atl_s_atl2qvtr_s_ATL2QVTr.getClassId("TC_mapVariableExp_referredVariable_Helper", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_TC_mapVariableExp_referredVariable_VariableDeclaration = PACKid_http_c_s_s_www_eclipse_org_s_qvtd_m_example_s_org_s_eclipse_s_qvtd_s_atl_s_atl2qvtr_s_ATL2QVTr.getClassId("TC_mapVariableExp_referredVariable_VariableDeclaration", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_TI_mapHelper = PACKid_http_c_s_s_www_eclipse_org_s_qvtd_m_example_s_org_s_eclipse_s_qvtd_s_atl_s_atl2qvtr_s_ATL2QVTr.getClassId("TI_mapHelper", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_TI_mapHelper_Attribute = PACKid_http_c_s_s_www_eclipse_org_s_qvtd_m_example_s_org_s_eclipse_s_qvtd_s_atl_s_atl2qvtr_s_ATL2QVTr.getClassId("TI_mapHelper_Attribute", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_TI_mapHelper_Operation = PACKid_http_c_s_s_www_eclipse_org_s_qvtd_m_example_s_org_s_eclipse_s_qvtd_s_atl_s_atl2qvtr_s_ATL2QVTr.getClassId("TI_mapHelper_Operation", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_TI_mapOclExpression = PACKid_http_c_s_s_www_eclipse_org_s_qvtd_m_example_s_org_s_eclipse_s_qvtd_s_atl_s_atl2qvtr_s_ATL2QVTr.getClassId("TI_mapOclExpression", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_TI_mapOperationCallExp = PACKid_http_c_s_s_www_eclipse_org_s_qvtd_m_example_s_org_s_eclipse_s_qvtd_s_atl_s_atl2qvtr_s_ATL2QVTr.getClassId("TI_mapOperationCallExp", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_TemplateVariable = PACKid_http_c_s_s_www_eclipse_org_s_qvt_s_2015_s_QVTrelation.getClassId("TemplateVariable", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_Type = PACKid_$metamodel$.getClassId("Type", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_TypedModel = PACKid_http_c_s_s_www_eclipse_org_s_qvt_s_2015_s_QVTbase.getClassId("TypedModel", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_Variable = PACKid_$metamodel$.getClassId("Variable", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_VariableDeclaration = PACKid_http_c_s_s_www_eclipse_org_s_gmt_s_2005_s_OCL.getClassId("VariableDeclaration", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_VariableDeclaration_0 = PACKid_$metamodel$.getClassId("VariableDeclaration", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_VariableExp = PACKid_http_c_s_s_www_eclipse_org_s_gmt_s_2005_s_OCL.getClassId("VariableExp", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_VariableExp_0 = PACKid_$metamodel$.getClassId("VariableExp", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_WC_mapVariableExp_referredVariable = PACKid_http_c_s_s_www_eclipse_org_s_qvtd_m_example_s_org_s_eclipse_s_qvtd_s_atl_s_atl2qvtr_s_ATL2QVTr.getClassId("WC_mapVariableExp_referredVariable", 0); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_WI_mapVariableExp_referredVariable = PACKid_http_c_s_s_www_eclipse_org_s_qvtd_m_example_s_org_s_eclipse_s_qvtd_s_atl_s_atl2qvtr_s_ATL2QVTr.getClassId("WI_mapVariableExp_referredVariable", 0); + public static final /*@NonInvalid*/ @NonNull NestedPackageId PACKid_qvtd = PACKid_eclipse.getNestedPackageId("qvtd"); + public static final /*@NonInvalid*/ @NonNull String STR_ = ""; + public static final /*@NonInvalid*/ @NonNull String STR_self = "self"; + public static final /*@NonInvalid*/ @NonNull String STR_this = "this"; + public static final /*@NonInvalid*/ @NonNull CollectionTypeId BAG_CLSSid_OclModelElement = TypeId.BAG.getSpecializedId(CLSSid_OclModelElement); + public static final /*@NonInvalid*/ @NonNull CollectionTypeId BAG_CLSSid_OclType = TypeId.BAG.getSpecializedId(CLSSid_OclType); + public static final /*@NonInvalid*/ @NonNull CollectionTypeId ORD_CLSSid_Helper = TypeId.ORDERED_SET.getSpecializedId(CLSSid_Helper); + public static final /*@NonInvalid*/ @NonNull CollectionTypeId ORD_CLSSid_ModuleElement = TypeId.ORDERED_SET.getSpecializedId(CLSSid_ModuleElement); + public static final /*@NonInvalid*/ @NonNull CollectionTypeId ORD_CLSSid_OclModel = TypeId.ORDERED_SET.getSpecializedId(CLSSid_OclModel); + public static final /*@NonInvalid*/ @NonNull CollectionTypeId ORD_CLSSid_OutPatternElement = TypeId.ORDERED_SET.getSpecializedId(CLSSid_OutPatternElement); + public static final /*@NonInvalid*/ @NonNull NestedPackageId PACKid_atl = PACKid_qvtd.getNestedPackageId("atl"); + public static final /*@NonInvalid*/ @NonNull PropertyId PROPid_atl_atlElement_0 = CLSSid_TC_mapSimpleOutPatternElement.getPropertyId("atl_atlElement"); + public static final /*@NonInvalid*/ @NonNull PropertyId PROPid_atl_atlExpression_5 = CLSSid_WI_mapVariableExp_referredVariable.getPropertyId("atl_atlExpression"); + public static final /*@NonInvalid*/ @NonNull PropertyId PROPid_atl_atlExpression_6 = CLSSid_TI_mapOclExpression.getPropertyId("atl_atlExpression"); + public static final /*@NonInvalid*/ @NonNull PropertyId PROPid_atl_atlHelper_0 = CLSSid_TI_mapHelper.getPropertyId("atl_atlHelper"); + public static final /*@NonInvalid*/ @NonNull PropertyId PROPid_atl_atlHelper_1 = CLSSid_TC_mapHelper_Context.getPropertyId("atl_atlHelper"); + public static final /*@NonInvalid*/ @NonNull PropertyId PROPid_atl_atlModule_9 = CLSSid_TC_mapModule.getPropertyId("atl_atlModule"); + public static final /*@NonInvalid*/ @NonNull PropertyId PROPid_atl_atlPattern_2 = CLSSid_TC_mapInPattern.getPropertyId("atl_atlPattern"); + public static final /*@NonInvalid*/ @NonNull PropertyId PROPid_atl_atlPattern_3 = CLSSid_TC_mapOutPattern.getPropertyId("atl_atlPattern"); + public static final /*@NonInvalid*/ @NonNull PropertyId PROPid_atl_atlVariable_2 = CLSSid_TC_mapVariable.getPropertyId("atl_atlVariable"); + public static final /*@NonInvalid*/ @NonNull PropertyId PROPid_atl_matchedRule = CLSSid_TC_mapMatchedRule.getPropertyId("atl_matchedRule"); + public static final /*@NonInvalid*/ @NonNull PropertyId PROPid_atl_oclMetamodel_1 = CLSSid_TC_mapOclMetamodel.getPropertyId("atl_oclMetamodel"); + public static final /*@NonInvalid*/ @NonNull PropertyId PROPid_definition = CLSSid_Helper.getPropertyId("definition"); + public static final /*@NonInvalid*/ @NonNull PropertyId PROPid_inModels = CLSSid_Module.getPropertyId("inModels"); + public static final /*@NonInvalid*/ @NonNull PropertyId PROPid_outModels = CLSSid_Module.getPropertyId("outModels"); + public static final /*@NonInvalid*/ @NonNull CollectionTypeId SEQ_CLSSid_Attribute = TypeId.SEQUENCE.getSpecializedId(CLSSid_Attribute); + public static final /*@NonInvalid*/ @NonNull CollectionTypeId SEQ_CLSSid_OclFeature = TypeId.SEQUENCE.getSpecializedId(CLSSid_OclFeature); + public static final /*@NonInvalid*/ @NonNull CollectionTypeId SEQ_CLSSid_OclFeatureDefinition = TypeId.SEQUENCE.getSpecializedId(CLSSid_OclFeatureDefinition); + public static final /*@NonInvalid*/ @NonNull CollectionTypeId SEQ_CLSSid_OclModelElement = TypeId.SEQUENCE.getSpecializedId(CLSSid_OclModelElement); + public static final /*@NonInvalid*/ @NonNull CollectionTypeId SEQ_CLSSid_OclType = TypeId.SEQUENCE.getSpecializedId(CLSSid_OclType); + public static final /*@NonInvalid*/ @NonNull CollectionTypeId SEQ_CLSSid_Operation = TypeId.SEQUENCE.getSpecializedId(CLSSid_Operation); + public static final /*@NonInvalid*/ @NonNull CollectionTypeId SET_CLSSid_InPatternElement = TypeId.SET.getSpecializedId(CLSSid_InPatternElement); + public static final /*@NonInvalid*/ @NonNull CollectionTypeId SET_CLSSid_OclModel = TypeId.SET.getSpecializedId(CLSSid_OclModel); + public static final /*@NonInvalid*/ @NonNull CollectionTypeId SET_CLSSid_Package = TypeId.SET.getSpecializedId(CLSSid_Package); + public static final /*@NonInvalid*/ @NonNull NestedPackageId PACKid_atl2qvtr = PACKid_atl.getNestedPackageId("atl2qvtr"); + public static final /*@NonInvalid*/ @NonNull ClassId CLSSid_ATL2QVTr = PACKid_atl2qvtr.getClassId("ATL2QVTr", 0); + + /* + * Property-source to Property-target unnavigable navigation caches + */ + protected final @NonNull Map<Helper,TC_mapHelper_Context> OPPOSITE_OF_TC_mapHelper_Context_atl_atlHelper = new HashMap<Helper,TC_mapHelper_Context>(); + protected final @NonNull Map<InPattern,TC_mapInPattern> OPPOSITE_OF_TC_mapInPattern_atl_atlPattern = new HashMap<InPattern,TC_mapInPattern>(); + protected final @NonNull Map<MatchedRule,TC_mapMatchedRule> OPPOSITE_OF_TC_mapMatchedRule_atl_matchedRule = new HashMap<MatchedRule,TC_mapMatchedRule>(); + protected final @NonNull Map<Module,TC_mapModule> OPPOSITE_OF_TC_mapModule_atl_atlModule = new HashMap<Module,TC_mapModule>(); + protected final @NonNull Map<OclModel,TC_mapOclMetamodel> OPPOSITE_OF_TC_mapOclMetamodel_atl_oclMetamodel = new HashMap<OclModel,TC_mapOclMetamodel>(); + protected final @NonNull Map<OutPattern,TC_mapOutPattern> OPPOSITE_OF_TC_mapOutPattern_atl_atlPattern = new HashMap<OutPattern,TC_mapOutPattern>(); + protected final @NonNull Map<SimpleOutPatternElement,TC_mapSimpleOutPatternElement> OPPOSITE_OF_TC_mapSimpleOutPatternElement_atl_atlElement = new HashMap<SimpleOutPatternElement,TC_mapSimpleOutPatternElement>(); + protected final @NonNull Map<LocatedElement,TC_mapVariable> OPPOSITE_OF_TC_mapVariable_atl_atlVariable = new HashMap<LocatedElement,TC_mapVariable>(); + protected final @NonNull Map<Helper,TI_mapHelper> OPPOSITE_OF_TI_mapHelper_atl_atlHelper = new HashMap<Helper,TI_mapHelper>(); + protected final @NonNull Map<OclExpression,TI_mapOclExpression> OPPOSITE_OF_TI_mapOclExpression_atl_atlExpression = new HashMap<OclExpression,TI_mapOclExpression>(); + protected final @NonNull Map<org.eclipse.m2m.atl.common.OCL.VariableExp,WI_mapVariableExp_referredVariable> OPPOSITE_OF_WI_mapVariableExp_referredVariable_atl_atlExpression = new HashMap<org.eclipse.m2m.atl.common.OCL.VariableExp,WI_mapVariableExp_referredVariable>(); + + /* + * Array of the source PropertyIds of each Property for which unnavigable opposite property navigation may occur. + */ + private static final @NonNull PropertyId @NonNull [] oppositeIndex2propertyId = new @NonNull PropertyId[]{ + PROPid_atl_atlModule_9, // 0 => atl_atlModule + PROPid_atl_matchedRule, // 1 => atl_matchedRule + PROPid_atl_oclMetamodel_1, // 2 => atl_oclMetamodel + PROPid_atl_atlPattern_2, // 3 => atl_atlPattern + PROPid_atl_atlPattern_3, // 4 => atl_atlPattern + PROPid_atl_atlExpression_6, // 5 => atl_atlExpression + PROPid_atl_atlHelper_1, // 6 => atl_atlHelper + PROPid_atl_atlHelper_0, // 7 => atl_atlHelper + PROPid_atl_atlExpression_5, // 8 => atl_atlExpression + PROPid_atl_atlVariable_2, // 9 => atl_atlVariable + PROPid_atl_atlElement_0 // 10 => atl_atlElement + }; + + /* + * Array of the ClassIds of each class for which allInstances() may be invoked. Array index is the ClassIndex. + */ + private static final @NonNull ClassId @NonNull [] classIndex2classId = new @NonNull ClassId[]{ + CLSSid_Binding, // 0 => Binding + CLSSid_BooleanExp, // 1 => BooleanExp + CLSSid_Helper, // 2 => Helper + CLSSid_InPattern, // 3 => InPattern + CLSSid_IntegerExp, // 4 => IntegerExp + CLSSid_LocatedElement, // 5 => LocatedElement + CLSSid_MatchedRule, // 6 => MatchedRule + CLSSid_Module, // 7 => Module + CLSSid_NavigationOrAttributeCallExp, // 8 => NavigationOrAttributeCallExp + CLSSid_OclContextDefinition, // 9 => OclContextDefinition + CLSSid_OclExpression, // 10 => OclExpression + CLSSid_OclModel, // 11 => OclModel + CLSSid_OperationCallExp, // 12 => OperationCallExp + CLSSid_OperatorCallExp, // 13 => OperatorCallExp + CLSSid_OutPattern, // 14 => OutPattern + CLSSid_SimpleInPatternElement, // 15 => SimpleInPatternElement + CLSSid_SimpleOutPatternElement, // 16 => SimpleOutPatternElement + CLSSid_StringExp, // 17 => StringExp + CLSSid_VariableExp // 18 => VariableExp + }; + + /* + * Mapping from each ClassIndex to all the ClassIndexes to which an object of the outer index + * may contribute results to an allInstances() invocation. + * Non trivial inner arrays arise when one ClassId is a derivation of another and so an + * instance of the derived classId contributes to derived and inherited ClassIndexes. + */ + private final static int @NonNull [] @NonNull [] classIndex2allClassIndexes = new int @NonNull [] @NonNull [] { + {0,5}, // 0 : Binding -> {Binding,LocatedElement} + {1,5,10}, // 1 : BooleanExp -> {BooleanExp,LocatedElement,OclExpression} + {2,5}, // 2 : Helper -> {Helper,LocatedElement} + {3,5}, // 3 : InPattern -> {InPattern,LocatedElement} + {4,5,10}, // 4 : IntegerExp -> {IntegerExp,LocatedElement,OclExpression} + {5}, // 5 : LocatedElement -> {LocatedElement} + {6,5}, // 6 : MatchedRule -> {MatchedRule,LocatedElement} + {7,5}, // 7 : Module -> {Module,LocatedElement} + {8,5,10}, // 8 : NavigationOrAttributeCallExp -> {NavigationOrAttributeCallExp,LocatedElement,OclExpression} + {9,5}, // 9 : OclContextDefinition -> {OclContextDefinition,LocatedElement} + {10,5}, // 10 : OclExpression -> {OclExpression,LocatedElement} + {11,5}, // 11 : OclModel -> {OclModel,LocatedElement} + {12,5,10}, // 12 : OperationCallExp -> {OperationCallExp,LocatedElement,OclExpression} + {13,5,10,12}, // 13 : OperatorCallExp -> {OperatorCallExp,LocatedElement,OclExpression,OperationCallExp} + {14,5}, // 14 : OutPattern -> {OutPattern,LocatedElement} + {15,5}, // 15 : SimpleInPatternElement -> {SimpleInPatternElement,LocatedElement} + {16,5}, // 16 : SimpleOutPatternElement -> {SimpleOutPatternElement,LocatedElement} + {17,5,10}, // 17 : StringExp -> {StringExp,LocatedElement,OclExpression} + {18,5,10} // 18 : VariableExp -> {VariableExp,LocatedElement,OclExpression} + }; + + protected final @NonNull AbstractInvocationConstructor CTOR___root__ = new AbstractInvocationConstructor(invocationManager, "__root__", false) + { + @Override + public @NonNull MAP___root__ newInstance(@NonNull Object @NonNull [] values) { + return new MAP___root__(this, values); + } + }; + + protected final @NonNull AbstractInvocationConstructor CTOR_m_TC__mapNavigationOrAttributeCallExp__Property__typ_p5 = new AbstractInvocationConstructor(invocationManager, "m_TC__mapNavigationOrAttributeCallExp__Property__typ_p5", false) + { + @Override + public @NonNull MAP_m_TC__mapNavigationOrAttributeCallExp__Property__typ_p5 newInstance(@NonNull Object @NonNull [] values) { + return new MAP_m_TC__mapNavigationOrAttributeCallExp__Property__typ_p5(this, values); + } + }; + + protected final @NonNull AbstractInvocationConstructor CTOR_m_TC__mapOperationCallExp__Operation__type_p5 = new AbstractInvocationConstructor(invocationManager, "m_TC__mapOperationCallExp__Operation__type_p5", false) + { + @Override + public @NonNull MAP_m_TC__mapOperationCallExp__Operation__type_p5 newInstance(@NonNull Object @NonNull [] values) { + return new MAP_m_TC__mapOperationCallExp__Operation__type_p5(this, values); + } + }; + + protected final @NonNull AbstractInvocationConstructor CTOR_m_TC__mapOperatorCallExp__type_p5 = new AbstractInvocationConstructor(invocationManager, "m_TC__mapOperatorCallExp__type_p5", false) + { + @Override + public @NonNull MAP_m_TC__mapOperatorCallExp__type_p5 newInstance(@NonNull Object @NonNull [] values) { + return new MAP_m_TC__mapOperatorCallExp__type_p5(this, values); + } + }; + + protected final @NonNull AbstractInvocationConstructor CTOR_m_TC__mapIfExp__type_p6 = new AbstractInvocationConstructor(invocationManager, "m_TC__mapIfExp__type_p6", false) + { + @Override + public @NonNull MAP_m_TC__mapIfExp__type_p6 newInstance(@NonNull Object @NonNull [] values) { + return new MAP_m_TC__mapIfExp__type_p6(this, values); + } + }; + + protected final @NonNull AbstractComputationConstructor FTOR_getCommonType = new AbstractComputationConstructor(idResolver) + { + @Override + public @NonNull FUN_getCommonType newInstance(@Nullable Object @NonNull [] values) { + return new FUN_getCommonType(values); + } + }; + + protected final @NonNull AbstractComputationConstructor FTOR_getHelper = new AbstractComputationConstructor(idResolver) + { + @Override + public @NonNull FUN_getHelper newInstance(@Nullable Object @NonNull [] values) { + return new FUN_getHelper(values); + } + }; + + protected final @NonNull AbstractComputationConstructor FTOR_getModule = new AbstractComputationConstructor(idResolver) + { + @Override + public @NonNull FUN_getModule newInstance(@Nullable Object @NonNull [] values) { + return new FUN_getModule(values); + } + }; + + protected final @NonNull AbstractComputationConstructor FTOR_getOperation = new AbstractComputationConstructor(idResolver) + { + @Override + public @NonNull FUN_getOperation newInstance(@Nullable Object @NonNull [] values) { + return new FUN_getOperation(values); + } + }; + + protected final @NonNull AbstractComputationConstructor FTOR_getPackage = new AbstractComputationConstructor(idResolver) + { + @Override + public @NonNull FUN_getPackage newInstance(@Nullable Object @NonNull [] values) { + return new FUN_getPackage(values); + } + }; + + protected final @NonNull AbstractComputationConstructor FTOR_getProperty = new AbstractComputationConstructor(idResolver) + { + @Override + public @NonNull FUN_getProperty newInstance(@Nullable Object @NonNull [] values) { + return new FUN_getProperty(values); + } + }; + + protected final @NonNull AbstractComputationConstructor FTOR_getType = new AbstractComputationConstructor(idResolver) + { + @Override + public @NonNull FUN_getType newInstance(@Nullable Object @NonNull [] values) { + return new FUN_getType(values); + } + }; + + + public ATL2QVTr(final @NonNull TransformationExecutor executor) { + super(executor, new @NonNull String[] {"middle", "atl", "qvtr", "$primitive$"}, oppositeIndex2propertyId, classIndex2classId, classIndex2allClassIndexes); + } + + @Override + public boolean run() { + final @NonNull Connection ji_Binding = models[1/*atl*/].getConnection(0/*ATL::Binding*/); + final @NonNull Connection ji_BooleanExp = models[1/*atl*/].getConnection(1/*OCL::BooleanExp*/); + final @NonNull Connection ji_Helper = models[1/*atl*/].getConnection(2/*ATL::Helper*/); + final @NonNull Connection ji_InPattern = models[1/*atl*/].getConnection(3/*ATL::InPattern*/); + final @NonNull Connection ji_IntegerExp = models[1/*atl*/].getConnection(4/*OCL::IntegerExp*/); + final @NonNull Connection ji_LocatedElement = models[1/*atl*/].getConnection(5/*ATL::LocatedElement*/); + final @NonNull Connection ji_MatchedRule = models[1/*atl*/].getConnection(6/*ATL::MatchedRule*/); + final @NonNull Connection ji_Module = models[1/*atl*/].getConnection(7/*ATL::Module*/); + final @NonNull Connection ji_NavigationOrAttributeCallExp = models[1/*atl*/].getConnection(8/*OCL::NavigationOrAttributeCallExp*/); + final @NonNull Connection ji_OclContextDefinition = models[1/*atl*/].getConnection(9/*OCL::OclContextDefinition*/); + final @NonNull Connection ji_OclExpression = models[1/*atl*/].getConnection(10/*OCL::OclExpression*/); + final @NonNull Connection ji_OclModel = models[1/*atl*/].getConnection(11/*OCL::OclModel*/); + final @NonNull Connection ji_OperationCallExp = models[1/*atl*/].getConnection(12/*OCL::OperationCallExp*/); + final @NonNull Connection ji_OperatorCallExp = models[1/*atl*/].getConnection(13/*OCL::OperatorCallExp*/); + final @NonNull Connection ji_OutPattern = models[1/*atl*/].getConnection(14/*ATL::OutPattern*/); + final @NonNull Connection ji_SimpleInPatternElement = models[1/*atl*/].getConnection(15/*ATL::SimpleInPatternElement*/); + final @NonNull Connection ji_SimpleOutPatternElement = models[1/*atl*/].getConnection(16/*ATL::SimpleOutPatternElement*/); + final @NonNull Connection ji_StringExp = models[1/*atl*/].getConnection(17/*OCL::StringExp*/); + final @NonNull Connection ji_VariableExp = models[1/*atl*/].getConnection(18/*OCL::VariableExp*/); + CTOR___root__.invoke(ji_Binding, ji_BooleanExp, ji_Helper, ji_InPattern, ji_IntegerExp, ji_LocatedElement, ji_MatchedRule, ji_Module, ji_NavigationOrAttributeCallExp, ji_OclContextDefinition, ji_OclExpression, ji_OclModel, ji_OperationCallExp, ji_OperatorCallExp, ji_OutPattern, ji_SimpleInPatternElement, ji_SimpleOutPatternElement, ji_StringExp, ji_VariableExp); + return invocationManager.flush(); + } + + /** + * ::getCommonType(type1 : Type[1], type2 : Type[1]) : Type[1] + */ + protected class FUN_getCommonType extends AbstractComputation + { + protected final @NonNull ATL2QVTr self; + protected /*@NonInvalid*/ @NonNull Type type1; + protected /*@NonInvalid*/ @NonNull Type type2; + protected final /*@Thrown*/ @NonNull Type instance; + + public FUN_getCommonType(/*Nullable*/ Object @NonNull [] boundValues) { + this.self = (ATL2QVTr)boundValues[0]; + this.type1 = (Type)boundValues[1]; + this.type2 = (Type)boundValues[2]; + this.instance = (Type)org.eclipse.qvtd.atl.atl2qvtr.Helper4getCommonType.INSTANCE.evaluate(executor, CLSSid_Type, type1, type2); + } + + @Override + public @Nullable Object getResult() { + return instance; + } + + @Override + public boolean isEqual(@NonNull IdResolver idResolver, @Nullable Object @NonNull [] thoseValues) { + return this.self == thoseValues[0] + && idResolver.oclEquals(this.type1, thoseValues[1]) + && idResolver.oclEquals(this.type2, thoseValues[2]); + } + } + + /** + * ::getHelper(element : ATL::LocatedElement[?]) : ATL::Helper[?] + */ + protected class FUN_getHelper extends AbstractComputation + { + protected final @NonNull ATL2QVTr self; + protected /*@NonInvalid*/ LocatedElement element; + protected final /*@Thrown*/ @Nullable Helper instance; + + public FUN_getHelper(/*Nullable*/ Object @NonNull [] boundValues) { + this.self = (ATL2QVTr)boundValues[0]; + this.element = (LocatedElement)boundValues[1]; + this.instance = (Helper)org.eclipse.qvtd.atl.atl2qvtr.Helper4getHelper.INSTANCE.evaluate(executor, CLSSid_Helper, element); + } + + @Override + public @Nullable Object getResult() { + return instance; + } + + @Override + public boolean isEqual(@NonNull IdResolver idResolver, @Nullable Object @NonNull [] thoseValues) { + return this.self == thoseValues[0] + && idResolver.oclEquals(this.element, thoseValues[1]); + } + } + + /** + * ::getModule(element : ATL::LocatedElement[?]) : ATL::Module[1] + */ + protected class FUN_getModule extends AbstractComputation + { + protected final @NonNull ATL2QVTr self; + protected /*@NonInvalid*/ LocatedElement element_0; + protected final /*@Thrown*/ @NonNull Module instance; + + public FUN_getModule(/*Nullable*/ Object @NonNull [] boundValues) { + this.self = (ATL2QVTr)boundValues[0]; + this.element_0 = (LocatedElement)boundValues[1]; + this.instance = (Module)org.eclipse.qvtd.atl.atl2qvtr.Helper4getModule.INSTANCE.evaluate(executor, CLSSid_Module, element_0); + } + + @Override + public @Nullable Object getResult() { + return instance; + } + + @Override + public boolean isEqual(@NonNull IdResolver idResolver, @Nullable Object @NonNull [] thoseValues) { + return this.self == thoseValues[0] + && idResolver.oclEquals(this.element_0, thoseValues[1]); + } + } + + /** + * ::getOperation(type : Type[1], name : String[1]) : Operation[1] + */ + protected class FUN_getOperation extends AbstractComputation + { + protected final @NonNull ATL2QVTr self; + protected /*@NonInvalid*/ @NonNull Type type; + protected /*@NonInvalid*/ @NonNull String name; + protected final /*@Thrown*/ org.eclipse.ocl.pivot.@NonNull Operation instance; + + public FUN_getOperation(/*Nullable*/ Object @NonNull [] boundValues) { + this.self = (ATL2QVTr)boundValues[0]; + this.type = (Type)boundValues[1]; + this.name = (String)boundValues[2]; + this.instance = (org.eclipse.ocl.pivot.Operation)org.eclipse.qvtd.atl.atl2qvtr.Helper4getOperation.INSTANCE.evaluate(executor, CLSSid_Operation_0, type, name); + } + + @Override + public @Nullable Object getResult() { + return instance; + } + + @Override + public boolean isEqual(@NonNull IdResolver idResolver, @Nullable Object @NonNull [] thoseValues) { + return this.self == thoseValues[0] + && idResolver.oclEquals(this.type, thoseValues[1]) + && idResolver.oclEquals(this.name, thoseValues[2]); + } + } + + /** + * ::getPackage(atlModule : ATL::Module[1], name : String[1]) : Package[?] + */ + protected class FUN_getPackage extends AbstractComputation + { + protected final @NonNull ATL2QVTr self; + protected /*@NonInvalid*/ @NonNull Module atlModule_0; + protected /*@NonInvalid*/ @NonNull String name_0; + protected final /*@Thrown*/ org.eclipse.ocl.pivot.@Nullable Package instance; + + public FUN_getPackage(/*Nullable*/ Object @NonNull [] boundValues) { + this.self = (ATL2QVTr)boundValues[0]; + this.atlModule_0 = (Module)boundValues[1]; + this.name_0 = (String)boundValues[2]; + this.instance = (Package)org.eclipse.qvtd.atl.atl2qvtr.Helper4getPackage.INSTANCE.evaluate(executor, CLSSid_Package, atlModule_0, name_0); + } + + @Override + public @Nullable Object getResult() { + return instance; + } + + @Override + public boolean isEqual(@NonNull IdResolver idResolver, @Nullable Object @NonNull [] thoseValues) { + return this.self == thoseValues[0] + && idResolver.oclEquals(this.atlModule_0, thoseValues[1]) + && idResolver.oclEquals(this.name_0, thoseValues[2]); + } + } + + /** + * ::getProperty(type : Type[1], name : String[1]) : Property[1] + */ + protected class FUN_getProperty extends AbstractComputation + { + protected final @NonNull ATL2QVTr self; + protected /*@NonInvalid*/ @NonNull Type type_0; + protected /*@NonInvalid*/ @NonNull String name_1; + protected final /*@Thrown*/ @NonNull Property instance; + + public FUN_getProperty(/*Nullable*/ Object @NonNull [] boundValues) { + this.self = (ATL2QVTr)boundValues[0]; + this.type_0 = (Type)boundValues[1]; + this.name_1 = (String)boundValues[2]; + this.instance = (Property)org.eclipse.qvtd.atl.atl2qvtr.Helper4getProperty.INSTANCE.evaluate(executor, CLSSid_Property, type_0, name_1); + } + + @Override + public @Nullable Object getResult() { + return instance; + } + + @Override + public boolean isEqual(@NonNull IdResolver idResolver, @Nullable Object @NonNull [] thoseValues) { + return this.self == thoseValues[0] + && idResolver.oclEquals(this.type_0, thoseValues[1]) + && idResolver.oclEquals(this.name_1, thoseValues[2]); + } + } + + /** + * ::getType(type : OCL::OclType[?]) : Class[1] + */ + protected class FUN_getType extends AbstractComputation + { + protected final @NonNull ATL2QVTr self; + protected /*@NonInvalid*/ OclType type_1; + protected final /*@Thrown*/ org.eclipse.ocl.pivot.@NonNull Class instance; + + public FUN_getType(/*Nullable*/ Object @NonNull [] boundValues) { + this.self = (ATL2QVTr)boundValues[0]; + this.type_1 = (OclType)boundValues[1]; + this.instance = (Class)org.eclipse.qvtd.atl.atl2qvtr.Helper4getType.INSTANCE.evaluate(executor, CLSSid_Class, type_1); + } + + @Override + public @Nullable Object getResult() { + return instance; + } + + @Override + public boolean isEqual(@NonNull IdResolver idResolver, @Nullable Object @NonNull [] thoseValues) { + return this.self == thoseValues[0] + && idResolver.oclEquals(this.type_1, thoseValues[1]); + } + } + + /** + * + * map __root__ in ATL2QVTr { + * + * append ji_Binding : ATL::Binding[1]; + * append ji_BooleanExp : OCL::BooleanExp[1]; + * append ji_Helper : ATL::Helper[1]; + * append ji_InPattern : ATL::InPattern[1]; + * append ji_IntegerExp : OCL::IntegerExp[1]; + * append ji_LocatedElement : ATL::LocatedElement[1]; + * append ji_MatchedRule : ATL::MatchedRule[1]; + * append ji_Module : ATL::Module[1]; + * append ji_NavigationOrAttributeCallExp : OCL::NavigationOrAttributeCallExp[1]; + * append ji_OclContextDefinition : OCL::OclContextDefinition[1]; + * append ji_OclExpression : OCL::OclExpression[1]; + * append ji_OclModel : OCL::OclModel[1]; + * append ji_OperationCallExp : OCL::OperationCallExp[1]; + * append ji_OperatorCallExp : OCL::OperatorCallExp[1]; + * append ji_OutPattern : ATL::OutPattern[1]; + * append ji_SimpleInPatternElement : ATL::SimpleInPatternElement[1]; + * append ji_SimpleOutPatternElement : ATL::SimpleOutPatternElement[1]; + * append ji_StringExp : OCL::StringExp[1]; + * append ji_VariableExp : OCL::VariableExp[1]; + * ::jm_TC__mapHelper__Attribute : trace_ATL2QVTr::TC_mapHelper_Attribute[1]::jm_TC__mapHelper__Attribute_1 : trace_ATL2QVTr::TC_mapHelper_Attribute[1]::jm_TC__mapHelper__Operation : trace_ATL2QVTr::TC_mapHelper_Operation[1]::jm_TC__mapHelper__Operation_1 : trace_ATL2QVTr::TC_mapHelper_Operation[1]::jm_TC__mapIfExp : trace_ATL2QVTr::TC_mapIfExp[1]::jm_TC__mapIfExp_1 : trace_ATL2QVTr::TC_mapIfExp[1]::jm_TC__mapNavigationOrAttributeCallExp__Helper : trace_ATL2QVTr::TC_mapNavigationOrAttributeCallExp_Helper[1]::jm_TC__mapNavigationOrAttributeCallExp__Helper_1 : trace_ATL2QVTr::TC_mapNavigationOrAttributeCallExp_Helper[1]::jm_TC__mapNavigationOrAttributeCallExp__Property : trace_ATL2QVTr::TC_mapNavigationOrAttributeCallExp_Property[1]::jm_TC__mapNavigationOrAttributeCallExp__Property_1 : trace_ATL2QVTr::TC_mapNavigationOrAttributeCallExp_Property[1]::jm_TC__mapOperationCallExp__Helper : trace_ATL2QVTr::TC_mapOperationCallExp_Helper[1]::jm_TC__mapOperationCallExp__Helper_1 : trace_ATL2QVTr::TC_mapOperationCallExp_Helper[1]::jm_TC__mapOperationCallExp__Operation : trace_ATL2QVTr::TC_mapOperationCallExp_Operation[1]::jm_TC__mapOperationCallExp__Operation_1 : trace_ATL2QVTr::TC_mapOperationCallExp_Operation[1]::jm_TC__mapOperatorCallExp : trace_ATL2QVTr::TC_mapOperatorCallExp[1]::jm_TC__mapOperatorCallExp_1 : trace_ATL2QVTr::TC_mapOperatorCallExp[1]install m_TC__mapBooleanExp_atl_atlExpression_primitive_symb { + * atlExpression consumes append ji_BooleanExp : OCL::BooleanExp[1]; + * ; + * } + * install m_Helper { + * atlHelper consumes append ji_Helper : ATL::Helper[1]; + * ; + * } + * install m_TC__mapIntegerExp_atl_atlExpression_primitive_symb { + * atlExpression consumes append ji_IntegerExp : OCL::IntegerExp[1]; + * ; + * } + * install m_TC__mapModule_atl_atlModule_primitive_txName_qvtr_ { + * atlModule consumes append ji_Module : ATL::Module[1]; + * ; + * } + * install m_TC__mapMatchedRule_atl_atlModule_atl_matchedRule_p { + * matchedRule consumes append ji_MatchedRule : ATL::MatchedRule[1]; + * ; + * } + * install m_TC__mapMatchedRule__super_atl_atlChildRule_atl_atl { + * atlChildRule consumes append ji_MatchedRule : ATL::MatchedRule[1]; + * ; + * } + * install m_NavigationOrAttributeCallExp { + * atlExpression consumes append ji_NavigationOrAttributeCallExp : OCL::NavigationOrAttributeCallExp[1]; + * ; + * } + * install m_OclExpression { + * atlExpression consumes append ji_OclExpression : OCL::OclExpression[1]; + * ; + * } + * install m_TC__mapOclMetamodel_atl_oclMetamodel_primitive_tmN { + * oclMetamodel consumes append ji_OclModel : OCL::OclModel[1]; + * ; + * } + * install m_TC__mapInPattern_atl_atlModel_atl_atlPattern_atl_a { + * atlPattern consumes append ji_InPattern : ATL::InPattern[1]; + * ; + * } + * install m_TC__mapOclModel__IN_atl_atlModule_atl_oclMetamodel { + * oclModel consumes append ji_OclModel : OCL::OclModel[1]; + * ; + * } + * install m_TC__mapOclModel__OUT_atl_atlModule_atl_oclMetamode { + * oclModel consumes append ji_OclModel : OCL::OclModel[1]; + * ; + * } + * install m_OperationCallExp { + * atlExpression consumes append ji_OperationCallExp : OCL::OperationCallExp[1]; + * ; + * } + * install m_TC__mapOutPattern_atl_atlPattern_atl_atlRule_qvtr_ { + * atlPattern consumes append ji_OutPattern : ATL::OutPattern[1]; + * ; + * } + * install m_TC__mapSimpleInPatternElement_atl_atlElement_atl_a { + * atlElement consumes append ji_SimpleInPatternElement : ATL::SimpleInPatternElement[1]; + * ; + * } + * install m_TC__mapSimpleOutPatternElement_atl_atlElement_atl_ { + * atlElement consumes append ji_SimpleOutPatternElement : ATL::SimpleOutPatternElement[1]; + * ; + * } + * install m_TC__mapStringExp_atl_atlExpression_primitive_symbo { + * atlExpression consumes append ji_StringExp : OCL::StringExp[1]; + * ; + * } + * install m_TC__mapVariableExp_atl_atlExpression_atl_atlVariab { + * atlExpression consumes append ji_VariableExp : OCL::VariableExp[1]; + * ; + * } + * install m_VariableExp { + * atlExpression consumes append ji_VariableExp : OCL::VariableExp[1]; + * ; + * } + * install m_LocatedElement { + * atlVariable consumes append ji_LocatedElement : ATL::LocatedElement[1]; + * ; + * } + * install m_TC__mapHelper__Attribute_atl_atlDefinition_atl_atl_p0 { + * atlExpression consumes append ji_OclExpression : OCL::OclExpression[1]; + * ; + * jm_TC__mapHelper__Attribute_1 appendsTo jm_TC__mapHelper__Attribute_1; + * } + * install m_TC__mapHelper__Operation_atl_atlDefinition_atl_atl_p0 { + * atlExpression consumes append ji_OclExpression : OCL::OclExpression[1]; + * ; + * jm_TC__mapHelper__Operation_1 appendsTo jm_TC__mapHelper__Operation_1; + * } + * install m_TC__mapIfExp_atl_atlCondition_atl_atlElse_atl_atlE_p0 { + * atlCondition consumes append ji_OclExpression : OCL::OclExpression[1]; + * ; + * jm_TC__mapIfExp_1 appendsTo jm_TC__mapIfExp_1; + * } + * install m_TC__mapNavigationOrAttributeCallExp__Helper_atl_at_p0 { + * atlExpression consumes append ji_NavigationOrAttributeCallExp : OCL::NavigationOrAttributeCallExp[1]; + * ; + * jm_TC__mapNavigationOrAttributeCallExp__Helper_1 appendsTo jm_TC__mapNavigationOrAttributeCallExp__Helper_1; + * } + * install m_TC__mapNavigationOrAttributeCallExp__Property_atl__p0 { + * atlExpression consumes append ji_NavigationOrAttributeCallExp : OCL::NavigationOrAttributeCallExp[1]; + * ; + * jm_TC__mapNavigationOrAttributeCallExp__Property_1 appendsTo jm_TC__mapNavigationOrAttributeCallExp__Property_1; + * } + * install m_TC__mapOperationCallExp__Helper_atl_atlExpression__p0 { + * atlExpression consumes append ji_OperationCallExp : OCL::OperationCallExp[1]; + * ; + * jm_TC__mapOperationCallExp__Helper_1 appendsTo jm_TC__mapOperationCallExp__Helper_1; + * } + * install m_TC__mapOperationCallExp__Operation_atl_atlExpressi_p0 { + * atlExpression consumes append ji_OperationCallExp : OCL::OperationCallExp[1]; + * ; + * jm_TC__mapOperationCallExp__Operation_1 appendsTo jm_TC__mapOperationCallExp__Operation_1; + * } + * install m_TC__mapOperatorCallExp_atl_atlExpression_atl_atlSo_p0 { + * atlExpression consumes append ji_OperatorCallExp : OCL::OperatorCallExp[1]; + * ; + * jm_TC__mapOperatorCallExp_1 appendsTo jm_TC__mapOperatorCallExp_1; + * } + * install m_TC__mapHelper__Attribute_invocation_mapHelper_Cont_p1 { + * jm_TC__mapHelper__Attribute appendsTo jm_TC__mapHelper__Attribute; + * trace consumes ::jm_TC__mapHelper__Attribute_1 : trace_ATL2QVTr::TC_mapHelper_Attribute[1]; + * } + * install m_TC__mapHelper__Attribute_qvtr_qvtrFunction_p2 { + * trace consumes ::jm_TC__mapHelper__Attribute : trace_ATL2QVTr::TC_mapHelper_Attribute[1]; + * } + * install m_TC__mapHelper__Operation_invocation_mapHelper_Cont_p1 { + * jm_TC__mapHelper__Operation appendsTo jm_TC__mapHelper__Operation; + * trace consumes ::jm_TC__mapHelper__Operation_1 : trace_ATL2QVTr::TC_mapHelper_Operation[1]; + * } + * install m_TC__mapHelper__Operation_qvtr_qvtrFunction_p2 { + * trace consumes ::jm_TC__mapHelper__Operation : trace_ATL2QVTr::TC_mapHelper_Operation[1]; + * } + * install m_TC__mapHelper__Attribute__TC_mapHelper_Context_qvt_p4 { + * trace consumes ::jm_TC__mapHelper__Attribute : trace_ATL2QVTr::TC_mapHelper_Attribute[1]; + * } + * install m_TC__mapHelper__Operation__TC_mapHelper_Context_qvt_p4 { + * trace consumes ::jm_TC__mapHelper__Operation : trace_ATL2QVTr::TC_mapHelper_Operation[1]; + * } + * install m_TC__mapHelper__Context_atl_atlContext_atl_atlDefin { + * atlContext consumes append ji_OclContextDefinition : OCL::OclContextDefinition[1]; + * ; + * } + * install m_TC__mapIfExp_status_p1 { + * jm_TC__mapIfExp appendsTo jm_TC__mapIfExp; + * trace consumes ::jm_TC__mapIfExp_1 : trace_ATL2QVTr::TC_mapIfExp[1]; + * } + * install m_TC__mapIfExp_qvtr_qvtrExpression_p2 { + * trace consumes ::jm_TC__mapIfExp : trace_ATL2QVTr::TC_mapIfExp[1]; + * } + * install m_TC__mapNavigationOrAttributeCallExp__Helper_qvtr_q_p1 { + * jm_TC__mapNavigationOrAttributeCallExp__Helper appendsTo jm_TC__mapNavigationOrAttributeCallExp__Helper; + * trace consumes ::jm_TC__mapNavigationOrAttributeCallExp__Helper_1 : trace_ATL2QVTr::TC_mapNavigationOrAttributeCallExp_Helper[1]; + * } + * install m_TC__mapNavigationOrAttributeCallExp__Helper_qvtr_q_p2 { + * trace consumes ::jm_TC__mapNavigationOrAttributeCallExp__Helper : trace_ATL2QVTr::TC_mapNavigationOrAttributeCallExp_Helper[1]; + * } + * install m_TC__mapNavigationOrAttributeCallExp__Property_stat_p1 { + * jm_TC__mapNavigationOrAttributeCallExp__Property appendsTo jm_TC__mapNavigationOrAttributeCallExp__Property; + * trace consumes ::jm_TC__mapNavigationOrAttributeCallExp__Property_1 : trace_ATL2QVTr::TC_mapNavigationOrAttributeCallExp_Property[1]; + * } + * install m_TC__mapNavigationOrAttributeCallExp__Property_qvtr_p2 { + * trace consumes ::jm_TC__mapNavigationOrAttributeCallExp__Property : trace_ATL2QVTr::TC_mapNavigationOrAttributeCallExp_Property[1]; + * } + * install m_TC__mapOperationCallExp__Helper_qvtr_qvtrOperation_p1 { + * jm_TC__mapOperationCallExp__Helper appendsTo jm_TC__mapOperationCallExp__Helper; + * trace consumes ::jm_TC__mapOperationCallExp__Helper_1 : trace_ATL2QVTr::TC_mapOperationCallExp_Helper[1]; + * } + * install m_WI__mapVariableExp__referredVariable_result { + * atlExpression consumes append ji_VariableExp : OCL::VariableExp[1]; + * ; + * } + * install m_WI__mapVariableExp__referredVariable_result_1 { + * atlExpression consumes append ji_VariableExp : OCL::VariableExp[1]; + * ; + * } + * install m_TC__mapOperationCallExp__Helper_qvtr_qvtrExpressio_p2 { + * trace consumes ::jm_TC__mapOperationCallExp__Helper : trace_ATL2QVTr::TC_mapOperationCallExp_Helper[1]; + * } + * install m_TC__mapOperationCallExp__Operation_status_p1 { + * jm_TC__mapOperationCallExp__Operation appendsTo jm_TC__mapOperationCallExp__Operation; + * trace consumes ::jm_TC__mapOperationCallExp__Operation_1 : trace_ATL2QVTr::TC_mapOperationCallExp_Operation[1]; + * } + * install m_TC__mapOperationCallExp__Operation_qvtr_qvtrExpres_p2 { + * trace consumes ::jm_TC__mapOperationCallExp__Operation : trace_ATL2QVTr::TC_mapOperationCallExp_Operation[1]; + * } + * install m_TC__mapOperatorCallExp_atl_atlModule_status_p1 { + * jm_TC__mapOperatorCallExp appendsTo jm_TC__mapOperatorCallExp; + * trace consumes ::jm_TC__mapOperatorCallExp_1 : trace_ATL2QVTr::TC_mapOperatorCallExp[1]; + * } + * install m_TC__mapOperatorCallExp_qvtr_qvtrTransformation_p6 { + * trace consumes ::jm_TC__mapOperatorCallExp : trace_ATL2QVTr::TC_mapOperatorCallExp[1]; + * } + * install m_TC__mapOperatorCallExp_qvtr_qvtrExpression_p2 { + * trace consumes ::jm_TC__mapOperatorCallExp : trace_ATL2QVTr::TC_mapOperatorCallExp[1]; + * } + * install m_TC__mapBinding_atl_atlBinding_atl_atlExpression_at { + * atlBinding consumes append ji_Binding : ATL::Binding[1]; + * ; + * } + * install m_TC__mapInPattern__filter_atl_atlExpression_atl_atl { + * atlPattern consumes append ji_InPattern : ATL::InPattern[1]; + * ; + * } + * install m_TC__mapOperationCallExp__argument_atl_atlArgument_ { + * atlArgument consumes append ji_OclExpression : OCL::OclExpression[1]; + * ; + * } + * install m_TC__mapHelper__Attribute_qvtr_qvtrExpression_p3 { + * trace consumes ::jm_TC__mapHelper__Attribute : trace_ATL2QVTr::TC_mapHelper_Attribute[1]; + * } + * install m_TC__mapHelper__Operation_qvtr_qvtrExpression_p3 { + * trace consumes ::jm_TC__mapHelper__Operation : trace_ATL2QVTr::TC_mapHelper_Operation[1]; + * } + * install m_TC__mapIfExp_qvtr_qvtrCondition_p3 { + * trace consumes ::jm_TC__mapIfExp : trace_ATL2QVTr::TC_mapIfExp[1]; + * } + * install m_TC__mapNavigationOrAttributeCallExp__Helper_qvtr_q_p3 { + * trace consumes ::jm_TC__mapNavigationOrAttributeCallExp__Helper : trace_ATL2QVTr::TC_mapNavigationOrAttributeCallExp_Helper[1]; + * } + * install m_TC__mapNavigationOrAttributeCallExp__Property_qvtr_p3 { + * trace consumes ::jm_TC__mapNavigationOrAttributeCallExp__Property : trace_ATL2QVTr::TC_mapNavigationOrAttributeCallExp_Property[1]; + * } + * install m_TC__mapOperationCallExp__Helper_qvtr_qvtrSourceArg_p3 { + * trace consumes ::jm_TC__mapOperationCallExp__Helper : trace_ATL2QVTr::TC_mapOperationCallExp_Helper[1]; + * } + * install m_TC__mapOperationCallExp__Operation_qvtr_qvtrSource_p3 { + * trace consumes ::jm_TC__mapOperationCallExp__Operation : trace_ATL2QVTr::TC_mapOperationCallExp_Operation[1]; + * } + * install m_TC__mapOperatorCallExp_qvtr_qvtrSource_p3 { + * trace consumes ::jm_TC__mapOperatorCallExp : trace_ATL2QVTr::TC_mapOperatorCallExp[1]; + * } + * install m_TC__mapIfExp_qvtr_qvtrElse_p4 { + * trace consumes ::jm_TC__mapIfExp : trace_ATL2QVTr::TC_mapIfExp[1]; + * } + * install m_TC__mapNavigationOrAttributeCallExp__Helper__CallE_p4 { + * trace consumes ::jm_TC__mapNavigationOrAttributeCallExp__Helper : trace_ATL2QVTr::TC_mapNavigationOrAttributeCallExp_Helper[1]; + * } + * install m_TC__mapOperationCallExp__Helper__CallExp_ownedSour_p4 { + * trace consumes ::jm_TC__mapOperationCallExp__Helper : trace_ATL2QVTr::TC_mapOperationCallExp_Helper[1]; + * } + * install m_TC__mapIfExp_qvtr_qvtrThen_p5 { + * trace consumes ::jm_TC__mapIfExp : trace_ATL2QVTr::TC_mapIfExp[1]; + * } + * install m_TC__mapNavigationOrAttributeCallExp__Property__typ_p5 { + * trace consumes ::jm_TC__mapNavigationOrAttributeCallExp__Property : trace_ATL2QVTr::TC_mapNavigationOrAttributeCallExp_Property[1]; + * } + * install m_TC__mapOperationCallExp__Operation__type_p5 { + * trace consumes ::jm_TC__mapOperationCallExp__Operation : trace_ATL2QVTr::TC_mapOperationCallExp_Operation[1]; + * } + * install m_TC__mapOperatorCallExp__type_p5 { + * trace consumes ::jm_TC__mapOperatorCallExp : trace_ATL2QVTr::TC_mapOperatorCallExp[1]; + * } + * install m_TC__mapIfExp__type_p6 { + * trace consumes ::jm_TC__mapIfExp : trace_ATL2QVTr::TC_mapIfExp[1]; + * } + * install m_TC__mapNavigationOrAttributeCallExp__Property_qvtr_p4 { + * trace consumes ::jm_TC__mapNavigationOrAttributeCallExp__Property : trace_ATL2QVTr::TC_mapNavigationOrAttributeCallExp_Property[1]; + * } + * install m_TC__mapOperationCallExp__Operation_qvtr_qvtrOperat_p4 { + * trace consumes ::jm_TC__mapOperationCallExp__Operation : trace_ATL2QVTr::TC_mapOperationCallExp_Operation[1]; + * } + * install m_TC__mapOperatorCallExp_qvtr_qvtrOperation_p4 { + * trace consumes ::jm_TC__mapOperatorCallExp : trace_ATL2QVTr::TC_mapOperatorCallExp[1]; + * } + */ + protected class MAP___root__ extends AbstractInvocation + { + protected final @NonNull Connection ji_Binding; + protected final @NonNull Connection ji_BooleanExp; + protected final @NonNull Connection ji_Helper; + protected final @NonNull Connection ji_InPattern; + protected final @NonNull Connection ji_IntegerExp; + protected final @NonNull Connection ji_LocatedElement; + protected final @NonNull Connection ji_MatchedRule; + protected final @NonNull Connection ji_Module; + protected final @NonNull Connection ji_NavigationOrAttributeCallExp; + protected final @NonNull Connection ji_OclContextDefinition; + protected final @NonNull Connection ji_OclExpression; + protected final @NonNull Connection ji_OclModel; + protected final @NonNull Connection ji_OperationCallExp; + protected final @NonNull Connection ji_OperatorCallExp; + protected final @NonNull Connection ji_OutPattern; + protected final @NonNull Connection ji_SimpleInPatternElement; + protected final @NonNull Connection ji_SimpleOutPatternElement; + protected final @NonNull Connection ji_StringExp; + protected final @NonNull Connection ji_VariableExp; + + public MAP___root__(@NonNull InvocationConstructor constructor, @NonNull Object @NonNull [] boundValues) { + super(constructor); + ji_Binding = (Connection)boundValues[0]; + ji_BooleanExp = (Connection)boundValues[1]; + ji_Helper = (Connection)boundValues[2]; + ji_InPattern = (Connection)boundValues[3]; + ji_IntegerExp = (Connection)boundValues[4]; + ji_LocatedElement = (Connection)boundValues[5]; + ji_MatchedRule = (Connection)boundValues[6]; + ji_Module = (Connection)boundValues[7]; + ji_NavigationOrAttributeCallExp = (Connection)boundValues[8]; + ji_OclContextDefinition = (Connection)boundValues[9]; + ji_OclExpression = (Connection)boundValues[10]; + ji_OclModel = (Connection)boundValues[11]; + ji_OperationCallExp = (Connection)boundValues[12]; + ji_OperatorCallExp = (Connection)boundValues[13]; + ji_OutPattern = (Connection)boundValues[14]; + ji_SimpleInPatternElement = (Connection)boundValues[15]; + ji_SimpleOutPatternElement = (Connection)boundValues[16]; + ji_StringExp = (Connection)boundValues[17]; + ji_VariableExp = (Connection)boundValues[18]; + } + + @Override + public boolean execute() { + // connection variables + final @NonNull Connection jm_TC__mapHelper__Attribute_2 = createConnection("jm_TC__mapHelper__Attribute", CLSSid_TC_mapHelper_Attribute, false); + final @NonNull Connection jm_TC__mapHelper__Attribute_1_1 = createConnection("jm_TC__mapHelper__Attribute_1", CLSSid_TC_mapHelper_Attribute, false); + final @NonNull Connection jm_TC__mapHelper__Operation_2 = createConnection("jm_TC__mapHelper__Operation", CLSSid_TC_mapHelper_Operation, false); + final @NonNull Connection jm_TC__mapHelper__Operation_1_1 = createConnection("jm_TC__mapHelper__Operation_1", CLSSid_TC_mapHelper_Operation, false); + final @NonNull Connection jm_TC__mapIfExp_2 = createConnection("jm_TC__mapIfExp", CLSSid_TC_mapIfExp, false); + final @NonNull Connection jm_TC__mapIfExp_1_1 = createConnection("jm_TC__mapIfExp_1", CLSSid_TC_mapIfExp, false); + final @NonNull Connection jm_TC__mapNavigationOrAttributeCallExp__Helper_2 = createConnection("jm_TC__mapNavigationOrAttributeCallExp__Helper", CLSSid_TC_mapNavigationOrAttributeCallExp_Helper, false); + final @NonNull Connection jm_TC__mapNavigationOrAttributeCallExp__Helper_1_1 = createConnection("jm_TC__mapNavigationOrAttributeCallExp__Helper_1", CLSSid_TC_mapNavigationOrAttributeCallExp_Helper, false); + final @NonNull Connection jm_TC__mapNavigationOrAttributeCallExp__Property_2 = createConnection("jm_TC__mapNavigationOrAttributeCallExp__Property", CLSSid_TC_mapNavigationOrAttributeCallExp_Property, false); + final @NonNull Connection jm_TC__mapNavigationOrAttributeCallExp__Property_1_1 = createConnection("jm_TC__mapNavigationOrAttributeCallExp__Property_1", CLSSid_TC_mapNavigationOrAttributeCallExp_Property, false); + final @NonNull Connection jm_TC__mapOperationCallExp__Helper_2 = createConnection("jm_TC__mapOperationCallExp__Helper", CLSSid_TC_mapOperationCallExp_Helper, false); + final @NonNull Connection jm_TC__mapOperationCallExp__Helper_1_1 = createConnection("jm_TC__mapOperationCallExp__Helper_1", CLSSid_TC_mapOperationCallExp_Helper, false); + final @NonNull Connection jm_TC__mapOperationCallExp__Operation_2 = createConnection("jm_TC__mapOperationCallExp__Operation", CLSSid_TC_mapOperationCallExp_Operation, false); + final @NonNull Connection jm_TC__mapOperationCallExp__Operation_1_1 = createConnection("jm_TC__mapOperationCallExp__Operation_1", CLSSid_TC_mapOperationCallExp_Operation, false); + final @NonNull Connection jm_TC__mapOperatorCallExp_2 = createConnection("jm_TC__mapOperatorCallExp", CLSSid_TC_mapOperatorCallExp, false); + final @NonNull Connection jm_TC__mapOperatorCallExp_1_1 = createConnection("jm_TC__mapOperatorCallExp_1", CLSSid_TC_mapOperatorCallExp, false); + // mapping statements + for (@NonNull BooleanExp atlExpression_16 : ji_BooleanExp.typedIterable(BooleanExp.class)) { + MAP_m_TC__mapBooleanExp_atl_atlExpression_primitive_symb(atlExpression_16); + } + for (@NonNull Helper atlHelper_0 : ji_Helper.typedIterable(Helper.class)) { + MAP_m_Helper(atlHelper_0); + } + for (@NonNull IntegerExp atlExpression_17 : ji_IntegerExp.typedIterable(IntegerExp.class)) { + MAP_m_TC__mapIntegerExp_atl_atlExpression_primitive_symb(atlExpression_17); + } + for (@NonNull Module atlModule_1 : ji_Module.typedIterable(Module.class)) { + MAP_m_TC__mapModule_atl_atlModule_primitive_txName_qvtr_(atlModule_1); + } + for (@NonNull MatchedRule matchedRule_0 : ji_MatchedRule.typedIterable(MatchedRule.class)) { + MAP_m_TC__mapMatchedRule_atl_atlModule_atl_matchedRule_p(matchedRule_0); + } + for (@NonNull MatchedRule atlChildRule_0 : ji_MatchedRule.typedIterable(MatchedRule.class)) { + MAP_m_TC__mapMatchedRule__super_atl_atlChildRule_atl_atl(atlChildRule_0); + } + for (@NonNull NavigationOrAttributeCallExp atlExpression_18 : ji_NavigationOrAttributeCallExp.typedIterable(NavigationOrAttributeCallExp.class)) { + MAP_m_NavigationOrAttributeCallExp(atlExpression_18); + } + for (@NonNull OclExpression atlExpression_19 : ji_OclExpression.typedIterable(OclExpression.class)) { + MAP_m_OclExpression(atlExpression_19); + } + for (@NonNull OclModel oclMetamodel_0 : ji_OclModel.typedIterable(OclModel.class)) { + MAP_m_TC__mapOclMetamodel_atl_oclMetamodel_primitive_tmN(oclMetamodel_0); + } + for (@NonNull InPattern atlPattern_2 : ji_InPattern.typedIterable(InPattern.class)) { + MAP_m_TC__mapInPattern_atl_atlModel_atl_atlPattern_atl_a(atlPattern_2); + } + for (@NonNull OclModel oclModel_1 : ji_OclModel.typedIterable(OclModel.class)) { + MAP_m_TC__mapOclModel__IN_atl_atlModule_atl_oclMetamodel(oclModel_1); + } + for (@NonNull OclModel oclModel_2 : ji_OclModel.typedIterable(OclModel.class)) { + MAP_m_TC__mapOclModel__OUT_atl_atlModule_atl_oclMetamode(oclModel_2); + } + for (org.eclipse.m2m.atl.common.OCL.@NonNull OperationCallExp atlExpression_20 : ji_OperationCallExp.typedIterable(org.eclipse.m2m.atl.common.OCL.OperationCallExp.class)) { + MAP_m_OperationCallExp(atlExpression_20); + } + for (@NonNull OutPattern atlPattern_3 : ji_OutPattern.typedIterable(OutPattern.class)) { + MAP_m_TC__mapOutPattern_atl_atlPattern_atl_atlRule_qvtr_(atlPattern_3); + } + for (@NonNull SimpleInPatternElement atlElement_1 : ji_SimpleInPatternElement.typedIterable(SimpleInPatternElement.class)) { + MAP_m_TC__mapSimpleInPatternElement_atl_atlElement_atl_a(atlElement_1); + } + for (@NonNull SimpleOutPatternElement atlElement_2 : ji_SimpleOutPatternElement.typedIterable(SimpleOutPatternElement.class)) { + MAP_m_TC__mapSimpleOutPatternElement_atl_atlElement_atl_(atlElement_2); + } + for (@NonNull StringExp atlExpression_21 : ji_StringExp.typedIterable(StringExp.class)) { + MAP_m_TC__mapStringExp_atl_atlExpression_primitive_symbo(atlExpression_21); + } + for (org.eclipse.m2m.atl.common.OCL.@NonNull VariableExp atlExpression_22 : ji_VariableExp.typedIterable(org.eclipse.m2m.atl.common.OCL.VariableExp.class)) { + MAP_m_TC__mapVariableExp_atl_atlExpression_atl_atlVariab(atlExpression_22); + } + for (org.eclipse.m2m.atl.common.OCL.@NonNull VariableExp atlExpression_23 : ji_VariableExp.typedIterable(org.eclipse.m2m.atl.common.OCL.VariableExp.class)) { + MAP_m_VariableExp(atlExpression_23); + } + for (@NonNull LocatedElement atlVariable_0 : ji_LocatedElement.typedIterable(LocatedElement.class)) { + MAP_m_LocatedElement(atlVariable_0); + } + for (@NonNull OclExpression atlExpression_24 : ji_OclExpression.typedIterable(OclExpression.class)) { + MAP_m_TC__mapHelper__Attribute_atl_atlDefinition_atl_atl_p0(atlExpression_24, jm_TC__mapHelper__Attribute_1_1); + } + for (@NonNull OclExpression atlExpression_25 : ji_OclExpression.typedIterable(OclExpression.class)) { + MAP_m_TC__mapHelper__Operation_atl_atlDefinition_atl_atl_p0(atlExpression_25, jm_TC__mapHelper__Operation_1_1); + } + for (@NonNull OclExpression atlCondition_0 : ji_OclExpression.typedIterable(OclExpression.class)) { + MAP_m_TC__mapIfExp_atl_atlCondition_atl_atlElse_atl_atlE_p0(atlCondition_0, jm_TC__mapIfExp_1_1); + } + for (@NonNull NavigationOrAttributeCallExp atlExpression_26 : ji_NavigationOrAttributeCallExp.typedIterable(NavigationOrAttributeCallExp.class)) { + MAP_m_TC__mapNavigationOrAttributeCallExp__Helper_atl_at_p0(atlExpression_26, jm_TC__mapNavigationOrAttributeCallExp__Helper_1_1); + } + for (@NonNull NavigationOrAttributeCallExp atlExpression_27 : ji_NavigationOrAttributeCallExp.typedIterable(NavigationOrAttributeCallExp.class)) { + MAP_m_TC__mapNavigationOrAttributeCallExp__Property_atl__p0(atlExpression_27, jm_TC__mapNavigationOrAttributeCallExp__Property_1_1); + } + for (org.eclipse.m2m.atl.common.OCL.@NonNull OperationCallExp atlExpression_28 : ji_OperationCallExp.typedIterable(org.eclipse.m2m.atl.common.OCL.OperationCallExp.class)) { + MAP_m_TC__mapOperationCallExp__Helper_atl_atlExpression__p0(atlExpression_28, jm_TC__mapOperationCallExp__Helper_1_1); + } + for (org.eclipse.m2m.atl.common.OCL.@NonNull OperationCallExp atlExpression_29 : ji_OperationCallExp.typedIterable(org.eclipse.m2m.atl.common.OCL.OperationCallExp.class)) { + MAP_m_TC__mapOperationCallExp__Operation_atl_atlExpressi_p0(atlExpression_29, jm_TC__mapOperationCallExp__Operation_1_1); + } + for (@NonNull OperatorCallExp atlExpression_30 : ji_OperatorCallExp.typedIterable(OperatorCallExp.class)) { + MAP_m_TC__mapOperatorCallExp_atl_atlExpression_atl_atlSo_p0(atlExpression_30, jm_TC__mapOperatorCallExp_1_1); + } + for (@NonNull TC_mapHelper_Attribute trace_37 : jm_TC__mapHelper__Attribute_1_1.typedIterable(TC_mapHelper_Attribute.class)) { + MAP_m_TC__mapHelper__Attribute_invocation_mapHelper_Cont_p1(jm_TC__mapHelper__Attribute_2, trace_37); + } + for (@NonNull TC_mapHelper_Attribute trace_38 : jm_TC__mapHelper__Attribute_2.typedIterable(TC_mapHelper_Attribute.class)) { + MAP_m_TC__mapHelper__Attribute_qvtr_qvtrFunction_p2(trace_38); + } + for (@NonNull TC_mapHelper_Operation trace_39 : jm_TC__mapHelper__Operation_1_1.typedIterable(TC_mapHelper_Operation.class)) { + MAP_m_TC__mapHelper__Operation_invocation_mapHelper_Cont_p1(jm_TC__mapHelper__Operation_2, trace_39); + } + for (@NonNull TC_mapHelper_Operation trace_40 : jm_TC__mapHelper__Operation_2.typedIterable(TC_mapHelper_Operation.class)) { + MAP_m_TC__mapHelper__Operation_qvtr_qvtrFunction_p2(trace_40); + } + for (@NonNull TC_mapHelper_Attribute trace_41 : jm_TC__mapHelper__Attribute_2.typedIterable(TC_mapHelper_Attribute.class)) { + MAP_m_TC__mapHelper__Attribute__TC_mapHelper_Context_qvt_p4(trace_41); + } + for (@NonNull TC_mapHelper_Operation trace_42 : jm_TC__mapHelper__Operation_2.typedIterable(TC_mapHelper_Operation.class)) { + MAP_m_TC__mapHelper__Operation__TC_mapHelper_Context_qvt_p4(trace_42); + } + for (@NonNull OclContextDefinition atlContext_0 : ji_OclContextDefinition.typedIterable(OclContextDefinition.class)) { + MAP_m_TC__mapHelper__Context_atl_atlContext_atl_atlDefin(atlContext_0); + } + for (@NonNull TC_mapIfExp trace_43 : jm_TC__mapIfExp_1_1.typedIterable(TC_mapIfExp.class)) { + MAP_m_TC__mapIfExp_status_p1(jm_TC__mapIfExp_2, trace_43); + } + for (@NonNull TC_mapIfExp trace_44 : jm_TC__mapIfExp_2.typedIterable(TC_mapIfExp.class)) { + MAP_m_TC__mapIfExp_qvtr_qvtrExpression_p2(trace_44); + } + for (@NonNull TC_mapNavigationOrAttributeCallExp_Helper trace_45 : jm_TC__mapNavigationOrAttributeCallExp__Helper_1_1.typedIterable(TC_mapNavigationOrAttributeCallExp_Helper.class)) { + MAP_m_TC__mapNavigationOrAttributeCallExp__Helper_qvtr_q_p1(jm_TC__mapNavigationOrAttributeCallExp__Helper_2, trace_45); + } + for (@NonNull TC_mapNavigationOrAttributeCallExp_Helper trace_46 : jm_TC__mapNavigationOrAttributeCallExp__Helper_2.typedIterable(TC_mapNavigationOrAttributeCallExp_Helper.class)) { + MAP_m_TC__mapNavigationOrAttributeCallExp__Helper_qvtr_q_p2(trace_46); + } + for (@NonNull TC_mapNavigationOrAttributeCallExp_Property trace_47 : jm_TC__mapNavigationOrAttributeCallExp__Property_1_1.typedIterable(TC_mapNavigationOrAttributeCallExp_Property.class)) { + MAP_m_TC__mapNavigationOrAttributeCallExp__Property_stat_p1(jm_TC__mapNavigationOrAttributeCallExp__Property_2, trace_47); + } + for (@NonNull TC_mapNavigationOrAttributeCallExp_Property trace_48 : jm_TC__mapNavigationOrAttributeCallExp__Property_2.typedIterable(TC_mapNavigationOrAttributeCallExp_Property.class)) { + MAP_m_TC__mapNavigationOrAttributeCallExp__Property_qvtr_p2(trace_48); + } + for (@NonNull TC_mapOperationCallExp_Helper trace_49 : jm_TC__mapOperationCallExp__Helper_1_1.typedIterable(TC_mapOperationCallExp_Helper.class)) { + MAP_m_TC__mapOperationCallExp__Helper_qvtr_qvtrOperation_p1(jm_TC__mapOperationCallExp__Helper_2, trace_49); + } + for (org.eclipse.m2m.atl.common.OCL.@NonNull VariableExp atlExpression_31 : ji_VariableExp.typedIterable(org.eclipse.m2m.atl.common.OCL.VariableExp.class)) { + MAP_m_WI__mapVariableExp__referredVariable_result(atlExpression_31); + } + for (org.eclipse.m2m.atl.common.OCL.@NonNull VariableExp atlExpression_32 : ji_VariableExp.typedIterable(org.eclipse.m2m.atl.common.OCL.VariableExp.class)) { + MAP_m_WI__mapVariableExp__referredVariable_result_1(atlExpression_32); + } + for (@NonNull TC_mapOperationCallExp_Helper trace_50 : jm_TC__mapOperationCallExp__Helper_2.typedIterable(TC_mapOperationCallExp_Helper.class)) { + MAP_m_TC__mapOperationCallExp__Helper_qvtr_qvtrExpressio_p2(trace_50); + } + for (@NonNull TC_mapOperationCallExp_Operation trace_51 : jm_TC__mapOperationCallExp__Operation_1_1.typedIterable(TC_mapOperationCallExp_Operation.class)) { + MAP_m_TC__mapOperationCallExp__Operation_status_p1(jm_TC__mapOperationCallExp__Operation_2, trace_51); + } + for (@NonNull TC_mapOperationCallExp_Operation trace_52 : jm_TC__mapOperationCallExp__Operation_2.typedIterable(TC_mapOperationCallExp_Operation.class)) { + MAP_m_TC__mapOperationCallExp__Operation_qvtr_qvtrExpres_p2(trace_52); + } + for (@NonNull TC_mapOperatorCallExp trace_53 : jm_TC__mapOperatorCallExp_1_1.typedIterable(TC_mapOperatorCallExp.class)) { + MAP_m_TC__mapOperatorCallExp_atl_atlModule_status_p1(jm_TC__mapOperatorCallExp_2, trace_53); + } + for (@NonNull TC_mapOperatorCallExp trace_54 : jm_TC__mapOperatorCallExp_2.typedIterable(TC_mapOperatorCallExp.class)) { + MAP_m_TC__mapOperatorCallExp_qvtr_qvtrTransformation_p6(trace_54); + } + for (@NonNull TC_mapOperatorCallExp trace_55 : jm_TC__mapOperatorCallExp_2.typedIterable(TC_mapOperatorCallExp.class)) { + MAP_m_TC__mapOperatorCallExp_qvtr_qvtrExpression_p2(trace_55); + } + for (@NonNull Binding atlBinding_0 : ji_Binding.typedIterable(Binding.class)) { + MAP_m_TC__mapBinding_atl_atlBinding_atl_atlExpression_at(atlBinding_0); + } + for (@NonNull InPattern atlPattern_4 : ji_InPattern.typedIterable(InPattern.class)) { + MAP_m_TC__mapInPattern__filter_atl_atlExpression_atl_atl(atlPattern_4); + } + for (@NonNull OclExpression atlArgument_0 : ji_OclExpression.typedIterable(OclExpression.class)) { + MAP_m_TC__mapOperationCallExp__argument_atl_atlArgument_(atlArgument_0); + } + for (@NonNull TC_mapHelper_Attribute trace_56 : jm_TC__mapHelper__Attribute_2.typedIterable(TC_mapHelper_Attribute.class)) { + MAP_m_TC__mapHelper__Attribute_qvtr_qvtrExpression_p3(trace_56); + } + for (@NonNull TC_mapHelper_Operation trace_57 : jm_TC__mapHelper__Operation_2.typedIterable(TC_mapHelper_Operation.class)) { + MAP_m_TC__mapHelper__Operation_qvtr_qvtrExpression_p3(trace_57); + } + for (@NonNull TC_mapIfExp trace_58 : jm_TC__mapIfExp_2.typedIterable(TC_mapIfExp.class)) { + MAP_m_TC__mapIfExp_qvtr_qvtrCondition_p3(trace_58); + } + for (@NonNull TC_mapNavigationOrAttributeCallExp_Helper trace_59 : jm_TC__mapNavigationOrAttributeCallExp__Helper_2.typedIterable(TC_mapNavigationOrAttributeCallExp_Helper.class)) { + MAP_m_TC__mapNavigationOrAttributeCallExp__Helper_qvtr_q_p3(trace_59); + } + for (@NonNull TC_mapNavigationOrAttributeCallExp_Property trace_60 : jm_TC__mapNavigationOrAttributeCallExp__Property_2.typedIterable(TC_mapNavigationOrAttributeCallExp_Property.class)) { + MAP_m_TC__mapNavigationOrAttributeCallExp__Property_qvtr_p3(trace_60); + } + for (@NonNull TC_mapOperationCallExp_Helper trace_61 : jm_TC__mapOperationCallExp__Helper_2.typedIterable(TC_mapOperationCallExp_Helper.class)) { + MAP_m_TC__mapOperationCallExp__Helper_qvtr_qvtrSourceArg_p3(trace_61); + } + for (@NonNull TC_mapOperationCallExp_Operation trace_62 : jm_TC__mapOperationCallExp__Operation_2.typedIterable(TC_mapOperationCallExp_Operation.class)) { + MAP_m_TC__mapOperationCallExp__Operation_qvtr_qvtrSource_p3(trace_62); + } + for (@NonNull TC_mapOperatorCallExp trace_63 : jm_TC__mapOperatorCallExp_2.typedIterable(TC_mapOperatorCallExp.class)) { + MAP_m_TC__mapOperatorCallExp_qvtr_qvtrSource_p3(trace_63); + } + for (@NonNull TC_mapIfExp trace_64 : jm_TC__mapIfExp_2.typedIterable(TC_mapIfExp.class)) { + MAP_m_TC__mapIfExp_qvtr_qvtrElse_p4(trace_64); + } + for (@NonNull TC_mapNavigationOrAttributeCallExp_Helper trace_65 : jm_TC__mapNavigationOrAttributeCallExp__Helper_2.typedIterable(TC_mapNavigationOrAttributeCallExp_Helper.class)) { + MAP_m_TC__mapNavigationOrAttributeCallExp__Helper__CallE_p4(trace_65); + } + for (@NonNull TC_mapOperationCallExp_Helper trace_66 : jm_TC__mapOperationCallExp__Helper_2.typedIterable(TC_mapOperationCallExp_Helper.class)) { + MAP_m_TC__mapOperationCallExp__Helper__CallExp_ownedSour_p4(trace_66); + } + for (@NonNull TC_mapIfExp trace_67 : jm_TC__mapIfExp_2.typedIterable(TC_mapIfExp.class)) { + MAP_m_TC__mapIfExp_qvtr_qvtrThen_p5(trace_67); + } + invocationManager.flush(); + CTOR_m_TC__mapNavigationOrAttributeCallExp__Property__typ_p5.addConsumedConnection(jm_TC__mapNavigationOrAttributeCallExp__Property_2); + invocationManager.flush(); + invocationManager.flush(); + CTOR_m_TC__mapOperationCallExp__Operation__type_p5.addConsumedConnection(jm_TC__mapOperationCallExp__Operation_2); + invocationManager.flush(); + invocationManager.flush(); + CTOR_m_TC__mapOperatorCallExp__type_p5.addConsumedConnection(jm_TC__mapOperatorCallExp_2); + invocationManager.flush(); + invocationManager.flush(); + CTOR_m_TC__mapIfExp__type_p6.addConsumedConnection(jm_TC__mapIfExp_2); + invocationManager.flush(); + for (@NonNull TC_mapNavigationOrAttributeCallExp_Property trace_72 : jm_TC__mapNavigationOrAttributeCallExp__Property_2.typedIterable(TC_mapNavigationOrAttributeCallExp_Property.class)) { + MAP_m_TC__mapNavigationOrAttributeCallExp__Property_qvtr_p4(trace_72); + } + for (@NonNull TC_mapOperationCallExp_Operation trace_73 : jm_TC__mapOperationCallExp__Operation_2.typedIterable(TC_mapOperationCallExp_Operation.class)) { + MAP_m_TC__mapOperationCallExp__Operation_qvtr_qvtrOperat_p4(trace_73); + } + for (@NonNull TC_mapOperatorCallExp trace_74 : jm_TC__mapOperatorCallExp_2.typedIterable(TC_mapOperatorCallExp.class)) { + MAP_m_TC__mapOperatorCallExp_qvtr_qvtrOperation_p4(trace_74); + } + final /*@Thrown*/ @Nullable Boolean __root__ = ValueUtil.TRUE_VALUE; + return __root__; + } + + @Override + public boolean isEqual(@NonNull IdResolver idResolver, @NonNull Object @NonNull [] thoseValues) { + return idResolver.oclEquals(ji_Binding, thoseValues[0]) + && idResolver.oclEquals(ji_BooleanExp, thoseValues[1]) + && idResolver.oclEquals(ji_Helper, thoseValues[2]) + && idResolver.oclEquals(ji_InPattern, thoseValues[3]) + && idResolver.oclEquals(ji_IntegerExp, thoseValues[4]) + && idResolver.oclEquals(ji_LocatedElement, thoseValues[5]) + && idResolver.oclEquals(ji_MatchedRule, thoseValues[6]) + && idResolver.oclEquals(ji_Module, thoseValues[7]) + && idResolver.oclEquals(ji_NavigationOrAttributeCallExp, thoseValues[8]) + && idResolver.oclEquals(ji_OclContextDefinition, thoseValues[9]) + && idResolver.oclEquals(ji_OclExpression, thoseValues[10]) + && idResolver.oclEquals(ji_OclModel, thoseValues[11]) + && idResolver.oclEquals(ji_OperationCallExp, thoseValues[12]) + && idResolver.oclEquals(ji_OperatorCallExp, thoseValues[13]) + && idResolver.oclEquals(ji_OutPattern, thoseValues[14]) + && idResolver.oclEquals(ji_SimpleInPatternElement, thoseValues[15]) + && idResolver.oclEquals(ji_SimpleOutPatternElement, thoseValues[16]) + && idResolver.oclEquals(ji_StringExp, thoseValues[17]) + && idResolver.oclEquals(ji_VariableExp, thoseValues[18]); + } + } + + /** + * + * map m_TC__mapBooleanExp_atl_atlExpression_primitive_symb in ATL2QVTr { + * guard:atl atlExpression : OCL::BooleanExp[1]; + * var symbol : Boolean[1] := atlExpression.booleanSymbol; + * var Boolean1 : Class[1] := PrimitiveTypes::Boolean; + * new:qvtr qvtrExpression : BooleanLiteralExp[1]; + * new:middle trace : trace_ATL2QVTr::TC_mapBooleanExp[1]; + * set qvtrExpression.booleanSymbol := symbol; + * set trace.primitive_symbol := symbol; + * set trace.atl_atlExpression := atlExpression; + * set trace.qvtr_qvtrExpression := qvtrExpression; + * notify set qvtrExpression.type := Boolean1; + * + */ + protected boolean MAP_m_TC__mapBooleanExp_atl_atlExpression_primitive_symb(final /*@NonInvalid*/ @NonNull BooleanExp atlExpression) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_TC__mapBooleanExp_atl_atlExpression_primitive_symb" + ", " + atlExpression); + } + final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver(); + final /*@NonInvalid*/ boolean booleanSymbol = atlExpression.isBooleanSymbol(); + final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_Boolean_0 = idResolver.getClass(TypeId.BOOLEAN, null); + // creations + final @NonNull BooleanLiteralExp qvtrExpression = PivotFactory.eINSTANCE.createBooleanLiteralExp(); + models[2/*qvtr*/].add(qvtrExpression, false); + final @SuppressWarnings("null")@NonNull TC_mapBooleanExp trace_37 = trace_ATL2QVTrFactory.eINSTANCE.createTC_mapBooleanExp(); + models[0/*middle*/].add(trace_37, false); + // mapping statements + qvtrExpression.setBooleanSymbol(booleanSymbol); + trace_37.setPrimitive_symbol(booleanSymbol); + OPPOSITE_OF_TI_mapOclExpression_atl_atlExpression.put(atlExpression, trace_37); + trace_37.setAtl_atlExpression(atlExpression); + trace_37.setQvtr_qvtrExpression(qvtrExpression); + qvtrExpression.setType(TYP_Boolean_0); + objectManager.assigned(qvtrExpression, PivotPackage.Literals.TYPED_ELEMENT__TYPE, TYP_Boolean_0); + final /*@Thrown*/ @Nullable Boolean m_TC__mapBooleanExp_atl_atlExpression_primitive_symb = ValueUtil.TRUE_VALUE; + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((m_TC__mapBooleanExp_atl_atlExpression_primitive_symb ? "done " : "fail ") + "MAP_m_TC__mapBooleanExp_atl_atlExpression_primitive_symb"); + } + return m_TC__mapBooleanExp_atl_atlExpression_primitive_symb; + } + + /** + * map m_Helper in ATL2QVTr { + * guard:atl atlHelper : ATL::Helper[1]; + * check false; + * + */ + protected boolean MAP_m_Helper(final /*@NonInvalid*/ @NonNull Helper atlHelper) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_Helper" + ", " + atlHelper); + } + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((ValueUtil.FALSE_VALUE ? "done " : "fail ") + "MAP_m_Helper"); + } + return ValueUtil.FALSE_VALUE; + } + + /** + * + * map m_TC__mapIntegerExp_atl_atlExpression_primitive_symb in ATL2QVTr { + * guard:atl atlExpression : OCL::IntegerExp[1]; + * var symbol : Integer[1] := atlExpression.integerSymbol; + * var Integer1 : Class[1] := PrimitiveTypes::Integer; + * new:qvtr qvtrExpression : IntegerLiteralExp[1]; + * new:middle trace : trace_ATL2QVTr::TC_mapIntegerExp[1]; + * set qvtrExpression.integerSymbol := symbol; + * set trace.primitive_symbol := symbol; + * notify set qvtrExpression.type := Integer1; + * set trace.atl_atlExpression := atlExpression; + * set trace.qvtr_qvtrExpression := qvtrExpression; + * + */ + protected boolean MAP_m_TC__mapIntegerExp_atl_atlExpression_primitive_symb(final /*@NonInvalid*/ @NonNull IntegerExp atlExpression_0) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_TC__mapIntegerExp_atl_atlExpression_primitive_symb" + ", " + atlExpression_0); + } + final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver(); + final /*@NonInvalid*/ int integerSymbol = atlExpression_0.getIntegerSymbol(); + final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_Integer_0 = idResolver.getClass(TypeId.INTEGER, null); + // creations + final @NonNull IntegerLiteralExp qvtrExpression = PivotFactory.eINSTANCE.createIntegerLiteralExp(); + models[2/*qvtr*/].add(qvtrExpression, false); + final @SuppressWarnings("null")@NonNull TC_mapIntegerExp trace_37 = trace_ATL2QVTrFactory.eINSTANCE.createTC_mapIntegerExp(); + models[0/*middle*/].add(trace_37, false); + // mapping statements + qvtrExpression.setIntegerSymbol(integerSymbol); + trace_37.setPrimitive_symbol(ValueUtil.bigIntegerValueOf(integerSymbol)); + qvtrExpression.setType(TYP_Integer_0); + objectManager.assigned(qvtrExpression, PivotPackage.Literals.TYPED_ELEMENT__TYPE, TYP_Integer_0); + OPPOSITE_OF_TI_mapOclExpression_atl_atlExpression.put(atlExpression_0, trace_37); + trace_37.setAtl_atlExpression(atlExpression_0); + trace_37.setQvtr_qvtrExpression(qvtrExpression); + final /*@Thrown*/ @Nullable Boolean m_TC__mapIntegerExp_atl_atlExpression_primitive_symb = ValueUtil.TRUE_VALUE; + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((m_TC__mapIntegerExp_atl_atlExpression_primitive_symb ? "done " : "fail ") + "MAP_m_TC__mapIntegerExp_atl_atlExpression_primitive_symb"); + } + return m_TC__mapIntegerExp_atl_atlExpression_primitive_symb; + } + + /** + * + * map m_TC__mapModule_atl_atlModule_primitive_txName_qvtr_ in ATL2QVTr { + * guard:atl atlModule : ATL::Module[1]; + * var txName : String[1] := atlModule.name; + * contained new:qvtr _3 : Package[1]; + * new:qvtr _4 : qvtrelation::RelationModel[1]; + * contained new:qvtr _5 : ParameterVariable[1]; + * contained new:qvtr qvtrTransformation : qvtrelation::RelationalTransformation[1]; + * new:middle trace : trace_ATL2QVTr::TC_mapModule[1]; + * set _3.name := ''; + * set _5.isRequired := true; + * set _5.name := 'this'; + * set qvtrTransformation.name := txName; + * set trace.primitive_txName := txName; + * set _4.ownedPackages := _3; + * set trace.atl_atlModule := atlModule; + * set trace.qvtr__3 := _3; + * set trace.qvtr__4 := _4; + * set trace.qvtr__5 := _5; + * set trace.qvtr_qvtrTransformation := qvtrTransformation; + * set qvtrTransformation.ownedContext := _5; + * set qvtrTransformation.owningPackage := _3; + * set _5.type := qvtrTransformation; + * + */ + protected boolean MAP_m_TC__mapModule_atl_atlModule_primitive_txName_qvtr_(final /*@NonInvalid*/ @NonNull Module atlModule) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_TC__mapModule_atl_atlModule_primitive_txName_qvtr_" + ", " + atlModule); + } + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull String name_2 = atlModule.getName(); + // creations + final @SuppressWarnings("null")org.eclipse.ocl.pivot.@NonNull Package _3 = PivotFactory.eINSTANCE.createPackage(); + models[2/*qvtr*/].add(_3, true); + final @NonNull RelationModel _4 = QVTrelationFactory.eINSTANCE.createRelationModel(); + models[2/*qvtr*/].add(_4, false); + final @NonNull ParameterVariable _5 = PivotFactory.eINSTANCE.createParameterVariable(); + models[2/*qvtr*/].add(_5, true); + final @NonNull RelationalTransformation qvtrTransformation = QVTrelationFactory.eINSTANCE.createRelationalTransformation(); + models[2/*qvtr*/].add(qvtrTransformation, true); + final @SuppressWarnings("null")@NonNull TC_mapModule trace_37 = trace_ATL2QVTrFactory.eINSTANCE.createTC_mapModule(); + models[0/*middle*/].add(trace_37, false); + // mapping statements + _3.setName(STR_); + _5.setIsRequired(ValueUtil.TRUE_VALUE); + _5.setName(STR_this); + qvtrTransformation.setName(name_2); + trace_37.setPrimitive_txName(name_2); + _4.getOwnedPackages().add(_3); + OPPOSITE_OF_TC_mapModule_atl_atlModule.put(atlModule, trace_37); + trace_37.setAtl_atlModule(atlModule); + trace_37.setQvtr__3(_3); + trace_37.setQvtr__4(_4); + trace_37.setQvtr__5(_5); + trace_37.setQvtr_qvtrTransformation(qvtrTransformation); + qvtrTransformation.setOwnedContext(_5); + qvtrTransformation.setOwningPackage(_3); + _5.setType(qvtrTransformation); + final /*@Thrown*/ @Nullable Boolean m_TC__mapModule_atl_atlModule_primitive_txName_qvtr_ = ValueUtil.TRUE_VALUE; + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((m_TC__mapModule_atl_atlModule_primitive_txName_qvtr_ ? "done " : "fail ") + "MAP_m_TC__mapModule_atl_atlModule_primitive_txName_qvtr_"); + } + return m_TC__mapModule_atl_atlModule_primitive_txName_qvtr_; + } + + /** + * + * map m_TC__mapMatchedRule_atl_atlModule_atl_matchedRule_p in ATL2QVTr { + * guard:atl matchedRule : ATL::MatchedRule[1]; + * var isAbstract : Boolean[1] := matchedRule.isAbstract; + * var atlModule : ATL::Module[1] := matchedRule.module; + * var ruleName : String[1] := matchedRule.name; + * var when_TC_mapModule : trace_ATL2QVTr::TC_mapModule[1] := atlModule.TC_mapModule; + * var qvtrTransformation : qvtrelation::RelationalTransformation[1] := when_TC_mapModule.qvtr_qvtrTransformation; + * contained new:qvtr qvtrRelation : qvtrelation::Relation[1]; + * new:middle trace : trace_ATL2QVTr::TC_mapMatchedRule[1]; + * set qvtrRelation.isAbstract := isAbstract; + * set qvtrRelation.isTopLevel := true; + * set qvtrRelation.name := ruleName; + * set trace.primitive_ruleName := ruleName; + * set qvtrRelation.transformation := qvtrTransformation; + * set trace.atl_atlModule := atlModule; + * set trace.atl_matchedRule := matchedRule; + * set trace.qvtr_qvtrRelation := qvtrRelation; + * set trace.qvtr_qvtrTransformation := qvtrTransformation; + * + */ + protected boolean MAP_m_TC__mapMatchedRule_atl_atlModule_atl_matchedRule_p(final /*@NonInvalid*/ @NonNull MatchedRule matchedRule) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_TC__mapMatchedRule_atl_atlModule_atl_matchedRule_p" + ", " + matchedRule); + } + final /*@NonInvalid*/ boolean isAbstract = matchedRule.isIsAbstract(); + final /*@NonInvalid*/ @Nullable Module module = matchedRule.getModule(); + final /*@NonInvalid*/ boolean symbol_0 = module != null; + /*@Thrown*/ @Nullable Boolean raw_atlModule; + if (symbol_0) { + if (module == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull String name_2 = matchedRule.getName(); + final /*@Thrown*/ @Nullable TC_mapModule TC_mapModule = OPPOSITE_OF_TC_mapModule_atl_atlModule.get(module); + final /*@Thrown*/ boolean symbol_1 = TC_mapModule != null; + /*@Thrown*/ @Nullable Boolean raw_when_TC_mapModule; + if (symbol_1) { + if (TC_mapModule == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + @SuppressWarnings("null") + final /*@Thrown*/ @NonNull RelationalTransformation qvtr_qvtrTransformation = TC_mapModule.getQvtr_qvtrTransformation(); + // creations + final @NonNull Relation qvtrRelation = QVTrelationFactory.eINSTANCE.createRelation(); + models[2/*qvtr*/].add(qvtrRelation, true); + final @SuppressWarnings("null")@NonNull TC_mapMatchedRule trace_37 = trace_ATL2QVTrFactory.eINSTANCE.createTC_mapMatchedRule(); + models[0/*middle*/].add(trace_37, false); + // mapping statements + qvtrRelation.setIsAbstract(isAbstract); + qvtrRelation.setIsTopLevel(ValueUtil.TRUE_VALUE); + qvtrRelation.setName(name_2); + trace_37.setPrimitive_ruleName(name_2); + qvtrRelation.setTransformation(qvtr_qvtrTransformation); + trace_37.setAtl_atlModule(module); + OPPOSITE_OF_TC_mapMatchedRule_atl_matchedRule.put(matchedRule, trace_37); + trace_37.setAtl_matchedRule(matchedRule); + trace_37.setQvtr_qvtrRelation(qvtrRelation); + trace_37.setQvtr_qvtrTransformation(qvtr_qvtrTransformation); + final /*@Thrown*/ @Nullable Boolean m_TC__mapMatchedRule_atl_atlModule_atl_matchedRule_p = ValueUtil.TRUE_VALUE; + raw_when_TC_mapModule = m_TC__mapMatchedRule_atl_atlModule_atl_matchedRule_p; + } + else { + raw_when_TC_mapModule = ValueUtil.FALSE_VALUE; + } + raw_atlModule = raw_when_TC_mapModule; + } + else { + raw_atlModule = ValueUtil.FALSE_VALUE; + } + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((raw_atlModule ? "done " : "fail ") + "MAP_m_TC__mapMatchedRule_atl_atlModule_atl_matchedRule_p"); + } + return raw_atlModule; + } + + /** + * + * map m_TC__mapMatchedRule__super_atl_atlChildRule_atl_atl in ATL2QVTr { + * guard:atl atlChildRule : ATL::MatchedRule[1]; + * var atlSuperRule : ATL::MatchedRule[1] := atlChildRule.superRule; + * var when_TC_mapMatchedRule_0 : trace_ATL2QVTr::TC_mapMatchedRule[1] := atlChildRule.TC_mapMatchedRule; + * var when_TC_mapMatchedRule : trace_ATL2QVTr::TC_mapMatchedRule[1] := atlSuperRule.TC_mapMatchedRule; + * var qvtrOverridesRelation : qvtrelation::Relation[1] := when_TC_mapMatchedRule_0.qvtr_qvtrRelation; + * var qvtrOverriddenRelation : qvtrelation::Relation[1] := when_TC_mapMatchedRule.qvtr_qvtrRelation; + * new:middle trace : trace_ATL2QVTr::TC_mapMatchedRule_super[1]; + * set qvtrOverridesRelation.overrides := qvtrOverriddenRelation; + * set trace.atl_atlChildRule := atlChildRule; + * set trace.atl_atlSuperRule := atlSuperRule; + * set trace.qvtr_qvtrOverriddenRelation := qvtrOverriddenRelation; + * set trace.qvtr_qvtrOverridesRelation := qvtrOverridesRelation; + * + */ + protected boolean MAP_m_TC__mapMatchedRule__super_atl_atlChildRule_atl_atl(final /*@NonInvalid*/ @NonNull MatchedRule atlChildRule) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_TC__mapMatchedRule__super_atl_atlChildRule_atl_atl" + ", " + atlChildRule); + } + final /*@NonInvalid*/ @Nullable MatchedRule superRule = atlChildRule.getSuperRule(); + final /*@NonInvalid*/ boolean symbol_0 = superRule != null; + /*@Thrown*/ @Nullable Boolean raw_atlSuperRule; + if (symbol_0) { + if (superRule == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + final /*@NonInvalid*/ @Nullable TC_mapMatchedRule TC_mapMatchedRule = OPPOSITE_OF_TC_mapMatchedRule_atl_matchedRule.get(atlChildRule); + final /*@NonInvalid*/ boolean symbol_1 = TC_mapMatchedRule != null; + /*@Thrown*/ @Nullable Boolean raw_when_TC_mapMatchedRule_0; + if (symbol_1) { + if (TC_mapMatchedRule == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + final /*@Thrown*/ @Nullable TC_mapMatchedRule TC_mapMatchedRule_0 = OPPOSITE_OF_TC_mapMatchedRule_atl_matchedRule.get(superRule); + final /*@Thrown*/ boolean symbol_2 = TC_mapMatchedRule_0 != null; + /*@Thrown*/ @Nullable Boolean raw_when_TC_mapMatchedRule; + if (symbol_2) { + if (TC_mapMatchedRule_0 == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + @SuppressWarnings("null") + final /*@Thrown*/ @NonNull Relation qvtr_qvtrRelation = TC_mapMatchedRule.getQvtr_qvtrRelation(); + @SuppressWarnings("null") + final /*@Thrown*/ @NonNull Relation qvtr_qvtrRelation_0 = TC_mapMatchedRule_0.getQvtr_qvtrRelation(); + // creations + final @SuppressWarnings("null")@NonNull TC_mapMatchedRule_super trace_37 = trace_ATL2QVTrFactory.eINSTANCE.createTC_mapMatchedRule_super(); + models[0/*middle*/].add(trace_37, false); + // mapping statements + qvtr_qvtrRelation.getOverrides().add(qvtr_qvtrRelation_0); + trace_37.setAtl_atlChildRule(atlChildRule); + trace_37.setAtl_atlSuperRule(superRule); + trace_37.setQvtr_qvtrOverriddenRelation(qvtr_qvtrRelation_0); + trace_37.setQvtr_qvtrOverridesRelation(qvtr_qvtrRelation); + final /*@Thrown*/ @Nullable Boolean m_TC__mapMatchedRule__super_atl_atlChildRule_atl_atl = ValueUtil.TRUE_VALUE; + raw_when_TC_mapMatchedRule = m_TC__mapMatchedRule__super_atl_atlChildRule_atl_atl; + } + else { + raw_when_TC_mapMatchedRule = ValueUtil.FALSE_VALUE; + } + raw_when_TC_mapMatchedRule_0 = raw_when_TC_mapMatchedRule; + } + else { + raw_when_TC_mapMatchedRule_0 = ValueUtil.FALSE_VALUE; + } + raw_atlSuperRule = raw_when_TC_mapMatchedRule_0; + } + else { + raw_atlSuperRule = ValueUtil.FALSE_VALUE; + } + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((raw_atlSuperRule ? "done " : "fail ") + "MAP_m_TC__mapMatchedRule__super_atl_atlChildRule_atl_atl"); + } + return raw_atlSuperRule; + } + + /** + * + * map m_NavigationOrAttributeCallExp in ATL2QVTr { + * guard:atl atlExpression : OCL::NavigationOrAttributeCallExp[1]; + * check false; + * + */ + protected boolean MAP_m_NavigationOrAttributeCallExp(final /*@NonInvalid*/ @NonNull NavigationOrAttributeCallExp atlExpression_1) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_NavigationOrAttributeCallExp" + ", " + atlExpression_1); + } + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((ValueUtil.FALSE_VALUE ? "done " : "fail ") + "MAP_m_NavigationOrAttributeCallExp"); + } + return ValueUtil.FALSE_VALUE; + } + + /** + * + * map m_OclExpression in ATL2QVTr { + * guard:atl atlExpression : OCL::OclExpression[1]; + * check false; + * + */ + protected boolean MAP_m_OclExpression(final /*@NonInvalid*/ @NonNull OclExpression atlExpression_2) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_OclExpression" + ", " + atlExpression_2); + } + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((ValueUtil.FALSE_VALUE ? "done " : "fail ") + "MAP_m_OclExpression"); + } + return ValueUtil.FALSE_VALUE; + } + + /** + * + * map m_TC__mapOclMetamodel_atl_oclMetamodel_primitive_tmN in ATL2QVTr { + * + * guard:atl oclMetamodel : OCL::OclModel[1]; + * var model : Set(OCL::OclModel) := oclMetamodel.model; + * var notEmpty : Boolean[1] := model->notEmpty(); + * check notEmpty; + * var tmName : String[1] := oclMetamodel.name; + * new:qvtr qvtrTypedModel : qvtbase::TypedModel[1]; + * new:middle trace : trace_ATL2QVTr::TC_mapOclMetamodel[1]; + * set qvtrTypedModel.name := tmName; + * set trace.primitive_tmName := tmName; + * set trace.atl_oclMetamodel := oclMetamodel; + * set trace.qvtr_qvtrTypedModel := qvtrTypedModel; + * + */ + protected boolean MAP_m_TC__mapOclMetamodel_atl_oclMetamodel_primitive_tmN(final /*@NonInvalid*/ @NonNull OclModel oclMetamodel) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_TC__mapOclMetamodel_atl_oclMetamodel_primitive_tmN" + ", " + oclMetamodel); + } + final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver(); + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull List<OclModel> model = oclMetamodel.getModel(); + final /*@NonInvalid*/ @NonNull SetValue BOXED_model = idResolver.createSetOfAll(SET_CLSSid_OclModel, model); + final /*@NonInvalid*/ boolean notEmpty = CollectionNotEmptyOperation.INSTANCE.evaluate(BOXED_model).booleanValue(); + /*@Thrown*/ @Nullable Boolean symbol_5; + if (notEmpty) { + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull String name_2 = oclMetamodel.getName(); + // creations + final @NonNull TypedModel qvtrTypedModel = QVTbaseFactory.eINSTANCE.createTypedModel(); + models[2/*qvtr*/].add(qvtrTypedModel, false); + final @SuppressWarnings("null")@NonNull TC_mapOclMetamodel trace_37 = trace_ATL2QVTrFactory.eINSTANCE.createTC_mapOclMetamodel(); + models[0/*middle*/].add(trace_37, false); + // mapping statements + qvtrTypedModel.setName(name_2); + trace_37.setPrimitive_tmName(name_2); + OPPOSITE_OF_TC_mapOclMetamodel_atl_oclMetamodel.put(oclMetamodel, trace_37); + trace_37.setAtl_oclMetamodel(oclMetamodel); + trace_37.setQvtr_qvtrTypedModel(qvtrTypedModel); + final /*@Thrown*/ @Nullable Boolean m_TC__mapOclMetamodel_atl_oclMetamodel_primitive_tmN = ValueUtil.TRUE_VALUE; + symbol_5 = m_TC__mapOclMetamodel_atl_oclMetamodel_primitive_tmN; + } + else { + symbol_5 = ValueUtil.FALSE_VALUE; + } + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((symbol_5 ? "done " : "fail ") + "MAP_m_TC__mapOclMetamodel_atl_oclMetamodel_primitive_tmN"); + } + return symbol_5; + } + + /** + * + * map m_TC__mapInPattern_atl_atlModel_atl_atlPattern_atl_a in ATL2QVTr { + * + * guard:atl atlPattern : ATL::InPattern[1]; + * var elements : Set(ATL::InPatternElement) := atlPattern.elements; + * var atlRule : ATL::MatchedRule[1] := atlPattern.rule; + * var when_TC_mapMatchedRule : trace_ATL2QVTr::TC_mapMatchedRule[1] := atlRule.TC_mapMatchedRule; + * var qvtrRelation : qvtrelation::Relation[1] := when_TC_mapMatchedRule.qvtr_qvtrRelation; + * var selectByKind : Bag(OCL::OclModelElement) := elements->collect(_'1_' | _'1_'.type) + * ->selectByKind(OCL::OclModelElement) + * ; + * var _'\u00ABcollect\u00BB' : Bag(OCL::OclType[*|?]) := elements->collect(_'1_' | _'1_'.type) + * ; + * var _'\u00ABany\u00BB' : OCL::OclModelElement[?] := selectByKind->any(_'1__0' | true); + * var atlModel : OCL::OclModel[1] := _'\u00ABany\u00BB'?.model; + * var when_TC_mapOclMetamodel : trace_ATL2QVTr::TC_mapOclMetamodel[1] := atlModel.TC_mapOclMetamodel; + * var qvtrTypedModel : qvtbase::TypedModel[1] := when_TC_mapOclMetamodel.qvtr_qvtrTypedModel; + * contained new:qvtr qvtrDomain : qvtrelation::RelationDomain[1]; + * new:middle trace : trace_ATL2QVTr::TC_mapInPattern[1]; + * set qvtrDomain.isCheckable := true; + * set qvtrDomain.isEnforceable := false; + * set qvtrDomain.rule := qvtrRelation; + * set qvtrDomain.typedModel := qvtrTypedModel; + * set trace.atl_atlModel := atlModel; + * set trace.atl_atlPattern := atlPattern; + * set trace.atl_atlRule := atlRule; + * set trace.qvtr_qvtrDomain := qvtrDomain; + * set trace.qvtr_qvtrRelation := qvtrRelation; + * set trace.qvtr_qvtrTypedModel := qvtrTypedModel; + * + */ + protected boolean MAP_m_TC__mapInPattern_atl_atlModel_atl_atlPattern_atl_a(final /*@NonInvalid*/ @NonNull InPattern atlPattern) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_TC__mapInPattern_atl_atlModel_atl_atlPattern_atl_a" + ", " + atlPattern); + } + final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver(); + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull List<InPatternElement> elements = atlPattern.getElements(); + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull MatchedRule rule = atlPattern.getRule(); + final /*@NonInvalid*/ @Nullable TC_mapMatchedRule TC_mapMatchedRule = OPPOSITE_OF_TC_mapMatchedRule_atl_matchedRule.get(rule); + final /*@NonInvalid*/ boolean symbol_0 = TC_mapMatchedRule != null; + /*@Thrown*/ @Nullable Boolean raw_when_TC_mapMatchedRule; + if (symbol_0) { + if (TC_mapMatchedRule == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + @SuppressWarnings("null") + final /*@Thrown*/ @NonNull Relation qvtr_qvtrRelation = TC_mapMatchedRule.getQvtr_qvtrRelation(); + final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_OCL_c_c_OclModelElement_0 = idResolver.getClass(CLSSid_OclModelElement, null); + final /*@NonInvalid*/ @NonNull SetValue BOXED_elements_0 = idResolver.createSetOfAll(SET_CLSSid_InPatternElement, elements); + /*@Thrown*/ BagValue.@NonNull Accumulator accumulator = ValueUtil.createBagAccumulatorValue(BAG_CLSSid_OclType); + @NonNull Iterator<Object> ITERATOR__1_0 = BOXED_elements_0.iterator(); + /*@Thrown*/ @NonNull BagValue collect_0; + while (true) { + if (!ITERATOR__1_0.hasNext()) { + collect_0 = accumulator; + break; + } + @SuppressWarnings("null") + /*@NonInvalid*/ @NonNull InPatternElement _1_0 = (InPatternElement)ITERATOR__1_0.next(); + /** + * _'1_'.type + */ + final /*@NonInvalid*/ @Nullable OclType type_3 = _1_0.getType(); + // + accumulator.add(type_3); + } + final /*@Thrown*/ @NonNull BagValue selectByKind = (BagValue)CollectionSelectByKindOperation.INSTANCE.evaluate(executor, collect_0, TYP_OCL_c_c_OclModelElement_0); + @NonNull Iterator<Object> ITERATOR__49___0 = selectByKind.iterator(); + /*@Thrown*/ @Nullable OclModelElement any; + while (true) { + if (!ITERATOR__49___0.hasNext()) { + throw new InvalidValueException("No matching content for 'any'"); + } + @SuppressWarnings("null") + /*@NonInvalid*/ @NonNull OclModelElement _49___0 = (OclModelElement)ITERATOR__49___0.next(); + /** + * true + */ + // + if (ValueUtil.TRUE_VALUE != ValueUtil.FALSE_VALUE) { // Carry on till something found + any = _49___0; + break; + } + } + /*@Caught*/ @Nullable Object CAUGHT_any; + try { + CAUGHT_any = any; + } + catch (Exception e) { + CAUGHT_any = ValueUtil.createInvalidValue(e); + } + final /*@NonInvalid*/ @NonNull Object model = CAUGHT_any == null; + /*@Thrown*/ @Nullable OclModel safe_model_source; + if (model == Boolean.TRUE) { + safe_model_source = null; + } + else { + assert any != null; + @SuppressWarnings("null") + final /*@Thrown*/ @NonNull OclModel model_0 = any.getModel(); + safe_model_source = model_0; + } + final /*@Thrown*/ boolean symbol_1 = safe_model_source != null; + /*@Thrown*/ @Nullable Boolean raw_atlModel; + if (symbol_1) { + if (safe_model_source == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + final /*@Thrown*/ @Nullable TC_mapOclMetamodel TC_mapOclMetamodel = OPPOSITE_OF_TC_mapOclMetamodel_atl_oclMetamodel.get(safe_model_source); + final /*@Thrown*/ boolean symbol_2 = TC_mapOclMetamodel != null; + /*@Thrown*/ @Nullable Boolean raw_when_TC_mapOclMetamodel; + if (symbol_2) { + if (TC_mapOclMetamodel == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + @SuppressWarnings("null") + final /*@Thrown*/ @NonNull TypedModel qvtr_qvtrTypedModel = TC_mapOclMetamodel.getQvtr_qvtrTypedModel(); + // creations + final @NonNull RelationDomain qvtrDomain = QVTrelationFactory.eINSTANCE.createRelationDomain(); + models[2/*qvtr*/].add(qvtrDomain, true); + final @SuppressWarnings("null")@NonNull TC_mapInPattern trace_37 = trace_ATL2QVTrFactory.eINSTANCE.createTC_mapInPattern(); + models[0/*middle*/].add(trace_37, false); + // mapping statements + qvtrDomain.setIsCheckable(ValueUtil.TRUE_VALUE); + qvtrDomain.setIsEnforceable(ValueUtil.FALSE_VALUE); + qvtrDomain.setRule(qvtr_qvtrRelation); + qvtrDomain.setTypedModel(qvtr_qvtrTypedModel); + trace_37.setAtl_atlModel(safe_model_source); + OPPOSITE_OF_TC_mapInPattern_atl_atlPattern.put(atlPattern, trace_37); + trace_37.setAtl_atlPattern(atlPattern); + trace_37.setAtl_atlRule(rule); + trace_37.setQvtr_qvtrDomain(qvtrDomain); + trace_37.setQvtr_qvtrRelation(qvtr_qvtrRelation); + trace_37.setQvtr_qvtrTypedModel(qvtr_qvtrTypedModel); + final /*@Thrown*/ @Nullable Boolean m_TC__mapInPattern_atl_atlModel_atl_atlPattern_atl_a = ValueUtil.TRUE_VALUE; + raw_when_TC_mapOclMetamodel = m_TC__mapInPattern_atl_atlModel_atl_atlPattern_atl_a; + } + else { + raw_when_TC_mapOclMetamodel = ValueUtil.FALSE_VALUE; + } + raw_atlModel = raw_when_TC_mapOclMetamodel; + } + else { + raw_atlModel = ValueUtil.FALSE_VALUE; + } + raw_when_TC_mapMatchedRule = raw_atlModel; + } + else { + raw_when_TC_mapMatchedRule = ValueUtil.FALSE_VALUE; + } + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((raw_when_TC_mapMatchedRule ? "done " : "fail ") + "MAP_m_TC__mapInPattern_atl_atlModel_atl_atlPattern_atl_a"); + } + return raw_when_TC_mapMatchedRule; + } + + /** + * + * map m_TC__mapOclModel__IN_atl_atlModule_atl_oclMetamodel in ATL2QVTr { + * + * guard:atl oclModel : OCL::OclModel[1]; + * var atlModule : ATL::Module[1] := oclModel.Module; + * var oclMetamodel : OCL::OclModel[1] := oclModel.metamodel; + * var tmName : String[1] := oclMetamodel.name; + * var when_TC_mapModule : trace_ATL2QVTr::TC_mapModule[1] := atlModule.TC_mapModule; + * var when_TC_mapOclMetamodel : trace_ATL2QVTr::TC_mapOclMetamodel[1] := oclMetamodel.TC_mapOclMetamodel; + * var qvtrTransformation : qvtrelation::RelationalTransformation[1] := when_TC_mapModule.qvtr_qvtrTransformation; + * var qvtrTypedModel : qvtbase::TypedModel[1] := when_TC_mapOclMetamodel.qvtr_qvtrTypedModel; + * var oclAsSet : Set(Package[0|1]) := this.getPackage(atlModule, tmName) + * .oclAsSet() + * ; + * var getPackage1 : Package[?] := this.getPackage(atlModule, tmName); + * new:middle trace : trace_ATL2QVTr::TC_mapOclModel_IN[1]; + * set trace.primitive_tmName := tmName; + * set qvtrTypedModel.usedPackage := oclAsSet; + * set trace.atl_atlModule := atlModule; + * set trace.atl_oclMetamodel := oclMetamodel; + * set trace.atl_oclModel := oclModel; + * set trace.qvtr_qvtrTransformation := qvtrTransformation; + * set trace.qvtr_qvtrTypedModel := qvtrTypedModel; + * set qvtrTypedModel.transformation := qvtrTransformation; + * + */ + protected boolean MAP_m_TC__mapOclModel__IN_atl_atlModule_atl_oclMetamodel(final /*@NonInvalid*/ @NonNull OclModel oclModel) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_TC__mapOclModel__IN_atl_atlModule_atl_oclMetamodel" + ", " + oclModel); + } + final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver(); + final /*@NonInvalid*/ @NonNull UnboxedCompositionProperty IMPPROPid_inModels = new UnboxedCompositionProperty(PROPid_inModels); + final /*@NonInvalid*/ @Nullable Module Module = (Module)IMPPROPid_inModels.evaluate(executor, CLSSid_Module, oclModel); + final /*@NonInvalid*/ boolean symbol_0 = Module != null; + /*@Thrown*/ @Nullable Boolean raw_atlModule; + if (symbol_0) { + if (Module == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OclModel metamodel = oclModel.getMetamodel(); + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull String name_2 = metamodel.getName(); + final /*@Thrown*/ @Nullable TC_mapModule TC_mapModule = OPPOSITE_OF_TC_mapModule_atl_atlModule.get(Module); + final /*@Thrown*/ boolean symbol_1 = TC_mapModule != null; + /*@Thrown*/ @Nullable Boolean raw_when_TC_mapModule; + if (symbol_1) { + if (TC_mapModule == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + final /*@NonInvalid*/ @Nullable TC_mapOclMetamodel TC_mapOclMetamodel = OPPOSITE_OF_TC_mapOclMetamodel_atl_oclMetamodel.get(metamodel); + final /*@NonInvalid*/ boolean symbol_2 = TC_mapOclMetamodel != null; + /*@Thrown*/ @Nullable Boolean raw_when_TC_mapOclMetamodel; + if (symbol_2) { + if (TC_mapOclMetamodel == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + @SuppressWarnings("null") + final /*@Thrown*/ @NonNull RelationalTransformation qvtr_qvtrTransformation = TC_mapModule.getQvtr_qvtrTransformation(); + @SuppressWarnings("null") + final /*@Thrown*/ @NonNull TypedModel qvtr_qvtrTypedModel = TC_mapOclMetamodel.getQvtr_qvtrTypedModel(); + final /*@Thrown*/ org.eclipse.ocl.pivot.@Nullable Package getPackage_0 = ((FUN_getPackage)FTOR_getPackage.getUniqueComputation(this, Module, name_2)).instance; + final /*@Thrown*/ @NonNull SetValue oclAsSet = OclAnyOclAsSetOperation.INSTANCE.evaluate(executor, SET_CLSSid_Package, getPackage_0); + // creations + final @SuppressWarnings("null")@NonNull TC_mapOclModel_IN trace_37 = trace_ATL2QVTrFactory.eINSTANCE.createTC_mapOclModel_IN(); + models[0/*middle*/].add(trace_37, false); + // mapping statements + trace_37.setPrimitive_tmName(name_2); + final /*@Thrown*/ @NonNull List<Package> ECORE_oclAsSet = ((IdResolver.IdResolverExtension)idResolver).ecoreValueOfAll(Package.class, oclAsSet); + qvtr_qvtrTypedModel.getUsedPackage().addAll(ECORE_oclAsSet); + trace_37.setAtl_atlModule(Module); + trace_37.setAtl_oclMetamodel(metamodel); + trace_37.setAtl_oclModel(oclModel); + trace_37.setQvtr_qvtrTransformation(qvtr_qvtrTransformation); + trace_37.setQvtr_qvtrTypedModel(qvtr_qvtrTypedModel); + qvtr_qvtrTypedModel.setTransformation(qvtr_qvtrTransformation); + final /*@Thrown*/ @Nullable Boolean m_TC__mapOclModel__IN_atl_atlModule_atl_oclMetamodel = ValueUtil.TRUE_VALUE; + raw_when_TC_mapOclMetamodel = m_TC__mapOclModel__IN_atl_atlModule_atl_oclMetamodel; + } + else { + raw_when_TC_mapOclMetamodel = ValueUtil.FALSE_VALUE; + } + raw_when_TC_mapModule = raw_when_TC_mapOclMetamodel; + } + else { + raw_when_TC_mapModule = ValueUtil.FALSE_VALUE; + } + raw_atlModule = raw_when_TC_mapModule; + } + else { + raw_atlModule = ValueUtil.FALSE_VALUE; + } + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((raw_atlModule ? "done " : "fail ") + "MAP_m_TC__mapOclModel__IN_atl_atlModule_atl_oclMetamodel"); + } + return raw_atlModule; + } + + /** + * + * map m_TC__mapOclModel__OUT_atl_atlModule_atl_oclMetamode in ATL2QVTr { + * + * guard:atl oclModel : OCL::OclModel[1]; + * var atlModule : ATL::Module[1] := oclModel.Module; + * var oclMetamodel : OCL::OclModel[1] := oclModel.metamodel; + * var tmName : String[1] := oclMetamodel.name; + * var when_TC_mapModule : trace_ATL2QVTr::TC_mapModule[1] := atlModule.TC_mapModule; + * var when_TC_mapOclMetamodel : trace_ATL2QVTr::TC_mapOclMetamodel[1] := oclMetamodel.TC_mapOclMetamodel; + * var qvtrTransformation : qvtrelation::RelationalTransformation[1] := when_TC_mapModule.qvtr_qvtrTransformation; + * var qvtrTypedModel : qvtbase::TypedModel[1] := when_TC_mapOclMetamodel.qvtr_qvtrTypedModel; + * var oclAsSet : Set(Package[0|1]) := this.getPackage(atlModule, tmName) + * .oclAsSet() + * ; + * var getPackage1 : Package[?] := this.getPackage(atlModule, tmName); + * new:middle trace : trace_ATL2QVTr::TC_mapOclModel_OUT[1]; + * set trace.primitive_tmName := tmName; + * set qvtrTypedModel.usedPackage := oclAsSet; + * set qvtrTypedModel.transformation := qvtrTransformation; + * set trace.atl_atlModule := atlModule; + * set trace.atl_oclMetamodel := oclMetamodel; + * set trace.atl_oclModel := oclModel; + * set trace.qvtr_qvtrTransformation := qvtrTransformation; + * set trace.qvtr_qvtrTypedModel := qvtrTypedModel; + * + */ + protected boolean MAP_m_TC__mapOclModel__OUT_atl_atlModule_atl_oclMetamode(final /*@NonInvalid*/ @NonNull OclModel oclModel_0) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_TC__mapOclModel__OUT_atl_atlModule_atl_oclMetamode" + ", " + oclModel_0); + } + final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver(); + final /*@NonInvalid*/ @NonNull UnboxedCompositionProperty IMPPROPid_outModels = new UnboxedCompositionProperty(PROPid_outModels); + final /*@NonInvalid*/ @Nullable Module Module = (Module)IMPPROPid_outModels.evaluate(executor, CLSSid_Module, oclModel_0); + final /*@NonInvalid*/ boolean symbol_0 = Module != null; + /*@Thrown*/ @Nullable Boolean raw_atlModule; + if (symbol_0) { + if (Module == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OclModel metamodel = oclModel_0.getMetamodel(); + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull String name_2 = metamodel.getName(); + final /*@Thrown*/ @Nullable TC_mapModule TC_mapModule = OPPOSITE_OF_TC_mapModule_atl_atlModule.get(Module); + final /*@Thrown*/ boolean symbol_1 = TC_mapModule != null; + /*@Thrown*/ @Nullable Boolean raw_when_TC_mapModule; + if (symbol_1) { + if (TC_mapModule == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + final /*@NonInvalid*/ @Nullable TC_mapOclMetamodel TC_mapOclMetamodel = OPPOSITE_OF_TC_mapOclMetamodel_atl_oclMetamodel.get(metamodel); + final /*@NonInvalid*/ boolean symbol_2 = TC_mapOclMetamodel != null; + /*@Thrown*/ @Nullable Boolean raw_when_TC_mapOclMetamodel; + if (symbol_2) { + if (TC_mapOclMetamodel == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + @SuppressWarnings("null") + final /*@Thrown*/ @NonNull RelationalTransformation qvtr_qvtrTransformation = TC_mapModule.getQvtr_qvtrTransformation(); + @SuppressWarnings("null") + final /*@Thrown*/ @NonNull TypedModel qvtr_qvtrTypedModel = TC_mapOclMetamodel.getQvtr_qvtrTypedModel(); + final /*@Thrown*/ org.eclipse.ocl.pivot.@Nullable Package getPackage_0 = ((FUN_getPackage)FTOR_getPackage.getUniqueComputation(this, Module, name_2)).instance; + final /*@Thrown*/ @NonNull SetValue oclAsSet = OclAnyOclAsSetOperation.INSTANCE.evaluate(executor, SET_CLSSid_Package, getPackage_0); + // creations + final @SuppressWarnings("null")@NonNull TC_mapOclModel_OUT trace_37 = trace_ATL2QVTrFactory.eINSTANCE.createTC_mapOclModel_OUT(); + models[0/*middle*/].add(trace_37, false); + // mapping statements + trace_37.setPrimitive_tmName(name_2); + final /*@Thrown*/ @NonNull List<Package> ECORE_oclAsSet = ((IdResolver.IdResolverExtension)idResolver).ecoreValueOfAll(Package.class, oclAsSet); + qvtr_qvtrTypedModel.getUsedPackage().addAll(ECORE_oclAsSet); + qvtr_qvtrTypedModel.setTransformation(qvtr_qvtrTransformation); + trace_37.setAtl_atlModule(Module); + trace_37.setAtl_oclMetamodel(metamodel); + trace_37.setAtl_oclModel(oclModel_0); + trace_37.setQvtr_qvtrTransformation(qvtr_qvtrTransformation); + trace_37.setQvtr_qvtrTypedModel(qvtr_qvtrTypedModel); + final /*@Thrown*/ @Nullable Boolean m_TC__mapOclModel__OUT_atl_atlModule_atl_oclMetamode = ValueUtil.TRUE_VALUE; + raw_when_TC_mapOclMetamodel = m_TC__mapOclModel__OUT_atl_atlModule_atl_oclMetamode; + } + else { + raw_when_TC_mapOclMetamodel = ValueUtil.FALSE_VALUE; + } + raw_when_TC_mapModule = raw_when_TC_mapOclMetamodel; + } + else { + raw_when_TC_mapModule = ValueUtil.FALSE_VALUE; + } + raw_atlModule = raw_when_TC_mapModule; + } + else { + raw_atlModule = ValueUtil.FALSE_VALUE; + } + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((raw_atlModule ? "done " : "fail ") + "MAP_m_TC__mapOclModel__OUT_atl_atlModule_atl_oclMetamode"); + } + return raw_atlModule; + } + + /** + * + * map m_OperationCallExp in ATL2QVTr { + * guard:atl atlExpression : OCL::OperationCallExp[1]; + * check false; + * + */ + protected boolean MAP_m_OperationCallExp(final /*@NonInvalid*/ org.eclipse.m2m.atl.common.OCL.@NonNull OperationCallExp atlExpression_3) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_OperationCallExp" + ", " + atlExpression_3); + } + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((ValueUtil.FALSE_VALUE ? "done " : "fail ") + "MAP_m_OperationCallExp"); + } + return ValueUtil.FALSE_VALUE; + } + + /** + * + * map m_TC__mapOutPattern_atl_atlPattern_atl_atlRule_qvtr_ in ATL2QVTr { + * + * guard:atl atlPattern : ATL::OutPattern[1]; + * check var atlRule : ATL::MatchedRule[1] := atlPattern.rule; + * var elements : OrderedSet(ATL::OutPatternElement) := atlPattern.elements; + * var when_TC_mapMatchedRule : trace_ATL2QVTr::TC_mapMatchedRule[1] := atlRule.TC_mapMatchedRule; + * var qvtrRelation : qvtrelation::Relation[1] := when_TC_mapMatchedRule.qvtr_qvtrRelation; + * var selectByKind : Sequence(OCL::OclModelElement) := elements->collect(_'1__0' | _'1__0'.type) + * ->selectByKind(OCL::OclModelElement) + * ; + * var _'\u00ABcollect\u00BB' : Sequence(OCL::OclType[*|?]) := elements->collect(_'1__0' | _'1__0'.type) + * ; + * var _'\u00ABany\u00BB' : OCL::OclModelElement[?] := selectByKind->any(_'1_' | true); + * var model : OCL::OclModel[1] := _'\u00ABany\u00BB'?.model; + * var when_TC_mapOclMetamodel : trace_ATL2QVTr::TC_mapOclMetamodel[1] := model.TC_mapOclMetamodel; + * var qvtrTypedModel : qvtbase::TypedModel[1] := when_TC_mapOclMetamodel.qvtr_qvtrTypedModel; + * contained new:qvtr qvtrDomain : qvtrelation::RelationDomain[1]; + * new:middle trace : trace_ATL2QVTr::TC_mapOutPattern[1]; + * set qvtrDomain.isCheckable := false; + * set qvtrDomain.isEnforceable := true; + * set qvtrDomain.rule := qvtrRelation; + * set qvtrDomain.typedModel := qvtrTypedModel; + * set trace.atl_atlPattern := atlPattern; + * set trace.atl_atlRule := atlRule; + * set trace.qvtr_qvtrDomain := qvtrDomain; + * set trace.qvtr_qvtrRelation := qvtrRelation; + * set trace.qvtr_qvtrTypedModel := qvtrTypedModel; + * + */ + protected boolean MAP_m_TC__mapOutPattern_atl_atlPattern_atl_atlRule_qvtr_(final /*@NonInvalid*/ @NonNull OutPattern atlPattern_0) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_TC__mapOutPattern_atl_atlPattern_atl_atlRule_qvtr_" + ", " + atlPattern_0); + } + final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver(); + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull Rule temp1_atlRule = atlPattern_0.getRule(); + final /*@NonInvalid*/ boolean symbol_0 = temp1_atlRule instanceof MatchedRule; + /*@Thrown*/ @Nullable Boolean symbol_15; + if (symbol_0) { + final /*@NonInvalid*/ @NonNull MatchedRule symbol_1 = (MatchedRule)temp1_atlRule; + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull List<OutPatternElement> elements = atlPattern_0.getElements(); + final /*@NonInvalid*/ @Nullable TC_mapMatchedRule TC_mapMatchedRule = OPPOSITE_OF_TC_mapMatchedRule_atl_matchedRule.get(symbol_1); + final /*@NonInvalid*/ boolean symbol_2 = TC_mapMatchedRule != null; + /*@Thrown*/ @Nullable Boolean raw_when_TC_mapMatchedRule; + if (symbol_2) { + if (TC_mapMatchedRule == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + @SuppressWarnings("null") + final /*@Thrown*/ @NonNull Relation qvtr_qvtrRelation = TC_mapMatchedRule.getQvtr_qvtrRelation(); + final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_OCL_c_c_OclModelElement_0 = idResolver.getClass(CLSSid_OclModelElement, null); + final /*@NonInvalid*/ @NonNull OrderedSetValue BOXED_elements_0 = idResolver.createOrderedSetOfAll(ORD_CLSSid_OutPatternElement, elements); + /*@Thrown*/ SequenceValue.@NonNull Accumulator accumulator = ValueUtil.createSequenceAccumulatorValue(SEQ_CLSSid_OclType); + @NonNull Iterator<Object> ITERATOR__49___0_0 = BOXED_elements_0.iterator(); + /*@Thrown*/ @NonNull SequenceValue collect_0; + while (true) { + if (!ITERATOR__49___0_0.hasNext()) { + collect_0 = accumulator; + break; + } + @SuppressWarnings("null") + /*@NonInvalid*/ @NonNull OutPatternElement _49___0_0 = (OutPatternElement)ITERATOR__49___0_0.next(); + /** + * _'1__0'.type + */ + final /*@NonInvalid*/ @Nullable OclType type_3 = _49___0_0.getType(); + // + accumulator.add(type_3); + } + final /*@Thrown*/ @NonNull SequenceValue selectByKind = (SequenceValue)CollectionSelectByKindOperation.INSTANCE.evaluate(executor, collect_0, TYP_OCL_c_c_OclModelElement_0); + @NonNull Iterator<Object> ITERATOR__1 = selectByKind.iterator(); + /*@Thrown*/ @Nullable OclModelElement any; + while (true) { + if (!ITERATOR__1.hasNext()) { + throw new InvalidValueException("No matching content for 'any'"); + } + @SuppressWarnings("null") + /*@NonInvalid*/ @NonNull OclModelElement _1 = (OclModelElement)ITERATOR__1.next(); + /** + * true + */ + // + if (ValueUtil.TRUE_VALUE != ValueUtil.FALSE_VALUE) { // Carry on till something found + any = _1; + break; + } + } + /*@Caught*/ @Nullable Object CAUGHT_any; + try { + CAUGHT_any = any; + } + catch (Exception e) { + CAUGHT_any = ValueUtil.createInvalidValue(e); + } + final /*@NonInvalid*/ @NonNull Object model = CAUGHT_any == null; + /*@Thrown*/ @Nullable OclModel safe_model_source; + if (model == Boolean.TRUE) { + safe_model_source = null; + } + else { + assert any != null; + @SuppressWarnings("null") + final /*@Thrown*/ @NonNull OclModel model_0 = any.getModel(); + safe_model_source = model_0; + } + final /*@Thrown*/ boolean symbol_3 = safe_model_source != null; + /*@Thrown*/ @Nullable Boolean raw_model; + if (symbol_3) { + if (safe_model_source == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + final /*@Thrown*/ @Nullable TC_mapOclMetamodel TC_mapOclMetamodel = OPPOSITE_OF_TC_mapOclMetamodel_atl_oclMetamodel.get(safe_model_source); + final /*@Thrown*/ boolean symbol_4 = TC_mapOclMetamodel != null; + /*@Thrown*/ @Nullable Boolean raw_when_TC_mapOclMetamodel; + if (symbol_4) { + if (TC_mapOclMetamodel == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + @SuppressWarnings("null") + final /*@Thrown*/ @NonNull TypedModel qvtr_qvtrTypedModel = TC_mapOclMetamodel.getQvtr_qvtrTypedModel(); + // creations + final @NonNull RelationDomain qvtrDomain = QVTrelationFactory.eINSTANCE.createRelationDomain(); + models[2/*qvtr*/].add(qvtrDomain, true); + final @SuppressWarnings("null")@NonNull TC_mapOutPattern trace_37 = trace_ATL2QVTrFactory.eINSTANCE.createTC_mapOutPattern(); + models[0/*middle*/].add(trace_37, false); + // mapping statements + qvtrDomain.setIsCheckable(ValueUtil.FALSE_VALUE); + qvtrDomain.setIsEnforceable(ValueUtil.TRUE_VALUE); + qvtrDomain.setRule(qvtr_qvtrRelation); + qvtrDomain.setTypedModel(qvtr_qvtrTypedModel); + OPPOSITE_OF_TC_mapOutPattern_atl_atlPattern.put(atlPattern_0, trace_37); + trace_37.setAtl_atlPattern(atlPattern_0); + trace_37.setAtl_atlRule(symbol_1); + trace_37.setQvtr_qvtrDomain(qvtrDomain); + trace_37.setQvtr_qvtrRelation(qvtr_qvtrRelation); + trace_37.setQvtr_qvtrTypedModel(qvtr_qvtrTypedModel); + final /*@Thrown*/ @Nullable Boolean m_TC__mapOutPattern_atl_atlPattern_atl_atlRule_qvtr_ = ValueUtil.TRUE_VALUE; + raw_when_TC_mapOclMetamodel = m_TC__mapOutPattern_atl_atlPattern_atl_atlRule_qvtr_; + } + else { + raw_when_TC_mapOclMetamodel = ValueUtil.FALSE_VALUE; + } + raw_model = raw_when_TC_mapOclMetamodel; + } + else { + raw_model = ValueUtil.FALSE_VALUE; + } + raw_when_TC_mapMatchedRule = raw_model; + } + else { + raw_when_TC_mapMatchedRule = ValueUtil.FALSE_VALUE; + } + symbol_15 = raw_when_TC_mapMatchedRule; + } + else { + symbol_15 = ValueUtil.FALSE_VALUE; + } + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((symbol_15 ? "done " : "fail ") + "MAP_m_TC__mapOutPattern_atl_atlPattern_atl_atlRule_qvtr_"); + } + return symbol_15; + } + + /** + * + * map m_TC__mapSimpleInPatternElement_atl_atlElement_atl_a in ATL2QVTr { + * + * guard:atl atlElement : ATL::SimpleInPatternElement[1]; + * var atlPattern : ATL::InPattern[1] := atlElement.inPattern; + * var type : OCL::OclType[?] := atlElement.type; + * var elementName : String[1] := atlElement.varName; + * var atlRule : ATL::MatchedRule[1] := atlPattern.rule; + * var when_TC_mapInPattern : trace_ATL2QVTr::TC_mapInPattern[1] := atlPattern.TC_mapInPattern; + * var when_TC_mapMatchedRule : trace_ATL2QVTr::TC_mapMatchedRule[1] := atlRule.TC_mapMatchedRule; + * var qvtrDomain : qvtrelation::RelationDomain[1] := when_TC_mapInPattern.qvtr_qvtrDomain; + * var qvtrRelation : qvtrelation::Relation[1] := when_TC_mapMatchedRule.qvtr_qvtrRelation; + * var getType1 : Class[1] := this.getType(type); + * new:qvtr qvtrPattern : qvtrelation::DomainPattern[1]; + * contained new:qvtr qvtrTemplate : qvttemplate::ObjectTemplateExp[1]; + * contained new:qvtr qvtrVariable : qvtrelation::TemplateVariable[1]; + * new:middle trace : trace_ATL2QVTr::TC_mapSimpleInPatternElement[1]; + * new:middle where_TC_mapVariable : trace_ATL2QVTr::TC_mapVariable[1]; + * set qvtrVariable.name := elementName; + * set trace.primitive_elementName := elementName; + * set qvtrDomain.pattern := qvtrPattern; + * set qvtrPattern.templateExpression := qvtrTemplate; + * set qvtrTemplate.bindsTo := qvtrVariable; + * set qvtrTemplate.referredClass := getType1; + * notify set qvtrTemplate.type := getType1; + * set where_TC_mapVariable.atl_atlVariable := atlElement; + * set where_TC_mapVariable.qvtr_qvtrVariable := qvtrVariable; + * set qvtrRelation.variable := qvtrVariable; + * set qvtrDomain.rootVariable := qvtrVariable; + * notify set qvtrVariable.type := getType1; + * set trace.atl_atlElement := atlElement; + * set trace.atl_atlPattern := atlPattern; + * set trace.atl_atlRule := atlRule; + * set trace.invocation_mapVariable := where_TC_mapVariable; + * set trace.qvtr_qvtrDomain1 := qvtrDomain; + * set trace.qvtr_qvtrPattern := qvtrPattern; + * set trace.qvtr_qvtrRelation := qvtrRelation; + * set trace.qvtr_qvtrTemplate := qvtrTemplate; + * set trace.qvtr_qvtrVariable := qvtrVariable; + * + */ + protected boolean MAP_m_TC__mapSimpleInPatternElement_atl_atlElement_atl_a(final /*@NonInvalid*/ @NonNull SimpleInPatternElement atlElement) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_TC__mapSimpleInPatternElement_atl_atlElement_atl_a" + ", " + atlElement); + } + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull InPattern inPattern = atlElement.getInPattern(); + final /*@NonInvalid*/ @Nullable OclType type_2 = atlElement.getType(); + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull String varName = atlElement.getVarName(); + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull MatchedRule rule = inPattern.getRule(); + final /*@NonInvalid*/ @Nullable TC_mapInPattern TC_mapInPattern = OPPOSITE_OF_TC_mapInPattern_atl_atlPattern.get(inPattern); + final /*@NonInvalid*/ boolean symbol_0 = TC_mapInPattern != null; + /*@Thrown*/ @Nullable Boolean raw_when_TC_mapInPattern; + if (symbol_0) { + if (TC_mapInPattern == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + final /*@NonInvalid*/ @Nullable TC_mapMatchedRule TC_mapMatchedRule = OPPOSITE_OF_TC_mapMatchedRule_atl_matchedRule.get(rule); + final /*@NonInvalid*/ boolean symbol_1 = TC_mapMatchedRule != null; + /*@Thrown*/ @Nullable Boolean raw_when_TC_mapMatchedRule; + if (symbol_1) { + if (TC_mapMatchedRule == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + @SuppressWarnings("null") + final /*@Thrown*/ @NonNull RelationDomain qvtr_qvtrDomain = TC_mapInPattern.getQvtr_qvtrDomain(); + @SuppressWarnings("null") + final /*@Thrown*/ @NonNull Relation qvtr_qvtrRelation = TC_mapMatchedRule.getQvtr_qvtrRelation(); + final /*@Thrown*/ org.eclipse.ocl.pivot.@NonNull Class getType = ((FUN_getType)FTOR_getType.getUniqueComputation(this, type_2)).instance; + // creations + final @NonNull DomainPattern qvtrPattern = QVTrelationFactory.eINSTANCE.createDomainPattern(); + models[2/*qvtr*/].add(qvtrPattern, false); + final @NonNull ObjectTemplateExp qvtrTemplate = QVTtemplateFactory.eINSTANCE.createObjectTemplateExp(); + models[2/*qvtr*/].add(qvtrTemplate, true); + final @NonNull TemplateVariable qvtrVariable = QVTrelationFactory.eINSTANCE.createTemplateVariable(); + models[2/*qvtr*/].add(qvtrVariable, true); + final @SuppressWarnings("null")@NonNull TC_mapSimpleInPatternElement trace_37 = trace_ATL2QVTrFactory.eINSTANCE.createTC_mapSimpleInPatternElement(); + models[0/*middle*/].add(trace_37, false); + final @SuppressWarnings("null")@NonNull TC_mapVariable where_TC_mapVariable = trace_ATL2QVTrFactory.eINSTANCE.createTC_mapVariable(); + models[0/*middle*/].add(where_TC_mapVariable, false); + // mapping statements + qvtrTemplate.setType(getType); + objectManager.assigned(qvtrTemplate, PivotPackage.Literals.TYPED_ELEMENT__TYPE, getType); + qvtrVariable.setName(varName); + trace_37.setPrimitive_elementName(varName); + qvtr_qvtrDomain.getPattern().add(qvtrPattern); + qvtrPattern.setTemplateExpression(qvtrTemplate); + qvtrTemplate.setBindsTo(qvtrVariable); + OPPOSITE_OF_TC_mapVariable_atl_atlVariable.put(atlElement, where_TC_mapVariable); + where_TC_mapVariable.setAtl_atlVariable(atlElement); + where_TC_mapVariable.setQvtr_qvtrVariable(qvtrVariable); + qvtr_qvtrRelation.getVariable().add(qvtrVariable); + qvtr_qvtrDomain.getRootVariable().add(qvtrVariable); + qvtrVariable.setType(getType); + objectManager.assigned(qvtrVariable, PivotPackage.Literals.TYPED_ELEMENT__TYPE, getType); + trace_37.setAtl_atlElement(atlElement); + trace_37.setAtl_atlPattern(inPattern); + trace_37.setAtl_atlRule(rule); + trace_37.setInvocation_mapVariable(where_TC_mapVariable); + trace_37.setQvtr_qvtrDomain1(qvtr_qvtrDomain); + trace_37.setQvtr_qvtrPattern(qvtrPattern); + trace_37.setQvtr_qvtrRelation(qvtr_qvtrRelation); + trace_37.setQvtr_qvtrTemplate(qvtrTemplate); + trace_37.setQvtr_qvtrVariable(qvtrVariable); + final /*@Thrown*/ @Nullable Boolean m_TC__mapSimpleInPatternElement_atl_atlElement_atl_a = ValueUtil.TRUE_VALUE; + raw_when_TC_mapMatchedRule = m_TC__mapSimpleInPatternElement_atl_atlElement_atl_a; + } + else { + raw_when_TC_mapMatchedRule = ValueUtil.FALSE_VALUE; + } + raw_when_TC_mapInPattern = raw_when_TC_mapMatchedRule; + } + else { + raw_when_TC_mapInPattern = ValueUtil.FALSE_VALUE; + } + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((raw_when_TC_mapInPattern ? "done " : "fail ") + "MAP_m_TC__mapSimpleInPatternElement_atl_atlElement_atl_a"); + } + return raw_when_TC_mapInPattern; + } + + /** + * + * map m_TC__mapSimpleOutPatternElement_atl_atlElement_atl_ in ATL2QVTr { + * + * guard:atl atlElement : ATL::SimpleOutPatternElement[1]; + * var atlPattern : ATL::OutPattern[1] := atlElement.outPattern; + * check var atlRule : ATL::MatchedRule[1] := atlPattern.rule; + * var type : OCL::OclType[?] := atlElement.type; + * var elementName : String[1] := atlElement.varName; + * var when_TC_mapOutPattern : trace_ATL2QVTr::TC_mapOutPattern[1] := atlPattern.TC_mapOutPattern; + * var when_TC_mapMatchedRule : trace_ATL2QVTr::TC_mapMatchedRule[1] := atlRule.TC_mapMatchedRule; + * var qvtrDomain : qvtrelation::RelationDomain[1] := when_TC_mapOutPattern.qvtr_qvtrDomain; + * var qvtrRelation : qvtrelation::Relation[1] := when_TC_mapMatchedRule.qvtr_qvtrRelation; + * var getType1 : Class[1] := this.getType(type); + * new:qvtr qvtrPattern : qvtrelation::DomainPattern[1]; + * contained new:qvtr qvtrTemplate : qvttemplate::ObjectTemplateExp[1]; + * contained new:qvtr qvtrVariable : qvtrelation::TemplateVariable[1]; + * new:middle trace : trace_ATL2QVTr::TC_mapSimpleOutPatternElement[1]; + * new:middle where_TC_mapVariable : trace_ATL2QVTr::TC_mapVariable[1]; + * set qvtrVariable.name := elementName; + * set trace.primitive_elementName := elementName; + * set qvtrDomain.pattern := qvtrPattern; + * set trace.atl_atlElement := atlElement; + * set trace.atl_atlPattern := atlPattern; + * set trace.atl_atlRule := atlRule; + * set trace.invocation_mapVariable := where_TC_mapVariable; + * set trace.qvtr_qvtrDomain := qvtrDomain; + * set trace.qvtr_qvtrPattern := qvtrPattern; + * set trace.qvtr_qvtrRelation := qvtrRelation; + * set trace.qvtr_qvtrTemplate := qvtrTemplate; + * set trace.qvtr_qvtrVariable := qvtrVariable; + * set qvtrTemplate.bindsTo := qvtrVariable; + * set qvtrTemplate.referredClass := getType1; + * notify set qvtrTemplate.type := getType1; + * set qvtrRelation.variable := qvtrVariable; + * set qvtrDomain.rootVariable := qvtrVariable; + * notify set qvtrVariable.type := getType1; + * set qvtrPattern.templateExpression := qvtrTemplate; + * set where_TC_mapVariable.atl_atlVariable := atlElement; + * set where_TC_mapVariable.qvtr_qvtrVariable := qvtrVariable; + * + */ + protected boolean MAP_m_TC__mapSimpleOutPatternElement_atl_atlElement_atl_(final /*@NonInvalid*/ @NonNull SimpleOutPatternElement atlElement_0) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_TC__mapSimpleOutPatternElement_atl_atlElement_atl_" + ", " + atlElement_0); + } + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OutPattern outPattern = atlElement_0.getOutPattern(); + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull Rule temp1_atlRule = outPattern.getRule(); + final /*@NonInvalid*/ boolean symbol_0 = temp1_atlRule instanceof MatchedRule; + /*@Thrown*/ @Nullable Boolean symbol_26; + if (symbol_0) { + final /*@NonInvalid*/ @NonNull MatchedRule symbol_1 = (MatchedRule)temp1_atlRule; + final /*@NonInvalid*/ @Nullable OclType type_2 = atlElement_0.getType(); + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull String varName = atlElement_0.getVarName(); + final /*@NonInvalid*/ @Nullable TC_mapOutPattern TC_mapOutPattern = OPPOSITE_OF_TC_mapOutPattern_atl_atlPattern.get(outPattern); + final /*@NonInvalid*/ boolean symbol_2 = TC_mapOutPattern != null; + /*@Thrown*/ @Nullable Boolean raw_when_TC_mapOutPattern; + if (symbol_2) { + if (TC_mapOutPattern == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + final /*@NonInvalid*/ @Nullable TC_mapMatchedRule TC_mapMatchedRule = OPPOSITE_OF_TC_mapMatchedRule_atl_matchedRule.get(symbol_1); + final /*@NonInvalid*/ boolean symbol_3 = TC_mapMatchedRule != null; + /*@Thrown*/ @Nullable Boolean raw_when_TC_mapMatchedRule; + if (symbol_3) { + if (TC_mapMatchedRule == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + @SuppressWarnings("null") + final /*@Thrown*/ @NonNull RelationDomain qvtr_qvtrDomain = TC_mapOutPattern.getQvtr_qvtrDomain(); + @SuppressWarnings("null") + final /*@Thrown*/ @NonNull Relation qvtr_qvtrRelation = TC_mapMatchedRule.getQvtr_qvtrRelation(); + final /*@Thrown*/ org.eclipse.ocl.pivot.@NonNull Class getType = ((FUN_getType)FTOR_getType.getUniqueComputation(this, type_2)).instance; + // creations + final @NonNull DomainPattern qvtrPattern = QVTrelationFactory.eINSTANCE.createDomainPattern(); + models[2/*qvtr*/].add(qvtrPattern, false); + final @NonNull ObjectTemplateExp qvtrTemplate = QVTtemplateFactory.eINSTANCE.createObjectTemplateExp(); + models[2/*qvtr*/].add(qvtrTemplate, true); + final @NonNull TemplateVariable qvtrVariable = QVTrelationFactory.eINSTANCE.createTemplateVariable(); + models[2/*qvtr*/].add(qvtrVariable, true); + final @SuppressWarnings("null")@NonNull TC_mapSimpleOutPatternElement trace_37 = trace_ATL2QVTrFactory.eINSTANCE.createTC_mapSimpleOutPatternElement(); + models[0/*middle*/].add(trace_37, false); + final @SuppressWarnings("null")@NonNull TC_mapVariable where_TC_mapVariable = trace_ATL2QVTrFactory.eINSTANCE.createTC_mapVariable(); + models[0/*middle*/].add(where_TC_mapVariable, false); + // mapping statements + qvtrTemplate.setType(getType); + objectManager.assigned(qvtrTemplate, PivotPackage.Literals.TYPED_ELEMENT__TYPE, getType); + qvtrVariable.setName(varName); + trace_37.setPrimitive_elementName(varName); + qvtr_qvtrDomain.getPattern().add(qvtrPattern); + OPPOSITE_OF_TC_mapSimpleOutPatternElement_atl_atlElement.put(atlElement_0, trace_37); + trace_37.setAtl_atlElement(atlElement_0); + trace_37.setAtl_atlPattern(outPattern); + trace_37.setAtl_atlRule(symbol_1); + trace_37.setInvocation_mapVariable(where_TC_mapVariable); + trace_37.setQvtr_qvtrDomain(qvtr_qvtrDomain); + trace_37.setQvtr_qvtrPattern(qvtrPattern); + trace_37.setQvtr_qvtrRelation(qvtr_qvtrRelation); + trace_37.setQvtr_qvtrTemplate(qvtrTemplate); + trace_37.setQvtr_qvtrVariable(qvtrVariable); + qvtrTemplate.setBindsTo(qvtrVariable); + qvtr_qvtrRelation.getVariable().add(qvtrVariable); + qvtr_qvtrDomain.getRootVariable().add(qvtrVariable); + qvtrVariable.setType(getType); + objectManager.assigned(qvtrVariable, PivotPackage.Literals.TYPED_ELEMENT__TYPE, getType); + qvtrPattern.setTemplateExpression(qvtrTemplate); + OPPOSITE_OF_TC_mapVariable_atl_atlVariable.put(atlElement_0, where_TC_mapVariable); + where_TC_mapVariable.setAtl_atlVariable(atlElement_0); + where_TC_mapVariable.setQvtr_qvtrVariable(qvtrVariable); + final /*@Thrown*/ @Nullable Boolean m_TC__mapSimpleOutPatternElement_atl_atlElement_atl_ = ValueUtil.TRUE_VALUE; + raw_when_TC_mapMatchedRule = m_TC__mapSimpleOutPatternElement_atl_atlElement_atl_; + } + else { + raw_when_TC_mapMatchedRule = ValueUtil.FALSE_VALUE; + } + raw_when_TC_mapOutPattern = raw_when_TC_mapMatchedRule; + } + else { + raw_when_TC_mapOutPattern = ValueUtil.FALSE_VALUE; + } + symbol_26 = raw_when_TC_mapOutPattern; + } + else { + symbol_26 = ValueUtil.FALSE_VALUE; + } + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((symbol_26 ? "done " : "fail ") + "MAP_m_TC__mapSimpleOutPatternElement_atl_atlElement_atl_"); + } + return symbol_26; + } + + /** + * + * map m_TC__mapStringExp_atl_atlExpression_primitive_symbo in ATL2QVTr { + * guard:atl atlExpression : OCL::StringExp[1]; + * var symbol : String[1] := atlExpression.stringSymbol; + * var String1 : Class[1] := PrimitiveTypes::String; + * new:qvtr qvtrExpression : StringLiteralExp[1]; + * new:middle trace : trace_ATL2QVTr::TC_mapStringExp[1]; + * set qvtrExpression.stringSymbol := symbol; + * set trace.primitive_symbol := symbol; + * set trace.atl_atlExpression := atlExpression; + * set trace.qvtr_qvtrExpression := qvtrExpression; + * notify set qvtrExpression.type := String1; + * + */ + protected boolean MAP_m_TC__mapStringExp_atl_atlExpression_primitive_symbo(final /*@NonInvalid*/ @NonNull StringExp atlExpression_4) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_TC__mapStringExp_atl_atlExpression_primitive_symbo" + ", " + atlExpression_4); + } + final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver(); + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull String stringSymbol = atlExpression_4.getStringSymbol(); + final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_String_0 = idResolver.getClass(TypeId.STRING, null); + // creations + final @NonNull StringLiteralExp qvtrExpression = PivotFactory.eINSTANCE.createStringLiteralExp(); + models[2/*qvtr*/].add(qvtrExpression, false); + final @SuppressWarnings("null")@NonNull TC_mapStringExp trace_37 = trace_ATL2QVTrFactory.eINSTANCE.createTC_mapStringExp(); + models[0/*middle*/].add(trace_37, false); + // mapping statements + qvtrExpression.setStringSymbol(stringSymbol); + trace_37.setPrimitive_symbol(stringSymbol); + OPPOSITE_OF_TI_mapOclExpression_atl_atlExpression.put(atlExpression_4, trace_37); + trace_37.setAtl_atlExpression(atlExpression_4); + trace_37.setQvtr_qvtrExpression(qvtrExpression); + qvtrExpression.setType(TYP_String_0); + objectManager.assigned(qvtrExpression, PivotPackage.Literals.TYPED_ELEMENT__TYPE, TYP_String_0); + final /*@Thrown*/ @Nullable Boolean m_TC__mapStringExp_atl_atlExpression_primitive_symbo = ValueUtil.TRUE_VALUE; + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((m_TC__mapStringExp_atl_atlExpression_primitive_symbo ? "done " : "fail ") + "MAP_m_TC__mapStringExp_atl_atlExpression_primitive_symbo"); + } + return m_TC__mapStringExp_atl_atlExpression_primitive_symbo; + } + + /** + * + * map m_TC__mapVariableExp_atl_atlExpression_atl_atlVariab in ATL2QVTr { + * guard:atl atlExpression : OCL::VariableExp[1]; + * var atlVariable : OCL::VariableDeclaration[1] := atlExpression.referredVariable; + * var varName : String[1] := atlVariable.varName; + * new:qvtr qvtrExpression : VariableExp[1]; + * new:middle trace : trace_ATL2QVTr::TC_mapVariableExp[1]; + * new:middle where_WC_mapVariableExp_referredVariable : trace_ATL2QVTr::WC_mapVariableExp_referredVariable[1]; + * set qvtrExpression.name := varName; + * set trace.primitive_varName := varName; + * set where_WC_mapVariableExp_referredVariable.atl_atlExpression := atlExpression; + * set where_WC_mapVariableExp_referredVariable.qvtr_qvtrExpression := qvtrExpression; + * set trace.atl_atlExpression := atlExpression; + * set trace.atl_atlVariable := atlVariable; + * set trace.invocation_mapVariableExp_referredVariable := where_WC_mapVariableExp_referredVariable; + * set trace.qvtr_qvtrExpression := qvtrExpression; + * + */ + protected boolean MAP_m_TC__mapVariableExp_atl_atlExpression_atl_atlVariab(final /*@NonInvalid*/ org.eclipse.m2m.atl.common.OCL.@NonNull VariableExp atlExpression_5) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_TC__mapVariableExp_atl_atlExpression_atl_atlVariab" + ", " + atlExpression_5); + } + @SuppressWarnings("null") + final /*@NonInvalid*/ org.eclipse.m2m.atl.common.OCL.@NonNull VariableDeclaration referredVariable = atlExpression_5.getReferredVariable(); + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull String varName = referredVariable.getVarName(); + // creations + final org.eclipse.ocl.pivot.@NonNull VariableExp qvtrExpression = PivotFactory.eINSTANCE.createVariableExp(); + models[2/*qvtr*/].add(qvtrExpression, false); + final @SuppressWarnings("null")@NonNull TC_mapVariableExp trace_37 = trace_ATL2QVTrFactory.eINSTANCE.createTC_mapVariableExp(); + models[0/*middle*/].add(trace_37, false); + final @SuppressWarnings("null")@NonNull WC_mapVariableExp_referredVariable where_WC_mapVariableExp_referredVariable = trace_ATL2QVTrFactory.eINSTANCE.createWC_mapVariableExp_referredVariable(); + models[0/*middle*/].add(where_WC_mapVariableExp_referredVariable, false); + // mapping statements + qvtrExpression.setName(varName); + trace_37.setPrimitive_varName(varName); + OPPOSITE_OF_WI_mapVariableExp_referredVariable_atl_atlExpression.put(atlExpression_5, where_WC_mapVariableExp_referredVariable); + where_WC_mapVariableExp_referredVariable.setAtl_atlExpression(atlExpression_5); + where_WC_mapVariableExp_referredVariable.setQvtr_qvtrExpression(qvtrExpression); + OPPOSITE_OF_TI_mapOclExpression_atl_atlExpression.put(atlExpression_5, trace_37); + trace_37.setAtl_atlExpression(atlExpression_5); + trace_37.setAtl_atlVariable(referredVariable); + trace_37.setInvocation_mapVariableExp_referredVariable(where_WC_mapVariableExp_referredVariable); + trace_37.setQvtr_qvtrExpression(qvtrExpression); + final /*@Thrown*/ @Nullable Boolean m_TC__mapVariableExp_atl_atlExpression_atl_atlVariab = ValueUtil.TRUE_VALUE; + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((m_TC__mapVariableExp_atl_atlExpression_atl_atlVariab ? "done " : "fail ") + "MAP_m_TC__mapVariableExp_atl_atlExpression_atl_atlVariab"); + } + return m_TC__mapVariableExp_atl_atlExpression_atl_atlVariab; + } + + /** + * + * map m_VariableExp in ATL2QVTr { + * guard:atl atlExpression : OCL::VariableExp[1]; + * check false; + * + */ + protected boolean MAP_m_VariableExp(final /*@NonInvalid*/ org.eclipse.m2m.atl.common.OCL.@NonNull VariableExp atlExpression_6) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_VariableExp" + ", " + atlExpression_6); + } + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((ValueUtil.FALSE_VALUE ? "done " : "fail ") + "MAP_m_VariableExp"); + } + return ValueUtil.FALSE_VALUE; + } + + /** + * + * map m_LocatedElement in ATL2QVTr { + * guard:atl atlVariable : ATL::LocatedElement[1]; + * check false; + * + */ + protected boolean MAP_m_LocatedElement(final /*@NonInvalid*/ @NonNull LocatedElement atlVariable) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_LocatedElement" + ", " + atlVariable); + } + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((ValueUtil.FALSE_VALUE ? "done " : "fail ") + "MAP_m_LocatedElement"); + } + return ValueUtil.FALSE_VALUE; + } + + /** + * + * map m_TC__mapHelper__Attribute_atl_atlDefinition_atl_atl_p0 in ATL2QVTr { + * guard:atl atlExpression : OCL::OclExpression[1]; + * append jm_TC__mapHelper__Attribute_1 : trace_ATL2QVTr::TC_mapHelper_Attribute[1]; + * var atlFeature : OCL::Attribute[1] := atlExpression.owningAttribute; + * var attributeName : String[1] := atlFeature.name; + * var atlType : OCL::OclType[1] := atlFeature.type; + * var atlDefinition : OCL::OclFeatureDefinition[1] := atlFeature.definition; + * var atlHelper : ATL::Helper[1] := atlDefinition.Helper; + * var atlModule : ATL::Module[1] := atlHelper.module; + * var when_TC_mapModule : trace_ATL2QVTr::TC_mapModule[1] := atlModule.TC_mapModule; + * var qvtrTransformation : qvtrelation::RelationalTransformation[1] := when_TC_mapModule.qvtr_qvtrTransformation; + * new:middle trace : trace_ATL2QVTr::TC_mapHelper_Attribute[1]; + * set trace.primitive_attributeName := attributeName; + * set trace.atl_atlDefinition := atlDefinition; + * set trace.atl_atlExpression := atlExpression; + * set trace.atl_atlFeature := atlFeature; + * set trace.atl_atlHelper := atlHelper; + * set trace.atl_atlModule := atlModule; + * set trace.atl_atlType := atlType; + * set trace.qvtr_qvtrTransformation := qvtrTransformation; + * add jm_TC__mapHelper__Attribute_1 += trace; + * + */ + protected boolean MAP_m_TC__mapHelper__Attribute_atl_atlDefinition_atl_atl_p0(final /*@NonInvalid*/ @NonNull OclExpression atlExpression_7, final @NonNull Connection jm_TC__mapHelper__Attribute_1) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_TC__mapHelper__Attribute_atl_atlDefinition_atl_atl_p0" + ", " + atlExpression_7 + ", " + jm_TC__mapHelper__Attribute_1); + } + final /*@NonInvalid*/ @Nullable Attribute owningAttribute = atlExpression_7.getOwningAttribute(); + final /*@NonInvalid*/ boolean symbol_0 = owningAttribute != null; + /*@Thrown*/ @Nullable Boolean raw_atlFeature; + if (symbol_0) { + if (owningAttribute == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + @SuppressWarnings("null") + final /*@Thrown*/ @NonNull String name_2 = owningAttribute.getName(); + @SuppressWarnings("null") + final /*@Thrown*/ @NonNull OclType type_2 = owningAttribute.getType(); + final /*@Thrown*/ @Nullable OclFeatureDefinition definition = owningAttribute.getDefinition(); + final /*@Thrown*/ boolean symbol_1 = definition != null; + /*@Thrown*/ @Nullable Boolean raw_atlDefinition; + if (symbol_1) { + if (definition == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + final /*@NonInvalid*/ @NonNull UnboxedCompositionProperty IMPPROPid_definition = new UnboxedCompositionProperty(PROPid_definition); + final /*@Thrown*/ @Nullable Helper Helper = (Helper)IMPPROPid_definition.evaluate(executor, CLSSid_Helper, definition); + final /*@Thrown*/ boolean symbol_2 = Helper != null; + /*@Thrown*/ @Nullable Boolean raw_atlHelper; + if (symbol_2) { + if (Helper == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + final /*@Thrown*/ @Nullable Module module = Helper.getModule(); + final /*@Thrown*/ boolean symbol_3 = module != null; + /*@Thrown*/ @Nullable Boolean raw_atlModule; + if (symbol_3) { + if (module == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + final /*@Thrown*/ @Nullable TC_mapModule TC_mapModule = OPPOSITE_OF_TC_mapModule_atl_atlModule.get(module); + final /*@Thrown*/ boolean symbol_4 = TC_mapModule != null; + /*@Thrown*/ @Nullable Boolean raw_when_TC_mapModule; + if (symbol_4) { + if (TC_mapModule == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + @SuppressWarnings("null") + final /*@Thrown*/ @NonNull RelationalTransformation qvtr_qvtrTransformation = TC_mapModule.getQvtr_qvtrTransformation(); + // creations + final @SuppressWarnings("null")@NonNull TC_mapHelper_Attribute trace_37 = trace_ATL2QVTrFactory.eINSTANCE.createTC_mapHelper_Attribute(); + models[0/*middle*/].add(trace_37, false); + // mapping statements + trace_37.setPrimitive_attributeName(name_2); + trace_37.setAtl_atlDefinition(definition); + trace_37.setAtl_atlExpression(atlExpression_7); + trace_37.setAtl_atlFeature(owningAttribute); + OPPOSITE_OF_TI_mapHelper_atl_atlHelper.put(Helper, trace_37); + trace_37.setAtl_atlHelper(Helper); + trace_37.setAtl_atlModule(module); + trace_37.setAtl_atlType(type_2); + trace_37.setQvtr_qvtrTransformation(qvtr_qvtrTransformation); + jm_TC__mapHelper__Attribute_1.appendElement(trace_37); + final /*@Thrown*/ @Nullable Boolean m_TC__mapHelper__Attribute_atl_atlDefinition_atl_atl_p0 = ValueUtil.TRUE_VALUE; + raw_when_TC_mapModule = m_TC__mapHelper__Attribute_atl_atlDefinition_atl_atl_p0; + } + else { + raw_when_TC_mapModule = ValueUtil.FALSE_VALUE; + } + raw_atlModule = raw_when_TC_mapModule; + } + else { + raw_atlModule = ValueUtil.FALSE_VALUE; + } + raw_atlHelper = raw_atlModule; + } + else { + raw_atlHelper = ValueUtil.FALSE_VALUE; + } + raw_atlDefinition = raw_atlHelper; + } + else { + raw_atlDefinition = ValueUtil.FALSE_VALUE; + } + raw_atlFeature = raw_atlDefinition; + } + else { + raw_atlFeature = ValueUtil.FALSE_VALUE; + } + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((raw_atlFeature ? "done " : "fail ") + "MAP_m_TC__mapHelper__Attribute_atl_atlDefinition_atl_atl_p0"); + } + return raw_atlFeature; + } + + /** + * + * map m_TC__mapHelper__Operation_atl_atlDefinition_atl_atl_p0 in ATL2QVTr { + * guard:atl atlExpression : OCL::OclExpression[1]; + * append jm_TC__mapHelper__Operation_1 : trace_ATL2QVTr::TC_mapHelper_Operation[1]; + * var atlFeature : OCL::Operation[1] := atlExpression.owningOperation; + * var operationName : String[1] := atlFeature.name; + * var atlType : OCL::OclType[1] := atlFeature.returnType; + * var atlDefinition : OCL::OclFeatureDefinition[1] := atlFeature.definition; + * var atlHelper : ATL::Helper[1] := atlDefinition.Helper; + * var atlModule : ATL::Module[1] := atlHelper.module; + * var when_TC_mapModule : trace_ATL2QVTr::TC_mapModule[1] := atlModule.TC_mapModule; + * var qvtrTransformation : qvtrelation::RelationalTransformation[1] := when_TC_mapModule.qvtr_qvtrTransformation; + * new:middle trace : trace_ATL2QVTr::TC_mapHelper_Operation[1]; + * set trace.primitive_operationName := operationName; + * set trace.atl_atlDefinition := atlDefinition; + * set trace.atl_atlExpression := atlExpression; + * set trace.atl_atlFeature := atlFeature; + * set trace.atl_atlHelper := atlHelper; + * set trace.atl_atlModule := atlModule; + * set trace.atl_atlType := atlType; + * set trace.qvtr_qvtrTransformation := qvtrTransformation; + * add jm_TC__mapHelper__Operation_1 += trace; + * + */ + protected boolean MAP_m_TC__mapHelper__Operation_atl_atlDefinition_atl_atl_p0(final /*@NonInvalid*/ @NonNull OclExpression atlExpression_8, final @NonNull Connection jm_TC__mapHelper__Operation_1) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_TC__mapHelper__Operation_atl_atlDefinition_atl_atl_p0" + ", " + atlExpression_8 + ", " + jm_TC__mapHelper__Operation_1); + } + final /*@NonInvalid*/ org.eclipse.m2m.atl.common.OCL.@Nullable Operation owningOperation = atlExpression_8.getOwningOperation(); + final /*@NonInvalid*/ boolean symbol_0 = owningOperation != null; + /*@Thrown*/ @Nullable Boolean raw_atlFeature; + if (symbol_0) { + if (owningOperation == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + @SuppressWarnings("null") + final /*@Thrown*/ @NonNull String name_2 = owningOperation.getName(); + @SuppressWarnings("null") + final /*@Thrown*/ @NonNull OclType returnType = owningOperation.getReturnType(); + final /*@Thrown*/ @Nullable OclFeatureDefinition definition = owningOperation.getDefinition(); + final /*@Thrown*/ boolean symbol_1 = definition != null; + /*@Thrown*/ @Nullable Boolean raw_atlDefinition; + if (symbol_1) { + if (definition == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + final /*@NonInvalid*/ @NonNull UnboxedCompositionProperty IMPPROPid_definition = new UnboxedCompositionProperty(PROPid_definition); + final /*@Thrown*/ @Nullable Helper Helper = (Helper)IMPPROPid_definition.evaluate(executor, CLSSid_Helper, definition); + final /*@Thrown*/ boolean symbol_2 = Helper != null; + /*@Thrown*/ @Nullable Boolean raw_atlHelper; + if (symbol_2) { + if (Helper == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + final /*@Thrown*/ @Nullable Module module = Helper.getModule(); + final /*@Thrown*/ boolean symbol_3 = module != null; + /*@Thrown*/ @Nullable Boolean raw_atlModule; + if (symbol_3) { + if (module == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + final /*@Thrown*/ @Nullable TC_mapModule TC_mapModule = OPPOSITE_OF_TC_mapModule_atl_atlModule.get(module); + final /*@Thrown*/ boolean symbol_4 = TC_mapModule != null; + /*@Thrown*/ @Nullable Boolean raw_when_TC_mapModule; + if (symbol_4) { + if (TC_mapModule == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + @SuppressWarnings("null") + final /*@Thrown*/ @NonNull RelationalTransformation qvtr_qvtrTransformation = TC_mapModule.getQvtr_qvtrTransformation(); + // creations + final @SuppressWarnings("null")@NonNull TC_mapHelper_Operation trace_37 = trace_ATL2QVTrFactory.eINSTANCE.createTC_mapHelper_Operation(); + models[0/*middle*/].add(trace_37, false); + // mapping statements + trace_37.setPrimitive_operationName(name_2); + trace_37.setAtl_atlDefinition(definition); + trace_37.setAtl_atlExpression(atlExpression_8); + trace_37.setAtl_atlFeature(owningOperation); + OPPOSITE_OF_TI_mapHelper_atl_atlHelper.put(Helper, trace_37); + trace_37.setAtl_atlHelper(Helper); + trace_37.setAtl_atlModule(module); + trace_37.setAtl_atlType(returnType); + trace_37.setQvtr_qvtrTransformation(qvtr_qvtrTransformation); + jm_TC__mapHelper__Operation_1.appendElement(trace_37); + final /*@Thrown*/ @Nullable Boolean m_TC__mapHelper__Operation_atl_atlDefinition_atl_atl_p0 = ValueUtil.TRUE_VALUE; + raw_when_TC_mapModule = m_TC__mapHelper__Operation_atl_atlDefinition_atl_atl_p0; + } + else { + raw_when_TC_mapModule = ValueUtil.FALSE_VALUE; + } + raw_atlModule = raw_when_TC_mapModule; + } + else { + raw_atlModule = ValueUtil.FALSE_VALUE; + } + raw_atlHelper = raw_atlModule; + } + else { + raw_atlHelper = ValueUtil.FALSE_VALUE; + } + raw_atlDefinition = raw_atlHelper; + } + else { + raw_atlDefinition = ValueUtil.FALSE_VALUE; + } + raw_atlFeature = raw_atlDefinition; + } + else { + raw_atlFeature = ValueUtil.FALSE_VALUE; + } + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((raw_atlFeature ? "done " : "fail ") + "MAP_m_TC__mapHelper__Operation_atl_atlDefinition_atl_atl_p0"); + } + return raw_atlFeature; + } + + /** + * + * map m_TC__mapIfExp_atl_atlCondition_atl_atlElse_atl_atlE_p0 in ATL2QVTr { + * guard:atl atlCondition : OCL::OclExpression[1]; + * append jm_TC__mapIfExp_1 : trace_ATL2QVTr::TC_mapIfExp[1]; + * var atlExpression : OCL::IfExp[1] := atlCondition.ifExp1; + * var atlElse : OCL::OclExpression[1] := atlExpression.elseExpression; + * var atlThen : OCL::OclExpression[1] := atlExpression.thenExpression; + * new:middle trace : trace_ATL2QVTr::TC_mapIfExp[1]; + * set trace.atl_atlCondition := atlCondition; + * set trace.atl_atlElse := atlElse; + * set trace.atl_atlExpression := atlExpression; + * set trace.atl_atlThen := atlThen; + * add jm_TC__mapIfExp_1 += trace; + * + */ + protected boolean MAP_m_TC__mapIfExp_atl_atlCondition_atl_atlElse_atl_atlE_p0(final /*@NonInvalid*/ @NonNull OclExpression atlCondition, final @NonNull Connection jm_TC__mapIfExp_1) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_TC__mapIfExp_atl_atlCondition_atl_atlElse_atl_atlE_p0" + ", " + atlCondition + ", " + jm_TC__mapIfExp_1); + } + final /*@NonInvalid*/ org.eclipse.m2m.atl.common.OCL.@Nullable IfExp ifExp1 = atlCondition.getIfExp1(); + final /*@NonInvalid*/ boolean symbol_0 = ifExp1 != null; + /*@Thrown*/ @Nullable Boolean raw_atlExpression; + if (symbol_0) { + if (ifExp1 == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + @SuppressWarnings("null") + final /*@Thrown*/ @NonNull OclExpression elseExpression = ifExp1.getElseExpression(); + @SuppressWarnings("null") + final /*@Thrown*/ @NonNull OclExpression thenExpression = ifExp1.getThenExpression(); + // creations + final @SuppressWarnings("null")@NonNull TC_mapIfExp trace_37 = trace_ATL2QVTrFactory.eINSTANCE.createTC_mapIfExp(); + models[0/*middle*/].add(trace_37, false); + // mapping statements + trace_37.setAtl_atlCondition(atlCondition); + trace_37.setAtl_atlElse(elseExpression); + OPPOSITE_OF_TI_mapOclExpression_atl_atlExpression.put(ifExp1, trace_37); + trace_37.setAtl_atlExpression(ifExp1); + trace_37.setAtl_atlThen(thenExpression); + jm_TC__mapIfExp_1.appendElement(trace_37); + final /*@Thrown*/ @Nullable Boolean m_TC__mapIfExp_atl_atlCondition_atl_atlElse_atl_atlE_p0 = ValueUtil.TRUE_VALUE; + raw_atlExpression = m_TC__mapIfExp_atl_atlCondition_atl_atlElse_atl_atlE_p0; + } + else { + raw_atlExpression = ValueUtil.FALSE_VALUE; + } + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((raw_atlExpression ? "done " : "fail ") + "MAP_m_TC__mapIfExp_atl_atlCondition_atl_atlElse_atl_atlE_p0"); + } + return raw_atlExpression; + } + + /** + * + * map m_TC__mapNavigationOrAttributeCallExp__Helper_atl_at_p0 in ATL2QVTr { + * + * guard:atl atlExpression : OCL::NavigationOrAttributeCallExp[1]; + * append jm_TC__mapNavigationOrAttributeCallExp__Helper_1 : trace_ATL2QVTr::TC_mapNavigationOrAttributeCallExp_Helper[1]; + * var atlModule : ATL::Module[1] := this.getModule(atlExpression) + * ; + * var elements : OrderedSet(ATL::ModuleElement) := atlModule.elements; + * var selectByKind : OrderedSet(ATL::Helper) := elements->selectByKind(ATL::Helper) + * ; + * var _'\u00ABcollect\u00BB' : Sequence(OCL::OclFeatureDefinition) := selectByKind->collect(_'1_' | _'1_'.definition) + * ; + * var selectByKind1 : Sequence(OCL::Attribute) := _'\u00ABcollect\u00BB'->collect(_'1__0' | _'1__0'.feature) + * ->selectByKind(OCL::Attribute) + * ; + * var _'\u00ABselect\u00BB' : Sequence(OCL::Attribute) := selectByKind1->select(_'1__1' | _'1__1'.name = atlExpression.name) + * ; + * var notEmpty : Boolean[1] := _'\u00ABselect\u00BB'->notEmpty() + * ; + * check notEmpty; + * var propertyName : String[1] := atlExpression.name; + * var atlSource : OCL::OclExpression[1] := atlExpression.source; + * var _'\u00ABcollect\u00BB1' : Sequence(OCL::OclFeature) := _'\u00ABcollect\u00BB'->collect(_'1__0' | _'1__0'.feature); + * new:middle trace : trace_ATL2QVTr::TC_mapNavigationOrAttributeCallExp_Helper[1]; + * set trace.primitive_propertyName := propertyName; + * set trace.atl_atlAttributes := _'\u00ABselect\u00BB'; + * set trace.atl_atlExpression := atlExpression; + * set trace.atl_atlModule := atlModule; + * set trace.atl_atlSource := atlSource; + * add jm_TC__mapNavigationOrAttributeCallExp__Helper_1 += trace; + * + */ + protected boolean MAP_m_TC__mapNavigationOrAttributeCallExp__Helper_atl_at_p0(final /*@NonInvalid*/ @NonNull NavigationOrAttributeCallExp atlExpression_9, final @NonNull Connection jm_TC__mapNavigationOrAttributeCallExp__Helper_1) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_TC__mapNavigationOrAttributeCallExp__Helper_atl_at_p0" + ", " + atlExpression_9 + ", " + jm_TC__mapNavigationOrAttributeCallExp__Helper_1); + } + final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver(); + final /*@NonInvalid*/ @NonNull Module getModule = ((FUN_getModule)FTOR_getModule.getUniqueComputation(this, atlExpression_9)).instance; + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull List<ModuleElement> elements = getModule.getElements(); + final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_ATL_c_c_Helper_0 = idResolver.getClass(CLSSid_Helper, null); + final /*@NonInvalid*/ @NonNull OrderedSetValue BOXED_elements = idResolver.createOrderedSetOfAll(ORD_CLSSid_ModuleElement, elements); + final /*@NonInvalid*/ @NonNull OrderedSetValue selectByKind = (OrderedSetValue)CollectionSelectByKindOperation.INSTANCE.evaluate(executor, BOXED_elements, TYP_ATL_c_c_Helper_0); + /*@Thrown*/ SequenceValue.@NonNull Accumulator accumulator = ValueUtil.createSequenceAccumulatorValue(SEQ_CLSSid_OclFeatureDefinition); + @NonNull Iterator<Object> ITERATOR__1 = selectByKind.iterator(); + /*@NonInvalid*/ @NonNull SequenceValue collect; + while (true) { + if (!ITERATOR__1.hasNext()) { + collect = accumulator; + break; + } + @SuppressWarnings("null") + /*@NonInvalid*/ @NonNull Helper _1 = (Helper)ITERATOR__1.next(); + /** + * _'1_'.definition + */ + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OclFeatureDefinition definition = _1.getDefinition(); + // + accumulator.add(definition); + } + final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_OCL_c_c_Attribute_0 = idResolver.getClass(CLSSid_Attribute, null); + /*@Thrown*/ SequenceValue.@NonNull Accumulator accumulator_0 = ValueUtil.createSequenceAccumulatorValue(SEQ_CLSSid_OclFeature); + @NonNull Iterator<Object> ITERATOR__49___0 = collect.iterator(); + /*@NonInvalid*/ @NonNull SequenceValue collect_0; + while (true) { + if (!ITERATOR__49___0.hasNext()) { + collect_0 = accumulator_0; + break; + } + @SuppressWarnings("null") + /*@NonInvalid*/ @NonNull OclFeatureDefinition _49___0 = (OclFeatureDefinition)ITERATOR__49___0.next(); + /** + * _'1__0'.feature + */ + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OclFeature feature = _49___0.getFeature(); + // + accumulator_0.add(feature); + } + final /*@NonInvalid*/ @NonNull SequenceValue selectByKind_0 = (SequenceValue)CollectionSelectByKindOperation.INSTANCE.evaluate(executor, collect_0, TYP_OCL_c_c_Attribute_0); + /*@Thrown*/ SequenceValue.@NonNull Accumulator accumulator_1 = ValueUtil.createSequenceAccumulatorValue(SEQ_CLSSid_Attribute); + @NonNull Iterator<Object> ITERATOR__49___1 = selectByKind_0.iterator(); + /*@NonInvalid*/ @NonNull SequenceValue select; + while (true) { + if (!ITERATOR__49___1.hasNext()) { + select = accumulator_1; + break; + } + @SuppressWarnings("null") + /*@NonInvalid*/ @NonNull Attribute _49___1 = (Attribute)ITERATOR__49___1.next(); + /** + * _'1__1'.name = atlExpression.name + */ + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull String name_2 = _49___1.getName(); + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull String name_3 = atlExpression_9.getName(); + final /*@NonInvalid*/ boolean eq = name_2.equals(name_3); + // + if (eq == ValueUtil.TRUE_VALUE) { + accumulator_1.add(_49___1); + } + } + final /*@NonInvalid*/ boolean notEmpty = CollectionNotEmptyOperation.INSTANCE.evaluate(select).booleanValue(); + /*@Thrown*/ @Nullable Boolean symbol_7; + if (notEmpty) { + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull String name_4 = atlExpression_9.getName(); + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OclExpression source = atlExpression_9.getSource(); + // creations + final @SuppressWarnings("null")@NonNull TC_mapNavigationOrAttributeCallExp_Helper trace_37 = trace_ATL2QVTrFactory.eINSTANCE.createTC_mapNavigationOrAttributeCallExp_Helper(); + models[0/*middle*/].add(trace_37, false); + // mapping statements + trace_37.setPrimitive_propertyName(name_4); + final /*@NonInvalid*/ @NonNull List<Attribute> ECORE_select = ((IdResolver.IdResolverExtension)idResolver).ecoreValueOfAll(Attribute.class, select); + trace_37.getAtl_atlAttributes().addAll(ECORE_select); + OPPOSITE_OF_TI_mapOclExpression_atl_atlExpression.put(atlExpression_9, trace_37); + trace_37.setAtl_atlExpression(atlExpression_9); + trace_37.setAtl_atlModule(getModule); + trace_37.setAtl_atlSource(source); + jm_TC__mapNavigationOrAttributeCallExp__Helper_1.appendElement(trace_37); + final /*@Thrown*/ @Nullable Boolean m_TC__mapNavigationOrAttributeCallExp__Helper_atl_at_p0 = ValueUtil.TRUE_VALUE; + symbol_7 = m_TC__mapNavigationOrAttributeCallExp__Helper_atl_at_p0; + } + else { + symbol_7 = ValueUtil.FALSE_VALUE; + } + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((symbol_7 ? "done " : "fail ") + "MAP_m_TC__mapNavigationOrAttributeCallExp__Helper_atl_at_p0"); + } + return symbol_7; + } + + /** + * + * map m_TC__mapNavigationOrAttributeCallExp__Property_atl__p0 in ATL2QVTr { + * + * guard:atl atlExpression : OCL::NavigationOrAttributeCallExp[1]; + * append jm_TC__mapNavigationOrAttributeCallExp__Property_1 : trace_ATL2QVTr::TC_mapNavigationOrAttributeCallExp_Property[1]; + * var atlModule : ATL::Module[1] := this.getModule(atlExpression) + * ; + * var elements : OrderedSet(ATL::ModuleElement) := atlModule.elements; + * var selectByKind : OrderedSet(ATL::Helper) := elements->selectByKind(ATL::Helper) + * ; + * var _'\u00ABcollect\u00BB' : Sequence(OCL::OclFeatureDefinition) := selectByKind->collect(_'1_' | _'1_'.definition) + * ; + * var selectByKind1 : Sequence(OCL::Attribute) := _'\u00ABcollect\u00BB'->collect(_'1__0' | _'1__0'.feature) + * ->selectByKind(OCL::Attribute) + * ; + * var _'\u00ABselect\u00BB' : Sequence(OCL::Attribute) := selectByKind1->select(_'1__1' | _'1__1'.name = atlExpression.name) + * ; + * var isEmpty : Boolean[1] := _'\u00ABselect\u00BB'->isEmpty() + * ; + * check isEmpty; + * var propertyName : String[1] := atlExpression.name; + * var atlSource : OCL::OclExpression[1] := atlExpression.source; + * var _'\u00ABcollect\u00BB1' : Sequence(OCL::OclFeature) := _'\u00ABcollect\u00BB'->collect(_'1__0' | _'1__0'.feature); + * new:middle trace : trace_ATL2QVTr::TC_mapNavigationOrAttributeCallExp_Property[1]; + * set trace.primitive_propertyName := propertyName; + * set trace.atl_atlAttributes := _'\u00ABselect\u00BB'; + * set trace.atl_atlExpression := atlExpression; + * set trace.atl_atlModule := atlModule; + * set trace.atl_atlSource := atlSource; + * add jm_TC__mapNavigationOrAttributeCallExp__Property_1 += trace; + * + */ + protected boolean MAP_m_TC__mapNavigationOrAttributeCallExp__Property_atl__p0(final /*@NonInvalid*/ @NonNull NavigationOrAttributeCallExp atlExpression_10, final @NonNull Connection jm_TC__mapNavigationOrAttributeCallExp__Property_1) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_TC__mapNavigationOrAttributeCallExp__Property_atl__p0" + ", " + atlExpression_10 + ", " + jm_TC__mapNavigationOrAttributeCallExp__Property_1); + } + final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver(); + final /*@NonInvalid*/ @NonNull Module getModule = ((FUN_getModule)FTOR_getModule.getUniqueComputation(this, atlExpression_10)).instance; + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull List<ModuleElement> elements = getModule.getElements(); + final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_ATL_c_c_Helper_0 = idResolver.getClass(CLSSid_Helper, null); + final /*@NonInvalid*/ @NonNull OrderedSetValue BOXED_elements = idResolver.createOrderedSetOfAll(ORD_CLSSid_ModuleElement, elements); + final /*@NonInvalid*/ @NonNull OrderedSetValue selectByKind = (OrderedSetValue)CollectionSelectByKindOperation.INSTANCE.evaluate(executor, BOXED_elements, TYP_ATL_c_c_Helper_0); + /*@Thrown*/ SequenceValue.@NonNull Accumulator accumulator = ValueUtil.createSequenceAccumulatorValue(SEQ_CLSSid_OclFeatureDefinition); + @NonNull Iterator<Object> ITERATOR__1 = selectByKind.iterator(); + /*@NonInvalid*/ @NonNull SequenceValue collect; + while (true) { + if (!ITERATOR__1.hasNext()) { + collect = accumulator; + break; + } + @SuppressWarnings("null") + /*@NonInvalid*/ @NonNull Helper _1 = (Helper)ITERATOR__1.next(); + /** + * _'1_'.definition + */ + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OclFeatureDefinition definition = _1.getDefinition(); + // + accumulator.add(definition); + } + final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_OCL_c_c_Attribute_0 = idResolver.getClass(CLSSid_Attribute, null); + /*@Thrown*/ SequenceValue.@NonNull Accumulator accumulator_0 = ValueUtil.createSequenceAccumulatorValue(SEQ_CLSSid_OclFeature); + @NonNull Iterator<Object> ITERATOR__49___0 = collect.iterator(); + /*@NonInvalid*/ @NonNull SequenceValue collect_0; + while (true) { + if (!ITERATOR__49___0.hasNext()) { + collect_0 = accumulator_0; + break; + } + @SuppressWarnings("null") + /*@NonInvalid*/ @NonNull OclFeatureDefinition _49___0 = (OclFeatureDefinition)ITERATOR__49___0.next(); + /** + * _'1__0'.feature + */ + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OclFeature feature = _49___0.getFeature(); + // + accumulator_0.add(feature); + } + final /*@NonInvalid*/ @NonNull SequenceValue selectByKind_0 = (SequenceValue)CollectionSelectByKindOperation.INSTANCE.evaluate(executor, collect_0, TYP_OCL_c_c_Attribute_0); + /*@Thrown*/ SequenceValue.@NonNull Accumulator accumulator_1 = ValueUtil.createSequenceAccumulatorValue(SEQ_CLSSid_Attribute); + @NonNull Iterator<Object> ITERATOR__49___1 = selectByKind_0.iterator(); + /*@NonInvalid*/ @NonNull SequenceValue select; + while (true) { + if (!ITERATOR__49___1.hasNext()) { + select = accumulator_1; + break; + } + @SuppressWarnings("null") + /*@NonInvalid*/ @NonNull Attribute _49___1 = (Attribute)ITERATOR__49___1.next(); + /** + * _'1__1'.name = atlExpression.name + */ + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull String name_2 = _49___1.getName(); + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull String name_3 = atlExpression_10.getName(); + final /*@NonInvalid*/ boolean eq = name_2.equals(name_3); + // + if (eq == ValueUtil.TRUE_VALUE) { + accumulator_1.add(_49___1); + } + } + final /*@NonInvalid*/ boolean isEmpty = CollectionIsEmptyOperation.INSTANCE.evaluate(select).booleanValue(); + /*@Thrown*/ @Nullable Boolean symbol_7; + if (isEmpty) { + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull String name_4 = atlExpression_10.getName(); + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OclExpression source = atlExpression_10.getSource(); + // creations + final @SuppressWarnings("null")@NonNull TC_mapNavigationOrAttributeCallExp_Property trace_37 = trace_ATL2QVTrFactory.eINSTANCE.createTC_mapNavigationOrAttributeCallExp_Property(); + models[0/*middle*/].add(trace_37, false); + // mapping statements + trace_37.setPrimitive_propertyName(name_4); + final /*@NonInvalid*/ @NonNull List<Attribute> ECORE_select = ((IdResolver.IdResolverExtension)idResolver).ecoreValueOfAll(Attribute.class, select); + trace_37.getAtl_atlAttributes().addAll(ECORE_select); + OPPOSITE_OF_TI_mapOclExpression_atl_atlExpression.put(atlExpression_10, trace_37); + trace_37.setAtl_atlExpression(atlExpression_10); + trace_37.setAtl_atlModule(getModule); + trace_37.setAtl_atlSource(source); + jm_TC__mapNavigationOrAttributeCallExp__Property_1.appendElement(trace_37); + final /*@Thrown*/ @Nullable Boolean m_TC__mapNavigationOrAttributeCallExp__Property_atl__p0 = ValueUtil.TRUE_VALUE; + symbol_7 = m_TC__mapNavigationOrAttributeCallExp__Property_atl__p0; + } + else { + symbol_7 = ValueUtil.FALSE_VALUE; + } + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((symbol_7 ? "done " : "fail ") + "MAP_m_TC__mapNavigationOrAttributeCallExp__Property_atl__p0"); + } + return symbol_7; + } + + /** + * + * map m_TC__mapOperationCallExp__Helper_atl_atlExpression__p0 in ATL2QVTr { + * + * guard:atl atlExpression : OCL::OperationCallExp[1]; + * append jm_TC__mapOperationCallExp__Helper_1 : trace_ATL2QVTr::TC_mapOperationCallExp_Helper[1]; + * var _'not' : Boolean[?] := not atlExpression.oclIsKindOf(OCL::OperatorCallExp) + * ; + * check _'not'; + * var atlModule : ATL::Module[1] := this.getModule(atlExpression) + * ; + * var elements : OrderedSet(ATL::ModuleElement) := atlModule.elements; + * var selectByKind : OrderedSet(ATL::Helper) := elements->selectByKind(ATL::Helper) + * ; + * var _'\u00ABcollect\u00BB' : Sequence(OCL::OclFeatureDefinition) := selectByKind->collect(_'1_' | _'1_'.definition) + * ; + * var selectByKind1 : Sequence(OCL::Operation) := _'\u00ABcollect\u00BB'->collect(_'1__0' | _'1__0'.feature) + * ->selectByKind(OCL::Operation) + * ; + * var _'\u00ABselect\u00BB' : Sequence(OCL::Operation) := selectByKind1->select(_'1__1' | _'1__1'.name = atlExpression.operationName) + * ; + * var notEmpty : Boolean[1] := _'\u00ABselect\u00BB'->notEmpty() + * ; + * check notEmpty; + * var operationName : String[1] := atlExpression.operationName; + * var atlSource : OCL::OclExpression[1] := atlExpression.source; + * var _'oclIsKindOf\\nOCL::OperatorCallExp' : Boolean[1] := atlExpression.oclIsKindOf(OCL::OperatorCallExp) + * ; + * var _'\u00ABcollect\u00BB1' : Sequence(OCL::OclFeature) := _'\u00ABcollect\u00BB'->collect(_'1__0' | _'1__0'.feature); + * new:middle trace : trace_ATL2QVTr::TC_mapOperationCallExp_Helper[1]; + * set trace.primitive_operationName := operationName; + * set trace.atl_atlOperations := _'\u00ABselect\u00BB'; + * set trace.atl_atlExpression := atlExpression; + * set trace.atl_atlModule := atlModule; + * set trace.atl_atlSource := atlSource; + * add jm_TC__mapOperationCallExp__Helper_1 += trace; + * + */ + protected boolean MAP_m_TC__mapOperationCallExp__Helper_atl_atlExpression__p0(final /*@NonInvalid*/ org.eclipse.m2m.atl.common.OCL.@NonNull OperationCallExp atlExpression_11, final org.eclipse.qvtd.runtime.evaluation.@org.eclipse.jdt.annotation.NonNull Connection jm_TC__mapOperationCallExp__Helper_1) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_TC__mapOperationCallExp__Helper_atl_atlExpression__p0" + ", " + atlExpression_11 + ", " + jm_TC__mapOperationCallExp__Helper_1); + } + final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver(); + final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_OCL_c_c_OperatorCallExp_0 = idResolver.getClass(CLSSid_OperatorCallExp, null); + final /*@NonInvalid*/ boolean oclIsKindOf = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, atlExpression_11, TYP_OCL_c_c_OperatorCallExp_0).booleanValue(); + final /*@NonInvalid*/ @Nullable Boolean not = BooleanNotOperation.INSTANCE.evaluate(oclIsKindOf); + if (not == null) { + throw new InvalidEvaluationException("Null if condition"); + } + /*@Thrown*/ @Nullable Boolean symbol_8; + if (not) { + final /*@NonInvalid*/ @NonNull Module getModule = ((FUN_getModule)FTOR_getModule.getUniqueComputation(this, atlExpression_11)).instance; + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull List<ModuleElement> elements = getModule.getElements(); + final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_ATL_c_c_Helper_0 = idResolver.getClass(CLSSid_Helper, null); + final /*@NonInvalid*/ @NonNull OrderedSetValue BOXED_elements = idResolver.createOrderedSetOfAll(ORD_CLSSid_ModuleElement, elements); + final /*@NonInvalid*/ @NonNull OrderedSetValue selectByKind = (OrderedSetValue)CollectionSelectByKindOperation.INSTANCE.evaluate(executor, BOXED_elements, TYP_ATL_c_c_Helper_0); + /*@Thrown*/ SequenceValue.@NonNull Accumulator accumulator = ValueUtil.createSequenceAccumulatorValue(SEQ_CLSSid_OclFeatureDefinition); + @NonNull Iterator<Object> ITERATOR__1 = selectByKind.iterator(); + /*@NonInvalid*/ @NonNull SequenceValue collect; + while (true) { + if (!ITERATOR__1.hasNext()) { + collect = accumulator; + break; + } + @SuppressWarnings("null") + /*@NonInvalid*/ @NonNull Helper _1 = (Helper)ITERATOR__1.next(); + /** + * _'1_'.definition + */ + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OclFeatureDefinition definition = _1.getDefinition(); + // + accumulator.add(definition); + } + final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_OCL_c_c_Operation_0 = idResolver.getClass(CLSSid_Operation, null); + /*@Thrown*/ SequenceValue.@NonNull Accumulator accumulator_0 = ValueUtil.createSequenceAccumulatorValue(SEQ_CLSSid_OclFeature); + @NonNull Iterator<Object> ITERATOR__49___0 = collect.iterator(); + /*@NonInvalid*/ @NonNull SequenceValue collect_0; + while (true) { + if (!ITERATOR__49___0.hasNext()) { + collect_0 = accumulator_0; + break; + } + @SuppressWarnings("null") + /*@NonInvalid*/ @NonNull OclFeatureDefinition _49___0 = (OclFeatureDefinition)ITERATOR__49___0.next(); + /** + * _'1__0'.feature + */ + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OclFeature feature = _49___0.getFeature(); + // + accumulator_0.add(feature); + } + final /*@NonInvalid*/ @NonNull SequenceValue selectByKind_0 = (SequenceValue)CollectionSelectByKindOperation.INSTANCE.evaluate(executor, collect_0, TYP_OCL_c_c_Operation_0); + /*@Thrown*/ SequenceValue.@NonNull Accumulator accumulator_1 = ValueUtil.createSequenceAccumulatorValue(SEQ_CLSSid_Operation); + @NonNull Iterator<Object> ITERATOR__49___1 = selectByKind_0.iterator(); + /*@NonInvalid*/ @NonNull SequenceValue select; + while (true) { + if (!ITERATOR__49___1.hasNext()) { + select = accumulator_1; + break; + } + @SuppressWarnings("null") + /*@NonInvalid*/ org.eclipse.m2m.atl.common.OCL.@NonNull Operation _49___1 = (org.eclipse.m2m.atl.common.OCL.Operation)ITERATOR__49___1.next(); + /** + * _'1__1'.name = atlExpression.operationName + */ + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull String name_2 = _49___1.getName(); + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull String operationName = atlExpression_11.getOperationName(); + final /*@NonInvalid*/ boolean eq = name_2.equals(operationName); + // + if (eq == ValueUtil.TRUE_VALUE) { + accumulator_1.add(_49___1); + } + } + final /*@NonInvalid*/ boolean notEmpty = CollectionNotEmptyOperation.INSTANCE.evaluate(select).booleanValue(); + /*@Thrown*/ @Nullable Boolean symbol_7; + if (notEmpty) { + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull String operationName_0 = atlExpression_11.getOperationName(); + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OclExpression source = atlExpression_11.getSource(); + // creations + final @SuppressWarnings("null")@NonNull TC_mapOperationCallExp_Helper trace_37 = trace_ATL2QVTrFactory.eINSTANCE.createTC_mapOperationCallExp_Helper(); + models[0/*middle*/].add(trace_37, false); + // mapping statements + trace_37.setPrimitive_operationName(operationName_0); + final /*@NonInvalid*/ @NonNull List<org.eclipse.m2m.atl.common.OCL.Operation> ECORE_select = ((IdResolver.IdResolverExtension)idResolver).ecoreValueOfAll(org.eclipse.m2m.atl.common.OCL.Operation.class, select); + trace_37.getAtl_atlOperations().addAll(ECORE_select); + OPPOSITE_OF_TI_mapOclExpression_atl_atlExpression.put(atlExpression_11, trace_37); + trace_37.setAtl_atlExpression(atlExpression_11); + trace_37.setAtl_atlModule(getModule); + trace_37.setAtl_atlSource(source); + jm_TC__mapOperationCallExp__Helper_1.appendElement(trace_37); + final /*@Thrown*/ @Nullable Boolean m_TC__mapOperationCallExp__Helper_atl_atlExpression__p0 = ValueUtil.TRUE_VALUE; + symbol_7 = m_TC__mapOperationCallExp__Helper_atl_atlExpression__p0; + } + else { + symbol_7 = ValueUtil.FALSE_VALUE; + } + symbol_8 = symbol_7; + } + else { + symbol_8 = ValueUtil.FALSE_VALUE; + } + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((symbol_8 ? "done " : "fail ") + "MAP_m_TC__mapOperationCallExp__Helper_atl_atlExpression__p0"); + } + return symbol_8; + } + + /** + * + * map m_TC__mapOperationCallExp__Operation_atl_atlExpressi_p0 in ATL2QVTr { + * + * guard:atl atlExpression : OCL::OperationCallExp[1]; + * append jm_TC__mapOperationCallExp__Operation_1 : trace_ATL2QVTr::TC_mapOperationCallExp_Operation[1]; + * var _'not' : Boolean[?] := not atlExpression.oclIsKindOf(OCL::OperatorCallExp) + * ; + * check _'not'; + * var atlModule : ATL::Module[1] := this.getModule(atlExpression) + * ; + * var elements : OrderedSet(ATL::ModuleElement) := atlModule.elements; + * var selectByKind : OrderedSet(ATL::Helper) := elements->selectByKind(ATL::Helper) + * ; + * var _'\u00ABcollect\u00BB' : Sequence(OCL::OclFeatureDefinition) := selectByKind->collect(_'1_' | _'1_'.definition) + * ; + * var selectByKind1 : Sequence(OCL::Operation) := _'\u00ABcollect\u00BB'->collect(_'1__0' | _'1__0'.feature) + * ->selectByKind(OCL::Operation) + * ; + * var _'\u00ABselect\u00BB' : Sequence(OCL::Operation) := selectByKind1->select(_'1__1' | _'1__1'.name = atlExpression.operationName) + * ; + * var isEmpty : Boolean[1] := _'\u00ABselect\u00BB'->isEmpty() + * ; + * check isEmpty; + * var operationName : String[1] := atlExpression.operationName; + * var atlSource : OCL::OclExpression[1] := atlExpression.source; + * var _'oclIsKindOf\\nOCL::OperatorCallExp' : Boolean[1] := atlExpression.oclIsKindOf(OCL::OperatorCallExp) + * ; + * var _'\u00ABcollect\u00BB1' : Sequence(OCL::OclFeature) := _'\u00ABcollect\u00BB'->collect(_'1__0' | _'1__0'.feature); + * new:middle trace : trace_ATL2QVTr::TC_mapOperationCallExp_Operation[1]; + * set trace.primitive_operationName := operationName; + * set trace.atl_atlOperations := _'\u00ABselect\u00BB'; + * set trace.atl_atlExpression := atlExpression; + * set trace.atl_atlModule := atlModule; + * set trace.atl_atlSource := atlSource; + * add jm_TC__mapOperationCallExp__Operation_1 += trace; + * + */ + protected boolean MAP_m_TC__mapOperationCallExp__Operation_atl_atlExpressi_p0(final /*@NonInvalid*/ org.eclipse.m2m.atl.common.OCL.@NonNull OperationCallExp atlExpression_12, final org.eclipse.qvtd.runtime.evaluation.@org.eclipse.jdt.annotation.NonNull Connection jm_TC__mapOperationCallExp__Operation_1) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_TC__mapOperationCallExp__Operation_atl_atlExpressi_p0" + ", " + atlExpression_12 + ", " + jm_TC__mapOperationCallExp__Operation_1); + } + final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver(); + final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_OCL_c_c_OperatorCallExp_0 = idResolver.getClass(CLSSid_OperatorCallExp, null); + final /*@NonInvalid*/ boolean oclIsKindOf = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, atlExpression_12, TYP_OCL_c_c_OperatorCallExp_0).booleanValue(); + final /*@NonInvalid*/ @Nullable Boolean not = BooleanNotOperation.INSTANCE.evaluate(oclIsKindOf); + if (not == null) { + throw new InvalidEvaluationException("Null if condition"); + } + /*@Thrown*/ @Nullable Boolean symbol_8; + if (not) { + final /*@NonInvalid*/ @NonNull Module getModule = ((FUN_getModule)FTOR_getModule.getUniqueComputation(this, atlExpression_12)).instance; + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull List<ModuleElement> elements = getModule.getElements(); + final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_ATL_c_c_Helper_0 = idResolver.getClass(CLSSid_Helper, null); + final /*@NonInvalid*/ @NonNull OrderedSetValue BOXED_elements = idResolver.createOrderedSetOfAll(ORD_CLSSid_ModuleElement, elements); + final /*@NonInvalid*/ @NonNull OrderedSetValue selectByKind = (OrderedSetValue)CollectionSelectByKindOperation.INSTANCE.evaluate(executor, BOXED_elements, TYP_ATL_c_c_Helper_0); + /*@Thrown*/ SequenceValue.@NonNull Accumulator accumulator = ValueUtil.createSequenceAccumulatorValue(SEQ_CLSSid_OclFeatureDefinition); + @NonNull Iterator<Object> ITERATOR__1 = selectByKind.iterator(); + /*@NonInvalid*/ @NonNull SequenceValue collect; + while (true) { + if (!ITERATOR__1.hasNext()) { + collect = accumulator; + break; + } + @SuppressWarnings("null") + /*@NonInvalid*/ @NonNull Helper _1 = (Helper)ITERATOR__1.next(); + /** + * _'1_'.definition + */ + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OclFeatureDefinition definition = _1.getDefinition(); + // + accumulator.add(definition); + } + final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_OCL_c_c_Operation_0 = idResolver.getClass(CLSSid_Operation, null); + /*@Thrown*/ SequenceValue.@NonNull Accumulator accumulator_0 = ValueUtil.createSequenceAccumulatorValue(SEQ_CLSSid_OclFeature); + @NonNull Iterator<Object> ITERATOR__49___0 = collect.iterator(); + /*@NonInvalid*/ @NonNull SequenceValue collect_0; + while (true) { + if (!ITERATOR__49___0.hasNext()) { + collect_0 = accumulator_0; + break; + } + @SuppressWarnings("null") + /*@NonInvalid*/ @NonNull OclFeatureDefinition _49___0 = (OclFeatureDefinition)ITERATOR__49___0.next(); + /** + * _'1__0'.feature + */ + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OclFeature feature = _49___0.getFeature(); + // + accumulator_0.add(feature); + } + final /*@NonInvalid*/ @NonNull SequenceValue selectByKind_0 = (SequenceValue)CollectionSelectByKindOperation.INSTANCE.evaluate(executor, collect_0, TYP_OCL_c_c_Operation_0); + /*@Thrown*/ SequenceValue.@NonNull Accumulator accumulator_1 = ValueUtil.createSequenceAccumulatorValue(SEQ_CLSSid_Operation); + @NonNull Iterator<Object> ITERATOR__49___1 = selectByKind_0.iterator(); + /*@NonInvalid*/ @NonNull SequenceValue select; + while (true) { + if (!ITERATOR__49___1.hasNext()) { + select = accumulator_1; + break; + } + @SuppressWarnings("null") + /*@NonInvalid*/ org.eclipse.m2m.atl.common.OCL.@NonNull Operation _49___1 = (org.eclipse.m2m.atl.common.OCL.Operation)ITERATOR__49___1.next(); + /** + * _'1__1'.name = atlExpression.operationName + */ + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull String name_2 = _49___1.getName(); + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull String operationName = atlExpression_12.getOperationName(); + final /*@NonInvalid*/ boolean eq = name_2.equals(operationName); + // + if (eq == ValueUtil.TRUE_VALUE) { + accumulator_1.add(_49___1); + } + } + final /*@NonInvalid*/ boolean isEmpty = CollectionIsEmptyOperation.INSTANCE.evaluate(select).booleanValue(); + /*@Thrown*/ @Nullable Boolean symbol_7; + if (isEmpty) { + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull String operationName_0 = atlExpression_12.getOperationName(); + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OclExpression source = atlExpression_12.getSource(); + // creations + final @SuppressWarnings("null")@NonNull TC_mapOperationCallExp_Operation trace_37 = trace_ATL2QVTrFactory.eINSTANCE.createTC_mapOperationCallExp_Operation(); + models[0/*middle*/].add(trace_37, false); + // mapping statements + trace_37.setPrimitive_operationName(operationName_0); + final /*@NonInvalid*/ @NonNull List<org.eclipse.m2m.atl.common.OCL.Operation> ECORE_select = ((IdResolver.IdResolverExtension)idResolver).ecoreValueOfAll(org.eclipse.m2m.atl.common.OCL.Operation.class, select); + trace_37.getAtl_atlOperations().addAll(ECORE_select); + OPPOSITE_OF_TI_mapOclExpression_atl_atlExpression.put(atlExpression_12, trace_37); + trace_37.setAtl_atlExpression(atlExpression_12); + trace_37.setAtl_atlModule(getModule); + trace_37.setAtl_atlSource(source); + jm_TC__mapOperationCallExp__Operation_1.appendElement(trace_37); + final /*@Thrown*/ @Nullable Boolean m_TC__mapOperationCallExp__Operation_atl_atlExpressi_p0 = ValueUtil.TRUE_VALUE; + symbol_7 = m_TC__mapOperationCallExp__Operation_atl_atlExpressi_p0; + } + else { + symbol_7 = ValueUtil.FALSE_VALUE; + } + symbol_8 = symbol_7; + } + else { + symbol_8 = ValueUtil.FALSE_VALUE; + } + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((symbol_8 ? "done " : "fail ") + "MAP_m_TC__mapOperationCallExp__Operation_atl_atlExpressi_p0"); + } + return symbol_8; + } + + /** + * + * map m_TC__mapOperatorCallExp_atl_atlExpression_atl_atlSo_p0 in ATL2QVTr { + * guard:atl atlExpression : OCL::OperatorCallExp[1]; + * append jm_TC__mapOperatorCallExp_1 : trace_ATL2QVTr::TC_mapOperatorCallExp[1]; + * var operationName : String[1] := atlExpression.operationName; + * var atlSource : OCL::OclExpression[1] := atlExpression.source; + * new:middle trace : trace_ATL2QVTr::TC_mapOperatorCallExp[1]; + * set trace.primitive_operationName := operationName; + * set trace.atl_atlExpression := atlExpression; + * set trace.atl_atlSource := atlSource; + * add jm_TC__mapOperatorCallExp_1 += trace; + * + */ + protected boolean MAP_m_TC__mapOperatorCallExp_atl_atlExpression_atl_atlSo_p0(final /*@NonInvalid*/ @NonNull OperatorCallExp atlExpression_13, final @NonNull Connection jm_TC__mapOperatorCallExp_1) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_TC__mapOperatorCallExp_atl_atlExpression_atl_atlSo_p0" + ", " + atlExpression_13 + ", " + jm_TC__mapOperatorCallExp_1); + } + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull String operationName = atlExpression_13.getOperationName(); + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OclExpression source = atlExpression_13.getSource(); + // creations + final @SuppressWarnings("null")@NonNull TC_mapOperatorCallExp trace_37 = trace_ATL2QVTrFactory.eINSTANCE.createTC_mapOperatorCallExp(); + models[0/*middle*/].add(trace_37, false); + // mapping statements + trace_37.setPrimitive_operationName(operationName); + OPPOSITE_OF_TI_mapOclExpression_atl_atlExpression.put(atlExpression_13, trace_37); + trace_37.setAtl_atlExpression(atlExpression_13); + trace_37.setAtl_atlSource(source); + jm_TC__mapOperatorCallExp_1.appendElement(trace_37); + final /*@Thrown*/ @Nullable Boolean m_TC__mapOperatorCallExp_atl_atlExpression_atl_atlSo_p0 = ValueUtil.TRUE_VALUE; + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((m_TC__mapOperatorCallExp_atl_atlExpression_atl_atlSo_p0 ? "done " : "fail ") + "MAP_m_TC__mapOperatorCallExp_atl_atlExpression_atl_atlSo_p0"); + } + return m_TC__mapOperatorCallExp_atl_atlExpression_atl_atlSo_p0; + } + + /** + * + * map m_TC__mapHelper__Attribute_invocation_mapHelper_Cont_p1 in ATL2QVTr { + * guard:middle trace : trace_ATL2QVTr::TC_mapHelper_Attribute[1] success status; + * append jm_TC__mapHelper__Attribute : trace_ATL2QVTr::TC_mapHelper_Attribute[1]; + * var atlExpression : OCL::OclExpression[1] := trace.atl_atlExpression; + * var atlHelper : ATL::Helper[1] := trace.atl_atlHelper; + * var when_TI_mapOclExpression : trace_ATL2QVTr::TI_mapOclExpression[1] := atlExpression.TI_mapOclExpression; + * new:middle where_TC_mapHelper_Context : trace_ATL2QVTr::TC_mapHelper_Context[1]; + * set where_TC_mapHelper_Context.atl_atlHelper := atlHelper; + * set trace.invocation_mapHelper_Context := where_TC_mapHelper_Context; + * add jm_TC__mapHelper__Attribute += trace; + * + */ + protected boolean MAP_m_TC__mapHelper__Attribute_invocation_mapHelper_Cont_p1(final @NonNull Connection jm_TC__mapHelper__Attribute, final /*@NonInvalid*/ @NonNull TC_mapHelper_Attribute trace) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_TC__mapHelper__Attribute_invocation_mapHelper_Cont_p1" + ", " + jm_TC__mapHelper__Attribute + ", " + trace); + } + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OclExpression atl_atlExpression = trace.getAtl_atlExpression(); + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull Helper atl_atlHelper = trace.getAtl_atlHelper(); + final /*@NonInvalid*/ @Nullable TI_mapOclExpression TI_mapOclExpression = OPPOSITE_OF_TI_mapOclExpression_atl_atlExpression.get(atl_atlExpression); + final /*@NonInvalid*/ boolean symbol_0 = TI_mapOclExpression != null; + /*@Thrown*/ @Nullable Boolean raw_when_TI_mapOclExpression; + if (symbol_0) { + if (TI_mapOclExpression == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + // creations + final @SuppressWarnings("null")@NonNull TC_mapHelper_Context where_TC_mapHelper_Context = trace_ATL2QVTrFactory.eINSTANCE.createTC_mapHelper_Context(); + models[0/*middle*/].add(where_TC_mapHelper_Context, false); + // mapping statements + OPPOSITE_OF_TC_mapHelper_Context_atl_atlHelper.put(atl_atlHelper, where_TC_mapHelper_Context); + where_TC_mapHelper_Context.setAtl_atlHelper(atl_atlHelper); + trace.setInvocation_mapHelper_Context(where_TC_mapHelper_Context); + jm_TC__mapHelper__Attribute.appendElement(trace); + final /*@Thrown*/ @Nullable Boolean m_TC__mapHelper__Attribute_invocation_mapHelper_Cont_p1 = ValueUtil.TRUE_VALUE; + raw_when_TI_mapOclExpression = m_TC__mapHelper__Attribute_invocation_mapHelper_Cont_p1; + } + else { + raw_when_TI_mapOclExpression = ValueUtil.FALSE_VALUE; + } + trace.setStatus(raw_when_TI_mapOclExpression); + if (raw_when_TI_mapOclExpression) { + objectManager.assigned(trace, trace_ATL2QVTrPackage.Literals.TI_MAP_HELPER__STATUS, raw_when_TI_mapOclExpression); + } + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((raw_when_TI_mapOclExpression ? "done " : "fail ") + "MAP_m_TC__mapHelper__Attribute_invocation_mapHelper_Cont_p1"); + } + return raw_when_TI_mapOclExpression; + } + + /** + * + * map m_TC__mapHelper__Attribute_qvtr_qvtrFunction_p2 in ATL2QVTr { + * + * guard:middle trace : trace_ATL2QVTr::TC_mapHelper_Attribute[1]; + * check trace.status; + * var atlType : OCL::OclType[1] := trace.atl_atlType; + * var attributeName : String[1] := trace.primitive_attributeName; + * var qvtrTransformation : qvtrelation::RelationalTransformation[1] := trace.qvtr_qvtrTransformation; + * var getType1 : Class[1] := this.getType(atlType); + * contained new:qvtr qvtrFunction : qvtbase::Function[1]; + * set qvtrFunction.name := attributeName; + * set qvtrFunction.owningClass := qvtrTransformation; + * set qvtrFunction.type := getType1; + * set trace.qvtr_qvtrFunction := qvtrFunction; + * + */ + protected boolean MAP_m_TC__mapHelper__Attribute_qvtr_qvtrFunction_p2(final /*@NonInvalid*/ @NonNull TC_mapHelper_Attribute trace_0) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_TC__mapHelper__Attribute_qvtr_qvtrFunction_p2" + ", " + trace_0); + } + final /*@NonInvalid*/ @Nullable Boolean status = trace_0.getStatus(); + if (status == null) { + throw new InvalidEvaluationException("Null if condition"); + } + /*@Thrown*/ @Nullable Boolean symbol_5; + if (status) { + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OclType atl_atlType = trace_0.getAtl_atlType(); + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull String primitive_attributeName = trace_0.getPrimitive_attributeName(); + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull RelationalTransformation qvtr_qvtrTransformation = trace_0.getQvtr_qvtrTransformation(); + final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class getType = ((FUN_getType)FTOR_getType.getUniqueComputation(this, atl_atlType)).instance; + // creations + final @NonNull Function qvtrFunction = QVTbaseFactory.eINSTANCE.createFunction(); + models[2/*qvtr*/].add(qvtrFunction, true); + // mapping statements + qvtrFunction.setName(primitive_attributeName); + qvtrFunction.setOwningClass(qvtr_qvtrTransformation); + qvtrFunction.setType(getType); + trace_0.setQvtr_qvtrFunction(qvtrFunction); + final /*@Thrown*/ @Nullable Boolean m_TC__mapHelper__Attribute_qvtr_qvtrFunction_p2 = ValueUtil.TRUE_VALUE; + symbol_5 = m_TC__mapHelper__Attribute_qvtr_qvtrFunction_p2; + } + else { + symbol_5 = ValueUtil.FALSE_VALUE; + } + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((symbol_5 ? "done " : "fail ") + "MAP_m_TC__mapHelper__Attribute_qvtr_qvtrFunction_p2"); + } + return symbol_5; + } + + /** + * + * map m_TC__mapHelper__Operation_invocation_mapHelper_Cont_p1 in ATL2QVTr { + * guard:middle trace : trace_ATL2QVTr::TC_mapHelper_Operation[1] success status; + * append jm_TC__mapHelper__Operation : trace_ATL2QVTr::TC_mapHelper_Operation[1]; + * var atlExpression : OCL::OclExpression[1] := trace.atl_atlExpression; + * var atlHelper : ATL::Helper[1] := trace.atl_atlHelper; + * var when_TI_mapOclExpression : trace_ATL2QVTr::TI_mapOclExpression[1] := atlExpression.TI_mapOclExpression; + * new:middle where_TC_mapHelper_Context : trace_ATL2QVTr::TC_mapHelper_Context[1]; + * set trace.invocation_mapHelper_Context := where_TC_mapHelper_Context; + * set where_TC_mapHelper_Context.atl_atlHelper := atlHelper; + * add jm_TC__mapHelper__Operation += trace; + * + */ + protected boolean MAP_m_TC__mapHelper__Operation_invocation_mapHelper_Cont_p1(final @NonNull Connection jm_TC__mapHelper__Operation, final /*@NonInvalid*/ @NonNull TC_mapHelper_Operation trace_1) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_TC__mapHelper__Operation_invocation_mapHelper_Cont_p1" + ", " + jm_TC__mapHelper__Operation + ", " + trace_1); + } + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OclExpression atl_atlExpression = trace_1.getAtl_atlExpression(); + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull Helper atl_atlHelper = trace_1.getAtl_atlHelper(); + final /*@NonInvalid*/ @Nullable TI_mapOclExpression TI_mapOclExpression = OPPOSITE_OF_TI_mapOclExpression_atl_atlExpression.get(atl_atlExpression); + final /*@NonInvalid*/ boolean symbol_0 = TI_mapOclExpression != null; + /*@Thrown*/ @Nullable Boolean raw_when_TI_mapOclExpression; + if (symbol_0) { + if (TI_mapOclExpression == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + // creations + final @SuppressWarnings("null")@NonNull TC_mapHelper_Context where_TC_mapHelper_Context = trace_ATL2QVTrFactory.eINSTANCE.createTC_mapHelper_Context(); + models[0/*middle*/].add(where_TC_mapHelper_Context, false); + // mapping statements + trace_1.setInvocation_mapHelper_Context(where_TC_mapHelper_Context); + OPPOSITE_OF_TC_mapHelper_Context_atl_atlHelper.put(atl_atlHelper, where_TC_mapHelper_Context); + where_TC_mapHelper_Context.setAtl_atlHelper(atl_atlHelper); + jm_TC__mapHelper__Operation.appendElement(trace_1); + final /*@Thrown*/ @Nullable Boolean m_TC__mapHelper__Operation_invocation_mapHelper_Cont_p1 = ValueUtil.TRUE_VALUE; + raw_when_TI_mapOclExpression = m_TC__mapHelper__Operation_invocation_mapHelper_Cont_p1; + } + else { + raw_when_TI_mapOclExpression = ValueUtil.FALSE_VALUE; + } + trace_1.setStatus(raw_when_TI_mapOclExpression); + if (raw_when_TI_mapOclExpression) { + objectManager.assigned(trace_1, trace_ATL2QVTrPackage.Literals.TI_MAP_HELPER__STATUS, raw_when_TI_mapOclExpression); + } + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((raw_when_TI_mapOclExpression ? "done " : "fail ") + "MAP_m_TC__mapHelper__Operation_invocation_mapHelper_Cont_p1"); + } + return raw_when_TI_mapOclExpression; + } + + /** + * + * map m_TC__mapHelper__Operation_qvtr_qvtrFunction_p2 in ATL2QVTr { + * + * guard:middle trace : trace_ATL2QVTr::TC_mapHelper_Operation[1]; + * check trace.status; + * var atlType : OCL::OclType[1] := trace.atl_atlType; + * var operationName : String[1] := trace.primitive_operationName; + * var qvtrTransformation : qvtrelation::RelationalTransformation[1] := trace.qvtr_qvtrTransformation; + * var getType1 : Class[1] := this.getType(atlType); + * contained new:qvtr qvtrFunction : qvtbase::Function[1]; + * set qvtrFunction.name := operationName; + * set qvtrFunction.owningClass := qvtrTransformation; + * set qvtrFunction.type := getType1; + * set trace.qvtr_qvtrFunction := qvtrFunction; + * + */ + protected boolean MAP_m_TC__mapHelper__Operation_qvtr_qvtrFunction_p2(final /*@NonInvalid*/ @NonNull TC_mapHelper_Operation trace_2) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_TC__mapHelper__Operation_qvtr_qvtrFunction_p2" + ", " + trace_2); + } + final /*@NonInvalid*/ @Nullable Boolean status = trace_2.getStatus(); + if (status == null) { + throw new InvalidEvaluationException("Null if condition"); + } + /*@Thrown*/ @Nullable Boolean symbol_5; + if (status) { + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OclType atl_atlType = trace_2.getAtl_atlType(); + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull String primitive_operationName = trace_2.getPrimitive_operationName(); + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull RelationalTransformation qvtr_qvtrTransformation = trace_2.getQvtr_qvtrTransformation(); + final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class getType = ((FUN_getType)FTOR_getType.getUniqueComputation(this, atl_atlType)).instance; + // creations + final @NonNull Function qvtrFunction = QVTbaseFactory.eINSTANCE.createFunction(); + models[2/*qvtr*/].add(qvtrFunction, true); + // mapping statements + qvtrFunction.setName(primitive_operationName); + qvtrFunction.setOwningClass(qvtr_qvtrTransformation); + qvtrFunction.setType(getType); + trace_2.setQvtr_qvtrFunction(qvtrFunction); + final /*@Thrown*/ @Nullable Boolean m_TC__mapHelper__Operation_qvtr_qvtrFunction_p2 = ValueUtil.TRUE_VALUE; + symbol_5 = m_TC__mapHelper__Operation_qvtr_qvtrFunction_p2; + } + else { + symbol_5 = ValueUtil.FALSE_VALUE; + } + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((symbol_5 ? "done " : "fail ") + "MAP_m_TC__mapHelper__Operation_qvtr_qvtrFunction_p2"); + } + return symbol_5; + } + + /** + * + * map m_TC__mapHelper__Attribute__TC_mapHelper_Context_qvt_p4 in ATL2QVTr { + * guard:middle trace : trace_ATL2QVTr::TC_mapHelper_Attribute[1]; + * check trace.status; + * var where_TC_mapHelper_Context : trace_ATL2QVTr::TC_mapHelper_Context[1] := trace.invocation_mapHelper_Context; + * var qvtrFunction : qvtbase::Function[1] := trace.qvtr_qvtrFunction; + * set where_TC_mapHelper_Context.qvtr_qvtrFunction := qvtrFunction; + * + */ + protected boolean MAP_m_TC__mapHelper__Attribute__TC_mapHelper_Context_qvt_p4(final /*@NonInvalid*/ @NonNull TC_mapHelper_Attribute trace_3) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_TC__mapHelper__Attribute__TC_mapHelper_Context_qvt_p4" + ", " + trace_3); + } + final /*@NonInvalid*/ @Nullable Boolean status = trace_3.getStatus(); + if (status == null) { + throw new InvalidEvaluationException("Null if condition"); + } + /*@Thrown*/ @Nullable Boolean symbol_3; + if (status) { + final /*@NonInvalid*/ @Nullable TC_mapHelper_Context invocation_mapHelper_Context = trace_3.getInvocation_mapHelper_Context(); + final /*@NonInvalid*/ boolean symbol_0 = invocation_mapHelper_Context != null; + /*@Thrown*/ @Nullable Boolean raw_where_TC_mapHelper_Context; + if (symbol_0) { + if (invocation_mapHelper_Context == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull Function qvtr_qvtrFunction = trace_3.getQvtr_qvtrFunction(); + // mapping statements + invocation_mapHelper_Context.setQvtr_qvtrFunction(qvtr_qvtrFunction); + final /*@Thrown*/ @Nullable Boolean m_TC__mapHelper__Attribute__TC_mapHelper_Context_qvt_p4 = ValueUtil.TRUE_VALUE; + raw_where_TC_mapHelper_Context = m_TC__mapHelper__Attribute__TC_mapHelper_Context_qvt_p4; + } + else { + raw_where_TC_mapHelper_Context = ValueUtil.FALSE_VALUE; + } + symbol_3 = raw_where_TC_mapHelper_Context; + } + else { + symbol_3 = ValueUtil.FALSE_VALUE; + } + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((symbol_3 ? "done " : "fail ") + "MAP_m_TC__mapHelper__Attribute__TC_mapHelper_Context_qvt_p4"); + } + return symbol_3; + } + + /** + * + * map m_TC__mapHelper__Operation__TC_mapHelper_Context_qvt_p4 in ATL2QVTr { + * guard:middle trace : trace_ATL2QVTr::TC_mapHelper_Operation[1]; + * check trace.status; + * var where_TC_mapHelper_Context : trace_ATL2QVTr::TC_mapHelper_Context[1] := trace.invocation_mapHelper_Context; + * var qvtrFunction : qvtbase::Function[1] := trace.qvtr_qvtrFunction; + * set where_TC_mapHelper_Context.qvtr_qvtrFunction := qvtrFunction; + * + */ + protected boolean MAP_m_TC__mapHelper__Operation__TC_mapHelper_Context_qvt_p4(final /*@NonInvalid*/ @NonNull TC_mapHelper_Operation trace_4) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_TC__mapHelper__Operation__TC_mapHelper_Context_qvt_p4" + ", " + trace_4); + } + final /*@NonInvalid*/ @Nullable Boolean status = trace_4.getStatus(); + if (status == null) { + throw new InvalidEvaluationException("Null if condition"); + } + /*@Thrown*/ @Nullable Boolean symbol_3; + if (status) { + final /*@NonInvalid*/ @Nullable TC_mapHelper_Context invocation_mapHelper_Context = trace_4.getInvocation_mapHelper_Context(); + final /*@NonInvalid*/ boolean symbol_0 = invocation_mapHelper_Context != null; + /*@Thrown*/ @Nullable Boolean raw_where_TC_mapHelper_Context; + if (symbol_0) { + if (invocation_mapHelper_Context == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull Function qvtr_qvtrFunction = trace_4.getQvtr_qvtrFunction(); + // mapping statements + invocation_mapHelper_Context.setQvtr_qvtrFunction(qvtr_qvtrFunction); + final /*@Thrown*/ @Nullable Boolean m_TC__mapHelper__Operation__TC_mapHelper_Context_qvt_p4 = ValueUtil.TRUE_VALUE; + raw_where_TC_mapHelper_Context = m_TC__mapHelper__Operation__TC_mapHelper_Context_qvt_p4; + } + else { + raw_where_TC_mapHelper_Context = ValueUtil.FALSE_VALUE; + } + symbol_3 = raw_where_TC_mapHelper_Context; + } + else { + symbol_3 = ValueUtil.FALSE_VALUE; + } + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((symbol_3 ? "done " : "fail ") + "MAP_m_TC__mapHelper__Operation__TC_mapHelper_Context_qvt_p4"); + } + return symbol_3; + } + + /** + * + * map m_TC__mapHelper__Context_atl_atlContext_atl_atlDefin in ATL2QVTr { + * + * guard:atl atlContext : OCL::OclContextDefinition[1]; + * var atlReturnType : OCL::OclType[1] := atlContext.context_; + * var atlDefinition : OCL::OclFeatureDefinition[1] := atlContext.definition; + * var atlHelper : ATL::Helper[1] := atlDefinition.Helper; + * var trace : trace_ATL2QVTr::TC_mapHelper_Context[1] := atlHelper.TC_mapHelper_Context; + * var qvtrFunction : qvtbase::Function[1] := trace.qvtr_qvtrFunction; + * var getType1 : Class[1] := this.getType(atlReturnType); + * new:qvtr qvtrParameter : qvtbase::FunctionParameter[1]; + * new:middle where_TC_mapVariable : trace_ATL2QVTr::TC_mapVariable[1]; + * set qvtrParameter.name := 'self'; + * set qvtrFunction.ownedParameters := qvtrParameter; + * set qvtrParameter.type := getType1; + * set trace.atl_atlContext := atlContext; + * set trace.atl_atlDefinition := atlDefinition; + * set trace.atl_atlReturnType := atlReturnType; + * set trace.invocation_mapVariable := where_TC_mapVariable; + * set trace.qvtr_qvtrParameter := qvtrParameter; + * set where_TC_mapVariable.atl_atlVariable := atlHelper; + * set where_TC_mapVariable.qvtr_qvtrVariable := qvtrParameter; + * + */ + protected boolean MAP_m_TC__mapHelper__Context_atl_atlContext_atl_atlDefin(final /*@NonInvalid*/ @NonNull OclContextDefinition atlContext) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_TC__mapHelper__Context_atl_atlContext_atl_atlDefin" + ", " + atlContext); + } + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OclType context_ = atlContext.getContext_(); + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OclFeatureDefinition definition = atlContext.getDefinition(); + final /*@NonInvalid*/ @NonNull UnboxedCompositionProperty IMPPROPid_definition = new UnboxedCompositionProperty(PROPid_definition); + final /*@NonInvalid*/ @Nullable Helper Helper = (Helper)IMPPROPid_definition.evaluate(executor, CLSSid_Helper, definition); + final /*@NonInvalid*/ boolean symbol_0 = Helper != null; + /*@Thrown*/ @Nullable Boolean raw_atlHelper; + if (symbol_0) { + if (Helper == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + final /*@Thrown*/ @Nullable TC_mapHelper_Context TC_mapHelper_Context = OPPOSITE_OF_TC_mapHelper_Context_atl_atlHelper.get(Helper); + final /*@Thrown*/ boolean symbol_1 = TC_mapHelper_Context != null; + /*@Thrown*/ @Nullable Boolean raw_trace; + if (symbol_1) { + if (TC_mapHelper_Context == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + @SuppressWarnings("null") + final /*@Thrown*/ @NonNull Function qvtr_qvtrFunction = TC_mapHelper_Context.getQvtr_qvtrFunction(); + final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class getType = ((FUN_getType)FTOR_getType.getUniqueComputation(this, context_)).instance; + // creations + final @NonNull FunctionParameter qvtrParameter = QVTbaseFactory.eINSTANCE.createFunctionParameter(); + models[2/*qvtr*/].add(qvtrParameter, false); + final @SuppressWarnings("null")@NonNull TC_mapVariable where_TC_mapVariable = trace_ATL2QVTrFactory.eINSTANCE.createTC_mapVariable(); + models[0/*middle*/].add(where_TC_mapVariable, false); + // mapping statements + qvtrParameter.setName(STR_self); + qvtr_qvtrFunction.getOwnedParameters().add(qvtrParameter); + qvtrParameter.setType(getType); + TC_mapHelper_Context.setAtl_atlContext(atlContext); + TC_mapHelper_Context.setAtl_atlDefinition(definition); + TC_mapHelper_Context.setAtl_atlReturnType(context_); + TC_mapHelper_Context.setInvocation_mapVariable(where_TC_mapVariable); + TC_mapHelper_Context.setQvtr_qvtrParameter(qvtrParameter); + OPPOSITE_OF_TC_mapVariable_atl_atlVariable.put(Helper, where_TC_mapVariable); + where_TC_mapVariable.setAtl_atlVariable(Helper); + where_TC_mapVariable.setQvtr_qvtrVariable(qvtrParameter); + final /*@Thrown*/ @Nullable Boolean m_TC__mapHelper__Context_atl_atlContext_atl_atlDefin = ValueUtil.TRUE_VALUE; + raw_trace = m_TC__mapHelper__Context_atl_atlContext_atl_atlDefin; + } + else { + raw_trace = ValueUtil.FALSE_VALUE; + } + raw_atlHelper = raw_trace; + } + else { + raw_atlHelper = ValueUtil.FALSE_VALUE; + } + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((raw_atlHelper ? "done " : "fail ") + "MAP_m_TC__mapHelper__Context_atl_atlContext_atl_atlDefin"); + } + return raw_atlHelper; + } + + /** + * + * map m_TC__mapIfExp_status_p1 in ATL2QVTr { + * guard:middle trace : trace_ATL2QVTr::TC_mapIfExp[1] success status; + * append jm_TC__mapIfExp : trace_ATL2QVTr::TC_mapIfExp[1]; + * var atlCondition : OCL::OclExpression[1] := trace.atl_atlCondition; + * var atlElse : OCL::OclExpression[1] := trace.atl_atlElse; + * var atlThen : OCL::OclExpression[1] := trace.atl_atlThen; + * var when_TI_mapOclExpression : trace_ATL2QVTr::TI_mapOclExpression[1] := atlCondition.TI_mapOclExpression; + * var when_TI_mapOclExpression_1 : trace_ATL2QVTr::TI_mapOclExpression[1] := atlElse.TI_mapOclExpression; + * var when_TI_mapOclExpression_0 : trace_ATL2QVTr::TI_mapOclExpression[1] := atlThen.TI_mapOclExpression; + * add jm_TC__mapIfExp += trace; + * + */ + protected boolean MAP_m_TC__mapIfExp_status_p1(final @NonNull Connection jm_TC__mapIfExp, final /*@NonInvalid*/ @NonNull TC_mapIfExp trace_5) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_TC__mapIfExp_status_p1" + ", " + jm_TC__mapIfExp + ", " + trace_5); + } + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OclExpression atl_atlCondition = trace_5.getAtl_atlCondition(); + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OclExpression atl_atlElse = trace_5.getAtl_atlElse(); + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OclExpression atl_atlThen = trace_5.getAtl_atlThen(); + final /*@NonInvalid*/ @Nullable TI_mapOclExpression TI_mapOclExpression = OPPOSITE_OF_TI_mapOclExpression_atl_atlExpression.get(atl_atlCondition); + final /*@NonInvalid*/ boolean symbol_0 = TI_mapOclExpression != null; + /*@Thrown*/ @Nullable Boolean raw_when_TI_mapOclExpression; + if (symbol_0) { + if (TI_mapOclExpression == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + final /*@NonInvalid*/ @Nullable TI_mapOclExpression TI_mapOclExpression_0 = OPPOSITE_OF_TI_mapOclExpression_atl_atlExpression.get(atl_atlElse); + final /*@NonInvalid*/ boolean symbol_1 = TI_mapOclExpression_0 != null; + /*@Thrown*/ @Nullable Boolean raw_when_TI_mapOclExpression_1; + if (symbol_1) { + if (TI_mapOclExpression_0 == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + final /*@NonInvalid*/ @Nullable TI_mapOclExpression TI_mapOclExpression_1 = OPPOSITE_OF_TI_mapOclExpression_atl_atlExpression.get(atl_atlThen); + final /*@NonInvalid*/ boolean symbol_2 = TI_mapOclExpression_1 != null; + /*@Thrown*/ @Nullable Boolean raw_when_TI_mapOclExpression_0; + if (symbol_2) { + if (TI_mapOclExpression_1 == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + // mapping statements + jm_TC__mapIfExp.appendElement(trace_5); + final /*@Thrown*/ @Nullable Boolean m_TC__mapIfExp_status_p1 = ValueUtil.TRUE_VALUE; + raw_when_TI_mapOclExpression_0 = m_TC__mapIfExp_status_p1; + } + else { + raw_when_TI_mapOclExpression_0 = ValueUtil.FALSE_VALUE; + } + raw_when_TI_mapOclExpression_1 = raw_when_TI_mapOclExpression_0; + } + else { + raw_when_TI_mapOclExpression_1 = ValueUtil.FALSE_VALUE; + } + raw_when_TI_mapOclExpression = raw_when_TI_mapOclExpression_1; + } + else { + raw_when_TI_mapOclExpression = ValueUtil.FALSE_VALUE; + } + trace_5.setStatus(raw_when_TI_mapOclExpression); + if (raw_when_TI_mapOclExpression) { + objectManager.assigned(trace_5, trace_ATL2QVTrPackage.Literals.TI_MAP_OCL_EXPRESSION__STATUS, raw_when_TI_mapOclExpression); + } + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((raw_when_TI_mapOclExpression ? "done " : "fail ") + "MAP_m_TC__mapIfExp_status_p1"); + } + return raw_when_TI_mapOclExpression; + } + + /** + * + * map m_TC__mapIfExp_qvtr_qvtrExpression_p2 in ATL2QVTr { + * guard:middle trace : trace_ATL2QVTr::TC_mapIfExp[1]; + * check trace.status; + * new:qvtr qvtrExpression : IfExp[1]; + * set trace.qvtr_qvtrExpression := qvtrExpression; + * + */ + protected boolean MAP_m_TC__mapIfExp_qvtr_qvtrExpression_p2(final /*@NonInvalid*/ @NonNull TC_mapIfExp trace_6) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_TC__mapIfExp_qvtr_qvtrExpression_p2" + ", " + trace_6); + } + final /*@NonInvalid*/ @Nullable Boolean status = trace_6.getStatus(); + if (status == null) { + throw new InvalidEvaluationException("Null if condition"); + } + /*@Thrown*/ @Nullable Boolean symbol_2; + if (status) { + // creations + final org.eclipse.ocl.pivot.@NonNull IfExp qvtrExpression = PivotFactory.eINSTANCE.createIfExp(); + models[2/*qvtr*/].add(qvtrExpression, false); + // mapping statements + trace_6.setQvtr_qvtrExpression(qvtrExpression); + final /*@Thrown*/ @Nullable Boolean m_TC__mapIfExp_qvtr_qvtrExpression_p2 = ValueUtil.TRUE_VALUE; + symbol_2 = m_TC__mapIfExp_qvtr_qvtrExpression_p2; + } + else { + symbol_2 = ValueUtil.FALSE_VALUE; + } + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((symbol_2 ? "done " : "fail ") + "MAP_m_TC__mapIfExp_qvtr_qvtrExpression_p2"); + } + return symbol_2; + } + + /** + * + * map m_TC__mapNavigationOrAttributeCallExp__Helper_qvtr_q_p1 in ATL2QVTr { + * + * guard:middle trace : trace_ATL2QVTr::TC_mapNavigationOrAttributeCallExp_Helper[1] success status; + * append jm_TC__mapNavigationOrAttributeCallExp__Helper : trace_ATL2QVTr::TC_mapNavigationOrAttributeCallExp_Helper[1]; + * check var atlExpression : OCL::NavigationOrAttributeCallExp[1] := trace.atl_atlExpression; + * var _'\u00ABselect\u00BB' : Sequence(OCL::Attribute) := trace.atl_atlAttributes; + * var _'\u00ABany\u00BB' : OCL::Attribute[?] := _'\u00ABselect\u00BB'->any(_'1__2' | true) + * ; + * var definition : OCL::OclFeatureDefinition[?] := _'\u00ABany\u00BB'?.definition; + * var Helper1 : ATL::Helper[?] := definition?.Helper; + * check var when_TI_mapHelper_Attribute : trace_ATL2QVTr::TI_mapHelper_Attribute[1] := Helper1?.TI_mapHelper; + * var atlModule : ATL::Module[1] := trace.atl_atlModule; + * var atlSource : OCL::OclExpression[1] := trace.atl_atlSource; + * var propertyName : String[1] := trace.primitive_propertyName; + * var elements : OrderedSet(ATL::ModuleElement) := atlModule.elements; + * var when_TC_mapModule : trace_ATL2QVTr::TC_mapModule[1] := atlModule.TC_mapModule; + * var when_TI_mapOclExpression : trace_ATL2QVTr::TI_mapOclExpression[1] := atlSource.TI_mapOclExpression; + * var qvtrTransformation : qvtrelation::RelationalTransformation[1] := when_TC_mapModule.qvtr_qvtrTransformation; + * var qvtrThisVariable : Variable[?] := qvtrTransformation.ownedContext; + * var name : String[?] := qvtrThisVariable?.name; + * var type : Type[?] := qvtrThisVariable?.type; + * var selectByKind : OrderedSet(ATL::Helper) := elements->selectByKind(ATL::Helper) + * ; + * var qvtrOperation : Operation[1] := when_TI_mapHelper_Attribute.qvtr_qvtrFunction; + * var type1 : Type[?] := qvtrOperation.type; + * var _'\u00ABcollect\u00BB' : Sequence(OCL::OclFeatureDefinition) := selectByKind->collect(_'1_' | _'1_'.definition) + * ; + * var selectByKind1 : Sequence(OCL::Attribute) := _'\u00ABcollect\u00BB'->collect(_'1__0' | _'1__0'.feature) + * ->selectByKind(OCL::Attribute) + * ; + * var _'\u00ABcollect\u00BB1' : Sequence(OCL::OclFeature) := _'\u00ABcollect\u00BB'->collect(_'1__0' | _'1__0'.feature); + * contained new:qvtr qvtrSource : VariableExp[1]; + * set qvtrSource.name := name; + * set qvtrSource.referredVariable := qvtrThisVariable; + * notify set qvtrSource.type := type; + * set trace.qvtr_qvtrOperation := qvtrOperation; + * set trace.qvtr_qvtrSource := qvtrSource; + * set trace.qvtr_qvtrThisVariable := qvtrThisVariable; + * set trace.qvtr_qvtrTransformation := qvtrTransformation; + * add jm_TC__mapNavigationOrAttributeCallExp__Helper += trace; + * + */ + protected boolean MAP_m_TC__mapNavigationOrAttributeCallExp__Helper_qvtr_q_p1(final @NonNull Connection jm_TC__mapNavigationOrAttributeCallExp__Helper, final /*@NonInvalid*/ @NonNull TC_mapNavigationOrAttributeCallExp_Helper trace_7) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_TC__mapNavigationOrAttributeCallExp__Helper_qvtr_q_p1" + ", " + jm_TC__mapNavigationOrAttributeCallExp__Helper + ", " + trace_7); + } + final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver(); + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OclExpression temp1_atlExpression = trace_7.getAtl_atlExpression(); + final /*@NonInvalid*/ boolean symbol_0 = temp1_atlExpression instanceof NavigationOrAttributeCallExp; + /*@Thrown*/ @Nullable Boolean symbol_16; + if (symbol_0) { + final /*@NonInvalid*/ @NonNull NavigationOrAttributeCallExp symbol_1 = (NavigationOrAttributeCallExp)temp1_atlExpression; + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull List<Attribute> atl_atlAttributes = trace_7.getAtl_atlAttributes(); + final /*@NonInvalid*/ @NonNull SequenceValue BOXED_atl_atlAttributes = idResolver.createSequenceOfAll(SEQ_CLSSid_Attribute, atl_atlAttributes); + @NonNull Iterator<Object> ITERATOR__49___2 = BOXED_atl_atlAttributes.iterator(); + /*@Thrown*/ @Nullable Attribute any; + while (true) { + if (!ITERATOR__49___2.hasNext()) { + throw new InvalidValueException("No matching content for 'any'"); + } + @SuppressWarnings("null") + /*@NonInvalid*/ @NonNull Attribute _49___2 = (Attribute)ITERATOR__49___2.next(); + /** + * true + */ + // + if (ValueUtil.TRUE_VALUE != ValueUtil.FALSE_VALUE) { // Carry on till something found + any = _49___2; + break; + } + } + /*@Caught*/ @Nullable Object CAUGHT_any; + try { + CAUGHT_any = any; + } + catch (Exception e) { + CAUGHT_any = ValueUtil.createInvalidValue(e); + } + final /*@NonInvalid*/ @NonNull Object definition = CAUGHT_any == null; + /*@Thrown*/ @Nullable OclFeatureDefinition safe_definition_source; + if (definition == Boolean.TRUE) { + safe_definition_source = null; + } + else { + assert any != null; + final /*@Thrown*/ @Nullable OclFeatureDefinition definition_0 = any.getDefinition(); + safe_definition_source = definition_0; + } + /*@Caught*/ @Nullable Object CAUGHT_safe_definition_source; + try { + CAUGHT_safe_definition_source = safe_definition_source; + } + catch (Exception e) { + CAUGHT_safe_definition_source = ValueUtil.createInvalidValue(e); + } + final /*@NonInvalid*/ @NonNull Object Helper = CAUGHT_safe_definition_source == null; + /*@Thrown*/ @Nullable Helper safe_definition_source_0; + if (Helper == Boolean.TRUE) { + safe_definition_source_0 = null; + } + else { + final /*@NonInvalid*/ @NonNull UnboxedCompositionProperty IMPPROPid_definition = new UnboxedCompositionProperty(PROPid_definition); + assert safe_definition_source != null; + final /*@Thrown*/ @Nullable Helper Helper_0 = (Helper)IMPPROPid_definition.evaluate(executor, CLSSid_Helper, safe_definition_source); + safe_definition_source_0 = Helper_0; + } + /*@Caught*/ @Nullable Object CAUGHT_safe_definition_source_0; + try { + CAUGHT_safe_definition_source_0 = safe_definition_source_0; + } + catch (Exception e) { + CAUGHT_safe_definition_source_0 = ValueUtil.createInvalidValue(e); + } + final /*@NonInvalid*/ @NonNull Object TI_mapHelper = CAUGHT_safe_definition_source_0 == null; + /*@Thrown*/ @Nullable TI_mapHelper safe_atl_atlHelper_source; + if (TI_mapHelper == Boolean.TRUE) { + safe_atl_atlHelper_source = null; + } + else { + assert safe_definition_source_0 != null; + final /*@Thrown*/ @Nullable TI_mapHelper TI_mapHelper_0 = OPPOSITE_OF_TI_mapHelper_atl_atlHelper.get(safe_definition_source_0); + safe_atl_atlHelper_source = TI_mapHelper_0; + } + final /*@NonInvalid*/ boolean symbol_2 = safe_atl_atlHelper_source instanceof TI_mapHelper_Attribute; + /*@Thrown*/ @Nullable Boolean symbol_15; + if (symbol_2) { + final /*@Thrown*/ @Nullable TI_mapHelper_Attribute symbol_3 = (TI_mapHelper_Attribute)safe_atl_atlHelper_source; + if (symbol_3 == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull Module atl_atlModule = trace_7.getAtl_atlModule(); + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OclExpression atl_atlSource = trace_7.getAtl_atlSource(); + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull String primitive_propertyName = trace_7.getPrimitive_propertyName(); + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull List<ModuleElement> elements = atl_atlModule.getElements(); + final /*@NonInvalid*/ @Nullable TC_mapModule TC_mapModule = OPPOSITE_OF_TC_mapModule_atl_atlModule.get(atl_atlModule); + final /*@NonInvalid*/ boolean symbol_4 = TC_mapModule != null; + /*@Thrown*/ @Nullable Boolean raw_when_TC_mapModule; + if (symbol_4) { + if (TC_mapModule == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + final /*@NonInvalid*/ @Nullable TI_mapOclExpression TI_mapOclExpression = OPPOSITE_OF_TI_mapOclExpression_atl_atlExpression.get(atl_atlSource); + final /*@NonInvalid*/ boolean symbol_5 = TI_mapOclExpression != null; + /*@Thrown*/ @Nullable Boolean raw_when_TI_mapOclExpression; + if (symbol_5) { + if (TI_mapOclExpression == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + @SuppressWarnings("null") + final /*@Thrown*/ @NonNull RelationalTransformation qvtr_qvtrTransformation = TC_mapModule.getQvtr_qvtrTransformation(); + final /*@Thrown*/ @Nullable Variable ownedContext = qvtr_qvtrTransformation.getOwnedContext(); + /*@Caught*/ @Nullable Object CAUGHT_ownedContext; + try { + CAUGHT_ownedContext = ownedContext; + } + catch (Exception e) { + CAUGHT_ownedContext = ValueUtil.createInvalidValue(e); + } + final /*@NonInvalid*/ @NonNull Object name_2 = CAUGHT_ownedContext == null; + /*@Thrown*/ @Nullable String safe_name_source; + if (name_2 == Boolean.TRUE) { + safe_name_source = null; + } + else { + assert ownedContext != null; + final /*@Thrown*/ @Nullable String name_3 = ownedContext.getName(); + safe_name_source = name_3; + } + /*@Caught*/ @Nullable Object CAUGHT_ownedContext_0; + try { + CAUGHT_ownedContext_0 = ownedContext; + } + catch (Exception e) { + CAUGHT_ownedContext_0 = ValueUtil.createInvalidValue(e); + } + final /*@NonInvalid*/ @NonNull Object type_2 = CAUGHT_ownedContext_0 == null; + /*@Thrown*/ @Nullable Type safe_type_source; + if (type_2 == Boolean.TRUE) { + safe_type_source = null; + } + else { + assert ownedContext != null; + final /*@Thrown*/ @Nullable Type type_3 = ownedContext.getType(); + safe_type_source = type_3; + } + final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_ATL_c_c_Helper_0 = idResolver.getClass(CLSSid_Helper, null); + final /*@NonInvalid*/ @NonNull OrderedSetValue BOXED_elements = idResolver.createOrderedSetOfAll(ORD_CLSSid_ModuleElement, elements); + final /*@NonInvalid*/ @NonNull OrderedSetValue selectByKind = (OrderedSetValue)CollectionSelectByKindOperation.INSTANCE.evaluate(executor, BOXED_elements, TYP_ATL_c_c_Helper_0); + @SuppressWarnings("null") + final /*@Thrown*/ @NonNull Function qvtr_qvtrFunction = symbol_3.getQvtr_qvtrFunction(); + final /*@Thrown*/ @Nullable Type type_4 = qvtr_qvtrFunction.getType(); + /*@Thrown*/ SequenceValue.@NonNull Accumulator accumulator = ValueUtil.createSequenceAccumulatorValue(SEQ_CLSSid_OclFeatureDefinition); + @NonNull Iterator<Object> ITERATOR__1 = selectByKind.iterator(); + /*@NonInvalid*/ @NonNull SequenceValue collect; + while (true) { + if (!ITERATOR__1.hasNext()) { + collect = accumulator; + break; + } + @SuppressWarnings("null") + /*@NonInvalid*/ @NonNull Helper _1 = (Helper)ITERATOR__1.next(); + /** + * _'1_'.definition + */ + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OclFeatureDefinition definition_1 = _1.getDefinition(); + // + accumulator.add(definition_1); + } + final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_OCL_c_c_Attribute_0 = idResolver.getClass(CLSSid_Attribute, null); + /*@Thrown*/ SequenceValue.@NonNull Accumulator accumulator_0 = ValueUtil.createSequenceAccumulatorValue(SEQ_CLSSid_OclFeature); + @NonNull Iterator<Object> ITERATOR__49___0_0 = collect.iterator(); + /*@NonInvalid*/ @NonNull SequenceValue collect_1; + while (true) { + if (!ITERATOR__49___0_0.hasNext()) { + collect_1 = accumulator_0; + break; + } + @SuppressWarnings("null") + /*@NonInvalid*/ @NonNull OclFeatureDefinition _49___0_0 = (OclFeatureDefinition)ITERATOR__49___0_0.next(); + /** + * _'1__0'.feature + */ + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OclFeature feature_0 = _49___0_0.getFeature(); + // + accumulator_0.add(feature_0); + } + final /*@NonInvalid*/ @NonNull SequenceValue selectByKind_0 = (SequenceValue)CollectionSelectByKindOperation.INSTANCE.evaluate(executor, collect_1, TYP_OCL_c_c_Attribute_0); + // creations + final org.eclipse.ocl.pivot.@NonNull VariableExp qvtrSource = PivotFactory.eINSTANCE.createVariableExp(); + models[2/*qvtr*/].add(qvtrSource, true); + // mapping statements + qvtrSource.setName(safe_name_source); + qvtrSource.setReferredVariable(ownedContext); + qvtrSource.setType(safe_type_source); + objectManager.assigned(qvtrSource, PivotPackage.Literals.TYPED_ELEMENT__TYPE, safe_type_source); + trace_7.setQvtr_qvtrOperation(qvtr_qvtrFunction); + trace_7.setQvtr_qvtrSource(qvtrSource); + trace_7.setQvtr_qvtrThisVariable(ownedContext); + trace_7.setQvtr_qvtrTransformation(qvtr_qvtrTransformation); + jm_TC__mapNavigationOrAttributeCallExp__Helper.appendElement(trace_7); + final /*@Thrown*/ @Nullable Boolean m_TC__mapNavigationOrAttributeCallExp__Helper_qvtr_q_p1 = ValueUtil.TRUE_VALUE; + raw_when_TI_mapOclExpression = m_TC__mapNavigationOrAttributeCallExp__Helper_qvtr_q_p1; + } + else { + raw_when_TI_mapOclExpression = ValueUtil.FALSE_VALUE; + } + raw_when_TC_mapModule = raw_when_TI_mapOclExpression; + } + else { + raw_when_TC_mapModule = ValueUtil.FALSE_VALUE; + } + symbol_15 = raw_when_TC_mapModule; + } + else { + symbol_15 = ValueUtil.FALSE_VALUE; + } + symbol_16 = symbol_15; + } + else { + symbol_16 = ValueUtil.FALSE_VALUE; + } + trace_7.setStatus(symbol_16); + if (symbol_16) { + objectManager.assigned(trace_7, trace_ATL2QVTrPackage.Literals.TI_MAP_OCL_EXPRESSION__STATUS, symbol_16); + } + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((symbol_16 ? "done " : "fail ") + "MAP_m_TC__mapNavigationOrAttributeCallExp__Helper_qvtr_q_p1"); + } + return symbol_16; + } + + /** + * + * map m_TC__mapNavigationOrAttributeCallExp__Helper_qvtr_q_p2 in ATL2QVTr { + * guard:middle trace : trace_ATL2QVTr::TC_mapNavigationOrAttributeCallExp_Helper[1]; + * check trace.status; + * var propertyName : String[1] := trace.primitive_propertyName; + * var qvtrOperation : Operation[1] := trace.qvtr_qvtrOperation; + * var type : Type[?] := qvtrOperation.type; + * new:qvtr qvtrExpression : OperationCallExp[1]; + * set qvtrExpression.name := propertyName; + * set trace.qvtr_qvtrExpression := qvtrExpression; + * set qvtrExpression.referredOperation := qvtrOperation; + * notify set qvtrExpression.type := type; + * + */ + protected boolean MAP_m_TC__mapNavigationOrAttributeCallExp__Helper_qvtr_q_p2(final /*@NonInvalid*/ @NonNull TC_mapNavigationOrAttributeCallExp_Helper trace_8) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_TC__mapNavigationOrAttributeCallExp__Helper_qvtr_q_p2" + ", " + trace_8); + } + final /*@NonInvalid*/ @Nullable Boolean status = trace_8.getStatus(); + if (status == null) { + throw new InvalidEvaluationException("Null if condition"); + } + /*@Thrown*/ @Nullable Boolean symbol_5; + if (status) { + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull String primitive_propertyName = trace_8.getPrimitive_propertyName(); + @SuppressWarnings("null") + final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Operation qvtr_qvtrOperation = trace_8.getQvtr_qvtrOperation(); + final /*@NonInvalid*/ @Nullable Type type_2 = qvtr_qvtrOperation.getType(); + // creations + final org.eclipse.ocl.pivot.@NonNull OperationCallExp qvtrExpression = PivotFactory.eINSTANCE.createOperationCallExp(); + models[2/*qvtr*/].add(qvtrExpression, false); + // mapping statements + qvtrExpression.setName(primitive_propertyName); + trace_8.setQvtr_qvtrExpression(qvtrExpression); + qvtrExpression.setReferredOperation(qvtr_qvtrOperation); + qvtrExpression.setType(type_2); + objectManager.assigned(qvtrExpression, PivotPackage.Literals.TYPED_ELEMENT__TYPE, type_2); + final /*@Thrown*/ @Nullable Boolean m_TC__mapNavigationOrAttributeCallExp__Helper_qvtr_q_p2 = ValueUtil.TRUE_VALUE; + symbol_5 = m_TC__mapNavigationOrAttributeCallExp__Helper_qvtr_q_p2; + } + else { + symbol_5 = ValueUtil.FALSE_VALUE; + } + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((symbol_5 ? "done " : "fail ") + "MAP_m_TC__mapNavigationOrAttributeCallExp__Helper_qvtr_q_p2"); + } + return symbol_5; + } + + /** + * + * map m_TC__mapNavigationOrAttributeCallExp__Property_stat_p1 in ATL2QVTr { + * guard:middle trace : trace_ATL2QVTr::TC_mapNavigationOrAttributeCallExp_Property[1] success status; + * append jm_TC__mapNavigationOrAttributeCallExp__Property : trace_ATL2QVTr::TC_mapNavigationOrAttributeCallExp_Property[1]; + * var atlSource : OCL::OclExpression[1] := trace.atl_atlSource; + * var when_TI_mapOclExpression : trace_ATL2QVTr::TI_mapOclExpression[1] := atlSource.TI_mapOclExpression; + * add jm_TC__mapNavigationOrAttributeCallExp__Property += trace; + * + */ + protected boolean MAP_m_TC__mapNavigationOrAttributeCallExp__Property_stat_p1(final @NonNull Connection jm_TC__mapNavigationOrAttributeCallExp__Property, final /*@NonInvalid*/ @NonNull TC_mapNavigationOrAttributeCallExp_Property trace_9) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_TC__mapNavigationOrAttributeCallExp__Property_stat_p1" + ", " + jm_TC__mapNavigationOrAttributeCallExp__Property + ", " + trace_9); + } + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OclExpression atl_atlSource = trace_9.getAtl_atlSource(); + final /*@NonInvalid*/ @Nullable TI_mapOclExpression TI_mapOclExpression = OPPOSITE_OF_TI_mapOclExpression_atl_atlExpression.get(atl_atlSource); + final /*@NonInvalid*/ boolean symbol_0 = TI_mapOclExpression != null; + /*@Thrown*/ @Nullable Boolean raw_when_TI_mapOclExpression; + if (symbol_0) { + if (TI_mapOclExpression == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + // mapping statements + jm_TC__mapNavigationOrAttributeCallExp__Property.appendElement(trace_9); + final /*@Thrown*/ @Nullable Boolean m_TC__mapNavigationOrAttributeCallExp__Property_stat_p1 = ValueUtil.TRUE_VALUE; + raw_when_TI_mapOclExpression = m_TC__mapNavigationOrAttributeCallExp__Property_stat_p1; + } + else { + raw_when_TI_mapOclExpression = ValueUtil.FALSE_VALUE; + } + trace_9.setStatus(raw_when_TI_mapOclExpression); + if (raw_when_TI_mapOclExpression) { + objectManager.assigned(trace_9, trace_ATL2QVTrPackage.Literals.TI_MAP_OCL_EXPRESSION__STATUS, raw_when_TI_mapOclExpression); + } + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((raw_when_TI_mapOclExpression ? "done " : "fail ") + "MAP_m_TC__mapNavigationOrAttributeCallExp__Property_stat_p1"); + } + return raw_when_TI_mapOclExpression; + } + + /** + * + * map m_TC__mapNavigationOrAttributeCallExp__Property_qvtr_p2 in ATL2QVTr { + * guard:middle trace : trace_ATL2QVTr::TC_mapNavigationOrAttributeCallExp_Property[1]; + * check trace.status; + * var propertyName : String[1] := trace.primitive_propertyName; + * new:qvtr qvtrExpression : PropertyCallExp[1]; + * set qvtrExpression.name := propertyName; + * set trace.qvtr_qvtrExpression := qvtrExpression; + * + */ + protected boolean MAP_m_TC__mapNavigationOrAttributeCallExp__Property_qvtr_p2(final /*@NonInvalid*/ @NonNull TC_mapNavigationOrAttributeCallExp_Property trace_10) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_TC__mapNavigationOrAttributeCallExp__Property_qvtr_p2" + ", " + trace_10); + } + final /*@NonInvalid*/ @Nullable Boolean status = trace_10.getStatus(); + if (status == null) { + throw new InvalidEvaluationException("Null if condition"); + } + /*@Thrown*/ @Nullable Boolean symbol_3; + if (status) { + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull String primitive_propertyName = trace_10.getPrimitive_propertyName(); + // creations + final @NonNull PropertyCallExp qvtrExpression = PivotFactory.eINSTANCE.createPropertyCallExp(); + models[2/*qvtr*/].add(qvtrExpression, false); + // mapping statements + qvtrExpression.setName(primitive_propertyName); + trace_10.setQvtr_qvtrExpression(qvtrExpression); + final /*@Thrown*/ @Nullable Boolean m_TC__mapNavigationOrAttributeCallExp__Property_qvtr_p2 = ValueUtil.TRUE_VALUE; + symbol_3 = m_TC__mapNavigationOrAttributeCallExp__Property_qvtr_p2; + } + else { + symbol_3 = ValueUtil.FALSE_VALUE; + } + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((symbol_3 ? "done " : "fail ") + "MAP_m_TC__mapNavigationOrAttributeCallExp__Property_qvtr_p2"); + } + return symbol_3; + } + + /** + * + * map m_TC__mapOperationCallExp__Helper_qvtr_qvtrOperation_p1 in ATL2QVTr { + * + * guard:middle trace : trace_ATL2QVTr::TC_mapOperationCallExp_Helper[1] success status; + * append jm_TC__mapOperationCallExp__Helper : trace_ATL2QVTr::TC_mapOperationCallExp_Helper[1]; + * check var atlExpression : OCL::OperationCallExp[1] := trace.atl_atlExpression; + * var _'\u00ABselect\u00BB' : Sequence(OCL::Operation) := trace.atl_atlOperations; + * var _'\u00ABany\u00BB' : OCL::Operation[?] := _'\u00ABselect\u00BB'->any(_'1__2' | true) + * ; + * var definition : OCL::OclFeatureDefinition[?] := _'\u00ABany\u00BB'?.definition; + * var Helper1 : ATL::Helper[?] := definition?.Helper; + * check var when_TI_mapHelper_Operation : trace_ATL2QVTr::TI_mapHelper_Operation[1] := Helper1?.TI_mapHelper; + * var atlModule : ATL::Module[1] := trace.atl_atlModule; + * var atlSource : OCL::OclExpression[1] := trace.atl_atlSource; + * var operationName : String[1] := trace.primitive_operationName; + * var elements : OrderedSet(ATL::ModuleElement) := atlModule.elements; + * var when_TC_mapModule : trace_ATL2QVTr::TC_mapModule[1] := atlModule.TC_mapModule; + * var when_TI_mapOclExpression : trace_ATL2QVTr::TI_mapOclExpression[1] := atlSource.TI_mapOclExpression; + * var qvtrTransformation : qvtrelation::RelationalTransformation[1] := when_TC_mapModule.qvtr_qvtrTransformation; + * var qvtrThisVariable : Variable[?] := qvtrTransformation.ownedContext; + * var name : String[?] := qvtrThisVariable?.name; + * var type : Type[?] := qvtrThisVariable?.type; + * var selectByKind : OrderedSet(ATL::Helper) := elements->selectByKind(ATL::Helper) + * ; + * var qvtrOperation : Operation[1] := when_TI_mapHelper_Operation.qvtr_qvtrFunction; + * var type1 : Type[?] := qvtrOperation.type; + * var _'\u00ABcollect\u00BB' : Sequence(OCL::OclFeatureDefinition) := selectByKind->collect(_'1_' | _'1_'.definition) + * ; + * var selectByKind1 : Sequence(OCL::Operation) := _'\u00ABcollect\u00BB'->collect(_'1__0' | _'1__0'.feature) + * ->selectByKind(OCL::Operation) + * ; + * var _'\u00ABcollect\u00BB1' : Sequence(OCL::OclFeature) := _'\u00ABcollect\u00BB'->collect(_'1__0' | _'1__0'.feature); + * contained new:qvtr qvtrSource : VariableExp[1]; + * set qvtrSource.name := name; + * set trace.qvtr_qvtrOperation := qvtrOperation; + * set trace.qvtr_qvtrSource := qvtrSource; + * set trace.qvtr_qvtrThisVariable := qvtrThisVariable; + * set trace.qvtr_qvtrTransformation := qvtrTransformation; + * set qvtrSource.referredVariable := qvtrThisVariable; + * notify set qvtrSource.type := type; + * add jm_TC__mapOperationCallExp__Helper += trace; + * + */ + protected boolean MAP_m_TC__mapOperationCallExp__Helper_qvtr_qvtrOperation_p1(final @NonNull Connection jm_TC__mapOperationCallExp__Helper, final /*@NonInvalid*/ @NonNull TC_mapOperationCallExp_Helper trace_11) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_TC__mapOperationCallExp__Helper_qvtr_qvtrOperation_p1" + ", " + jm_TC__mapOperationCallExp__Helper + ", " + trace_11); + } + final /*@NonInvalid*/ @NonNull IdResolver idResolver = executor.getIdResolver(); + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OclExpression temp1_atlExpression = trace_11.getAtl_atlExpression(); + final /*@NonInvalid*/ boolean symbol_0 = temp1_atlExpression instanceof org.eclipse.m2m.atl.common.OCL.OperationCallExp; + /*@Thrown*/ @Nullable Boolean symbol_16; + if (symbol_0) { + final /*@NonInvalid*/ org.eclipse.m2m.atl.common.OCL.@NonNull OperationCallExp symbol_1 = (org.eclipse.m2m.atl.common.OCL.OperationCallExp)temp1_atlExpression; + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull List<org.eclipse.m2m.atl.common.OCL.Operation> atl_atlOperations = trace_11.getAtl_atlOperations(); + final /*@NonInvalid*/ @NonNull SequenceValue BOXED_atl_atlOperations = idResolver.createSequenceOfAll(SEQ_CLSSid_Operation, atl_atlOperations); + @NonNull Iterator<Object> ITERATOR__49___2 = BOXED_atl_atlOperations.iterator(); + /*@Thrown*/ org.eclipse.m2m.atl.common.OCL.@Nullable Operation any; + while (true) { + if (!ITERATOR__49___2.hasNext()) { + throw new InvalidValueException("No matching content for 'any'"); + } + @SuppressWarnings("null") + /*@NonInvalid*/ org.eclipse.m2m.atl.common.OCL.@NonNull Operation _49___2 = (org.eclipse.m2m.atl.common.OCL.Operation)ITERATOR__49___2.next(); + /** + * true + */ + // + if (ValueUtil.TRUE_VALUE != ValueUtil.FALSE_VALUE) { // Carry on till something found + any = _49___2; + break; + } + } + /*@Caught*/ @Nullable Object CAUGHT_any; + try { + CAUGHT_any = any; + } + catch (Exception e) { + CAUGHT_any = ValueUtil.createInvalidValue(e); + } + final /*@NonInvalid*/ @NonNull Object definition = CAUGHT_any == null; + /*@Thrown*/ @Nullable OclFeatureDefinition safe_definition_source; + if (definition == Boolean.TRUE) { + safe_definition_source = null; + } + else { + assert any != null; + final /*@Thrown*/ @Nullable OclFeatureDefinition definition_0 = any.getDefinition(); + safe_definition_source = definition_0; + } + /*@Caught*/ @Nullable Object CAUGHT_safe_definition_source; + try { + CAUGHT_safe_definition_source = safe_definition_source; + } + catch (Exception e) { + CAUGHT_safe_definition_source = ValueUtil.createInvalidValue(e); + } + final /*@NonInvalid*/ @NonNull Object Helper = CAUGHT_safe_definition_source == null; + /*@Thrown*/ @Nullable Helper safe_definition_source_0; + if (Helper == Boolean.TRUE) { + safe_definition_source_0 = null; + } + else { + final /*@NonInvalid*/ @NonNull UnboxedCompositionProperty IMPPROPid_definition = new UnboxedCompositionProperty(PROPid_definition); + assert safe_definition_source != null; + final /*@Thrown*/ @Nullable Helper Helper_0 = (Helper)IMPPROPid_definition.evaluate(executor, CLSSid_Helper, safe_definition_source); + safe_definition_source_0 = Helper_0; + } + /*@Caught*/ @Nullable Object CAUGHT_safe_definition_source_0; + try { + CAUGHT_safe_definition_source_0 = safe_definition_source_0; + } + catch (Exception e) { + CAUGHT_safe_definition_source_0 = ValueUtil.createInvalidValue(e); + } + final /*@NonInvalid*/ @NonNull Object TI_mapHelper = CAUGHT_safe_definition_source_0 == null; + /*@Thrown*/ @Nullable TI_mapHelper safe_atl_atlHelper_source; + if (TI_mapHelper == Boolean.TRUE) { + safe_atl_atlHelper_source = null; + } + else { + assert safe_definition_source_0 != null; + final /*@Thrown*/ @Nullable TI_mapHelper TI_mapHelper_0 = OPPOSITE_OF_TI_mapHelper_atl_atlHelper.get(safe_definition_source_0); + safe_atl_atlHelper_source = TI_mapHelper_0; + } + final /*@NonInvalid*/ boolean symbol_2 = safe_atl_atlHelper_source instanceof TI_mapHelper_Operation; + /*@Thrown*/ @Nullable Boolean symbol_15; + if (symbol_2) { + final /*@Thrown*/ @Nullable TI_mapHelper_Operation symbol_3 = (TI_mapHelper_Operation)safe_atl_atlHelper_source; + if (symbol_3 == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull Module atl_atlModule = trace_11.getAtl_atlModule(); + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OclExpression atl_atlSource = trace_11.getAtl_atlSource(); + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull String primitive_operationName = trace_11.getPrimitive_operationName(); + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull List<ModuleElement> elements = atl_atlModule.getElements(); + final /*@NonInvalid*/ @Nullable TC_mapModule TC_mapModule = OPPOSITE_OF_TC_mapModule_atl_atlModule.get(atl_atlModule); + final /*@NonInvalid*/ boolean symbol_4 = TC_mapModule != null; + /*@Thrown*/ @Nullable Boolean raw_when_TC_mapModule; + if (symbol_4) { + if (TC_mapModule == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + final /*@NonInvalid*/ @Nullable TI_mapOclExpression TI_mapOclExpression = OPPOSITE_OF_TI_mapOclExpression_atl_atlExpression.get(atl_atlSource); + final /*@NonInvalid*/ boolean symbol_5 = TI_mapOclExpression != null; + /*@Thrown*/ @Nullable Boolean raw_when_TI_mapOclExpression; + if (symbol_5) { + if (TI_mapOclExpression == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + @SuppressWarnings("null") + final /*@Thrown*/ @NonNull RelationalTransformation qvtr_qvtrTransformation = TC_mapModule.getQvtr_qvtrTransformation(); + final /*@Thrown*/ @Nullable Variable ownedContext = qvtr_qvtrTransformation.getOwnedContext(); + /*@Caught*/ @Nullable Object CAUGHT_ownedContext; + try { + CAUGHT_ownedContext = ownedContext; + } + catch (Exception e) { + CAUGHT_ownedContext = ValueUtil.createInvalidValue(e); + } + final /*@NonInvalid*/ @NonNull Object name_2 = CAUGHT_ownedContext == null; + /*@Thrown*/ @Nullable String safe_name_source; + if (name_2 == Boolean.TRUE) { + safe_name_source = null; + } + else { + assert ownedContext != null; + final /*@Thrown*/ @Nullable String name_3 = ownedContext.getName(); + safe_name_source = name_3; + } + /*@Caught*/ @Nullable Object CAUGHT_ownedContext_0; + try { + CAUGHT_ownedContext_0 = ownedContext; + } + catch (Exception e) { + CAUGHT_ownedContext_0 = ValueUtil.createInvalidValue(e); + } + final /*@NonInvalid*/ @NonNull Object type_2 = CAUGHT_ownedContext_0 == null; + /*@Thrown*/ @Nullable Type safe_type_source; + if (type_2 == Boolean.TRUE) { + safe_type_source = null; + } + else { + assert ownedContext != null; + final /*@Thrown*/ @Nullable Type type_3 = ownedContext.getType(); + safe_type_source = type_3; + } + final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_ATL_c_c_Helper_0 = idResolver.getClass(CLSSid_Helper, null); + final /*@NonInvalid*/ @NonNull OrderedSetValue BOXED_elements = idResolver.createOrderedSetOfAll(ORD_CLSSid_ModuleElement, elements); + final /*@NonInvalid*/ @NonNull OrderedSetValue selectByKind = (OrderedSetValue)CollectionSelectByKindOperation.INSTANCE.evaluate(executor, BOXED_elements, TYP_ATL_c_c_Helper_0); + @SuppressWarnings("null") + final /*@Thrown*/ @NonNull Function qvtr_qvtrFunction = symbol_3.getQvtr_qvtrFunction(); + final /*@Thrown*/ @Nullable Type type_4 = qvtr_qvtrFunction.getType(); + /*@Thrown*/ SequenceValue.@NonNull Accumulator accumulator = ValueUtil.createSequenceAccumulatorValue(SEQ_CLSSid_OclFeatureDefinition); + @NonNull Iterator<Object> ITERATOR__1 = selectByKind.iterator(); + /*@NonInvalid*/ @NonNull SequenceValue collect; + while (true) { + if (!ITERATOR__1.hasNext()) { + collect = accumulator; + break; + } + @SuppressWarnings("null") + /*@NonInvalid*/ @NonNull Helper _1 = (Helper)ITERATOR__1.next(); + /** + * _'1_'.definition + */ + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OclFeatureDefinition definition_1 = _1.getDefinition(); + // + accumulator.add(definition_1); + } + final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_OCL_c_c_Operation_0 = idResolver.getClass(CLSSid_Operation, null); + /*@Thrown*/ SequenceValue.@NonNull Accumulator accumulator_0 = ValueUtil.createSequenceAccumulatorValue(SEQ_CLSSid_OclFeature); + @NonNull Iterator<Object> ITERATOR__49___0_0 = collect.iterator(); + /*@NonInvalid*/ @NonNull SequenceValue collect_1; + while (true) { + if (!ITERATOR__49___0_0.hasNext()) { + collect_1 = accumulator_0; + break; + } + @SuppressWarnings("null") + /*@NonInvalid*/ @NonNull OclFeatureDefinition _49___0_0 = (OclFeatureDefinition)ITERATOR__49___0_0.next(); + /** + * _'1__0'.feature + */ + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OclFeature feature_0 = _49___0_0.getFeature(); + // + accumulator_0.add(feature_0); + } + final /*@NonInvalid*/ @NonNull SequenceValue selectByKind_0 = (SequenceValue)CollectionSelectByKindOperation.INSTANCE.evaluate(executor, collect_1, TYP_OCL_c_c_Operation_0); + // creations + final org.eclipse.ocl.pivot.@NonNull VariableExp qvtrSource = PivotFactory.eINSTANCE.createVariableExp(); + models[2/*qvtr*/].add(qvtrSource, true); + // mapping statements + qvtrSource.setName(safe_name_source); + trace_11.setQvtr_qvtrOperation(qvtr_qvtrFunction); + trace_11.setQvtr_qvtrSource(qvtrSource); + trace_11.setQvtr_qvtrThisVariable(ownedContext); + trace_11.setQvtr_qvtrTransformation(qvtr_qvtrTransformation); + qvtrSource.setReferredVariable(ownedContext); + qvtrSource.setType(safe_type_source); + objectManager.assigned(qvtrSource, PivotPackage.Literals.TYPED_ELEMENT__TYPE, safe_type_source); + jm_TC__mapOperationCallExp__Helper.appendElement(trace_11); + final /*@Thrown*/ @Nullable Boolean m_TC__mapOperationCallExp__Helper_qvtr_qvtrOperation_p1 = ValueUtil.TRUE_VALUE; + raw_when_TI_mapOclExpression = m_TC__mapOperationCallExp__Helper_qvtr_qvtrOperation_p1; + } + else { + raw_when_TI_mapOclExpression = ValueUtil.FALSE_VALUE; + } + raw_when_TC_mapModule = raw_when_TI_mapOclExpression; + } + else { + raw_when_TC_mapModule = ValueUtil.FALSE_VALUE; + } + symbol_15 = raw_when_TC_mapModule; + } + else { + symbol_15 = ValueUtil.FALSE_VALUE; + } + symbol_16 = symbol_15; + } + else { + symbol_16 = ValueUtil.FALSE_VALUE; + } + trace_11.setStatus(symbol_16); + if (symbol_16) { + objectManager.assigned(trace_11, trace_ATL2QVTrPackage.Literals.TI_MAP_OCL_EXPRESSION__STATUS, symbol_16); + } + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((symbol_16 ? "done " : "fail ") + "MAP_m_TC__mapOperationCallExp__Helper_qvtr_qvtrOperation_p1"); + } + return symbol_16; + } + + /** + * + * map m_WI__mapVariableExp__referredVariable_result in ATL2QVTr { + * guard:atl atlExpression : OCL::VariableExp[1]; + * var atlVariable : OCL::VariableDeclaration[1] := atlExpression.referredVariable; + * var varName : String[1] := atlVariable.varName; + * var _'=' : Boolean[1] := varName = + * 'self'; + * check _'='; + * var invocation : trace_ATL2QVTr::WI_mapVariableExp_referredVariable[1] := atlExpression.WI_mapVariableExp_referredVariable; + * var qvtrExpression : VariableExp[1] := invocation.qvtr_qvtrExpression; + * var atlHelper : ATL::Helper[?] := this.getHelper(atlExpression); + * var atlHelper1 : ATL::Helper[1] := atlHelper; + * var when_TC_mapVariable : trace_ATL2QVTr::TC_mapVariable[1] := atlHelper1.TC_mapVariable; + * var qvtrVariable : VariableDeclaration[1] := when_TC_mapVariable.qvtr_qvtrVariable; + * var type : Type[?] := qvtrVariable.type; + * new:middle trace : trace_ATL2QVTr::TC_mapVariableExp_referredVariable_Helper[1]; + * set qvtrExpression.name := 'self'; + * set invocation.result := trace; + * set trace.atl_atlExpression := atlExpression; + * set trace.atl_atlHelper := atlHelper1; + * set trace.atl_atlVariable := atlVariable; + * set trace.qvtr_qvtrExpression := qvtrExpression; + * set trace.qvtr_qvtrVariable := qvtrVariable; + * set qvtrExpression.referredVariable := qvtrVariable; + * notify set qvtrExpression.type := type; + * + */ + protected boolean MAP_m_WI__mapVariableExp__referredVariable_result(final /*@NonInvalid*/ org.eclipse.m2m.atl.common.OCL.@NonNull VariableExp atlExpression_14) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_WI__mapVariableExp__referredVariable_result" + ", " + atlExpression_14); + } + @SuppressWarnings("null") + final /*@NonInvalid*/ org.eclipse.m2m.atl.common.OCL.@NonNull VariableDeclaration referredVariable = atlExpression_14.getReferredVariable(); + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull String varName = referredVariable.getVarName(); + final /*@NonInvalid*/ boolean eq = varName.equals(STR_self); + /*@Thrown*/ @Nullable Boolean symbol_13; + if (eq) { + final /*@NonInvalid*/ @Nullable WI_mapVariableExp_referredVariable WI_mapVariableExp_referredVariable = OPPOSITE_OF_WI_mapVariableExp_referredVariable_atl_atlExpression.get(atlExpression_14); + final /*@NonInvalid*/ boolean symbol_0 = WI_mapVariableExp_referredVariable != null; + /*@Thrown*/ @Nullable Boolean raw_invocation; + if (symbol_0) { + if (WI_mapVariableExp_referredVariable == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + @SuppressWarnings("null") + final /*@Thrown*/ org.eclipse.ocl.pivot.@NonNull VariableExp qvtr_qvtrExpression = WI_mapVariableExp_referredVariable.getQvtr_qvtrExpression(); + final /*@NonInvalid*/ @Nullable Helper getHelper = ((FUN_getHelper)FTOR_getHelper.getUniqueComputation(this, atlExpression_14)).instance; + final /*@NonInvalid*/ boolean symbol_1 = getHelper != null; + /*@Thrown*/ @Nullable Boolean raw_atlHelper1; + if (symbol_1) { + if (getHelper == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + final /*@Thrown*/ @Nullable TC_mapVariable TC_mapVariable = OPPOSITE_OF_TC_mapVariable_atl_atlVariable.get(getHelper); + final /*@Thrown*/ boolean symbol_2 = TC_mapVariable != null; + /*@Thrown*/ @Nullable Boolean raw_when_TC_mapVariable; + if (symbol_2) { + if (TC_mapVariable == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + @SuppressWarnings("null") + final /*@Thrown*/ org.eclipse.ocl.pivot.@NonNull VariableDeclaration qvtr_qvtrVariable = TC_mapVariable.getQvtr_qvtrVariable(); + final /*@Thrown*/ @Nullable Type type_2 = qvtr_qvtrVariable.getType(); + // creations + final @SuppressWarnings("null")@NonNull TC_mapVariableExp_referredVariable_Helper trace_37 = trace_ATL2QVTrFactory.eINSTANCE.createTC_mapVariableExp_referredVariable_Helper(); + models[0/*middle*/].add(trace_37, false); + // mapping statements + qvtr_qvtrExpression.setName(STR_self); + WI_mapVariableExp_referredVariable.setResult(trace_37); + trace_37.setAtl_atlExpression(atlExpression_14); + trace_37.setAtl_atlHelper(getHelper); + trace_37.setAtl_atlVariable(referredVariable); + trace_37.setQvtr_qvtrExpression(qvtr_qvtrExpression); + trace_37.setQvtr_qvtrVariable(qvtr_qvtrVariable); + qvtr_qvtrExpression.setReferredVariable(qvtr_qvtrVariable); + qvtr_qvtrExpression.setType(type_2); + objectManager.assigned(qvtr_qvtrExpression, PivotPackage.Literals.TYPED_ELEMENT__TYPE, type_2); + final /*@Thrown*/ @Nullable Boolean m_WI__mapVariableExp__referredVariable_result = ValueUtil.TRUE_VALUE; + raw_when_TC_mapVariable = m_WI__mapVariableExp__referredVariable_result; + } + else { + raw_when_TC_mapVariable = ValueUtil.FALSE_VALUE; + } + raw_atlHelper1 = raw_when_TC_mapVariable; + } + else { + raw_atlHelper1 = ValueUtil.FALSE_VALUE; + } + raw_invocation = raw_atlHelper1; + } + else { + raw_invocation = ValueUtil.FALSE_VALUE; + } + symbol_13 = raw_invocation; + } + else { + symbol_13 = ValueUtil.FALSE_VALUE; + } + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((symbol_13 ? "done " : "fail ") + "MAP_m_WI__mapVariableExp__referredVariable_result"); + } + return symbol_13; + } + + /** + * + * map m_WI__mapVariableExp__referredVariable_result_1 in ATL2QVTr { + * guard:atl atlExpression : OCL::VariableExp[1]; + * check var atlVariable : ATL::PatternElement[1] := atlExpression.referredVariable; + * var invocation : trace_ATL2QVTr::WI_mapVariableExp_referredVariable[1] := atlExpression.WI_mapVariableExp_referredVariable; + * var when_TC_mapVariable : trace_ATL2QVTr::TC_mapVariable[1] := atlVariable.TC_mapVariable; + * var qvtrExpression : VariableExp[1] := invocation.qvtr_qvtrExpression; + * var qvtrVariable : VariableDeclaration[1] := when_TC_mapVariable.qvtr_qvtrVariable; + * var name : String[?] := qvtrVariable.name; + * var type : Type[?] := qvtrVariable.type; + * new:middle trace : trace_ATL2QVTr::TC_mapVariableExp_referredVariable_VariableDeclaration[1]; + * set qvtrExpression.name := name; + * set qvtrExpression.referredVariable := qvtrVariable; + * notify set qvtrExpression.type := type; + * set invocation.result := trace; + * set trace.atl_atlExpression := atlExpression; + * set trace.atl_atlVariable := atlVariable; + * set trace.qvtr_qvtrExpression := qvtrExpression; + * set trace.qvtr_qvtrVariable := qvtrVariable; + * + */ + protected boolean MAP_m_WI__mapVariableExp__referredVariable_result_1(final /*@NonInvalid*/ org.eclipse.m2m.atl.common.OCL.@NonNull VariableExp atlExpression_15) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_WI__mapVariableExp__referredVariable_result_1" + ", " + atlExpression_15); + } + @SuppressWarnings("null") + final /*@NonInvalid*/ org.eclipse.m2m.atl.common.OCL.@NonNull VariableDeclaration temp1_atlVariable = atlExpression_15.getReferredVariable(); + final /*@NonInvalid*/ boolean symbol_0 = temp1_atlVariable instanceof PatternElement; + /*@Thrown*/ @Nullable Boolean symbol_13; + if (symbol_0) { + final /*@NonInvalid*/ @NonNull PatternElement symbol_1 = (PatternElement)temp1_atlVariable; + final /*@NonInvalid*/ @Nullable WI_mapVariableExp_referredVariable WI_mapVariableExp_referredVariable = OPPOSITE_OF_WI_mapVariableExp_referredVariable_atl_atlExpression.get(atlExpression_15); + final /*@NonInvalid*/ boolean symbol_2 = WI_mapVariableExp_referredVariable != null; + /*@Thrown*/ @Nullable Boolean raw_invocation; + if (symbol_2) { + if (WI_mapVariableExp_referredVariable == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + final /*@NonInvalid*/ @Nullable TC_mapVariable TC_mapVariable = OPPOSITE_OF_TC_mapVariable_atl_atlVariable.get(symbol_1); + final /*@NonInvalid*/ boolean symbol_3 = TC_mapVariable != null; + /*@Thrown*/ @Nullable Boolean raw_when_TC_mapVariable; + if (symbol_3) { + if (TC_mapVariable == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + @SuppressWarnings("null") + final /*@Thrown*/ org.eclipse.ocl.pivot.@NonNull VariableExp qvtr_qvtrExpression = WI_mapVariableExp_referredVariable.getQvtr_qvtrExpression(); + @SuppressWarnings("null") + final /*@Thrown*/ org.eclipse.ocl.pivot.@NonNull VariableDeclaration qvtr_qvtrVariable = TC_mapVariable.getQvtr_qvtrVariable(); + final /*@Thrown*/ @Nullable String name_2 = qvtr_qvtrVariable.getName(); + final /*@Thrown*/ @Nullable Type type_2 = qvtr_qvtrVariable.getType(); + // creations + final @SuppressWarnings("null")@NonNull TC_mapVariableExp_referredVariable_VariableDeclaration trace_37 = trace_ATL2QVTrFactory.eINSTANCE.createTC_mapVariableExp_referredVariable_VariableDeclaration(); + models[0/*middle*/].add(trace_37, false); + // mapping statements + qvtr_qvtrExpression.setName(name_2); + qvtr_qvtrExpression.setReferredVariable(qvtr_qvtrVariable); + qvtr_qvtrExpression.setType(type_2); + objectManager.assigned(qvtr_qvtrExpression, PivotPackage.Literals.TYPED_ELEMENT__TYPE, type_2); + WI_mapVariableExp_referredVariable.setResult(trace_37); + trace_37.setAtl_atlExpression(atlExpression_15); + trace_37.setAtl_atlVariable(symbol_1); + trace_37.setQvtr_qvtrExpression(qvtr_qvtrExpression); + trace_37.setQvtr_qvtrVariable(qvtr_qvtrVariable); + final /*@Thrown*/ @Nullable Boolean m_WI__mapVariableExp__referredVariable_result_1 = ValueUtil.TRUE_VALUE; + raw_when_TC_mapVariable = m_WI__mapVariableExp__referredVariable_result_1; + } + else { + raw_when_TC_mapVariable = ValueUtil.FALSE_VALUE; + } + raw_invocation = raw_when_TC_mapVariable; + } + else { + raw_invocation = ValueUtil.FALSE_VALUE; + } + symbol_13 = raw_invocation; + } + else { + symbol_13 = ValueUtil.FALSE_VALUE; + } + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((symbol_13 ? "done " : "fail ") + "MAP_m_WI__mapVariableExp__referredVariable_result_1"); + } + return symbol_13; + } + + /** + * + * map m_TC__mapOperationCallExp__Helper_qvtr_qvtrExpressio_p2 in ATL2QVTr { + * guard:middle trace : trace_ATL2QVTr::TC_mapOperationCallExp_Helper[1]; + * check trace.status; + * var operationName : String[1] := trace.primitive_operationName; + * var qvtrOperation : Operation[1] := trace.qvtr_qvtrOperation; + * var type : Type[?] := qvtrOperation.type; + * new:qvtr qvtrExpression : OperationCallExp[1]; + * set qvtrExpression.name := operationName; + * set trace.qvtr_qvtrExpression := qvtrExpression; + * set qvtrExpression.referredOperation := qvtrOperation; + * notify set qvtrExpression.type := type; + * + */ + protected boolean MAP_m_TC__mapOperationCallExp__Helper_qvtr_qvtrExpressio_p2(final /*@NonInvalid*/ @NonNull TC_mapOperationCallExp_Helper trace_12) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_TC__mapOperationCallExp__Helper_qvtr_qvtrExpressio_p2" + ", " + trace_12); + } + final /*@NonInvalid*/ @Nullable Boolean status = trace_12.getStatus(); + if (status == null) { + throw new InvalidEvaluationException("Null if condition"); + } + /*@Thrown*/ @Nullable Boolean symbol_5; + if (status) { + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull String primitive_operationName = trace_12.getPrimitive_operationName(); + @SuppressWarnings("null") + final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Operation qvtr_qvtrOperation = trace_12.getQvtr_qvtrOperation(); + final /*@NonInvalid*/ @Nullable Type type_2 = qvtr_qvtrOperation.getType(); + // creations + final org.eclipse.ocl.pivot.@NonNull OperationCallExp qvtrExpression = PivotFactory.eINSTANCE.createOperationCallExp(); + models[2/*qvtr*/].add(qvtrExpression, false); + // mapping statements + qvtrExpression.setName(primitive_operationName); + trace_12.setQvtr_qvtrExpression(qvtrExpression); + qvtrExpression.setReferredOperation(qvtr_qvtrOperation); + qvtrExpression.setType(type_2); + objectManager.assigned(qvtrExpression, PivotPackage.Literals.TYPED_ELEMENT__TYPE, type_2); + final /*@Thrown*/ @Nullable Boolean m_TC__mapOperationCallExp__Helper_qvtr_qvtrExpressio_p2 = ValueUtil.TRUE_VALUE; + symbol_5 = m_TC__mapOperationCallExp__Helper_qvtr_qvtrExpressio_p2; + } + else { + symbol_5 = ValueUtil.FALSE_VALUE; + } + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((symbol_5 ? "done " : "fail ") + "MAP_m_TC__mapOperationCallExp__Helper_qvtr_qvtrExpressio_p2"); + } + return symbol_5; + } + + /** + * + * map m_TC__mapOperationCallExp__Operation_status_p1 in ATL2QVTr { + * guard:middle trace : trace_ATL2QVTr::TC_mapOperationCallExp_Operation[1] success status; + * append jm_TC__mapOperationCallExp__Operation : trace_ATL2QVTr::TC_mapOperationCallExp_Operation[1]; + * var atlSource : OCL::OclExpression[1] := trace.atl_atlSource; + * var when_TI_mapOclExpression : trace_ATL2QVTr::TI_mapOclExpression[1] := atlSource.TI_mapOclExpression; + * add jm_TC__mapOperationCallExp__Operation += trace; + * + */ + protected boolean MAP_m_TC__mapOperationCallExp__Operation_status_p1(final @NonNull Connection jm_TC__mapOperationCallExp__Operation, final /*@NonInvalid*/ @NonNull TC_mapOperationCallExp_Operation trace_13) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_TC__mapOperationCallExp__Operation_status_p1" + ", " + jm_TC__mapOperationCallExp__Operation + ", " + trace_13); + } + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OclExpression atl_atlSource = trace_13.getAtl_atlSource(); + final /*@NonInvalid*/ @Nullable TI_mapOclExpression TI_mapOclExpression = OPPOSITE_OF_TI_mapOclExpression_atl_atlExpression.get(atl_atlSource); + final /*@NonInvalid*/ boolean symbol_0 = TI_mapOclExpression != null; + /*@Thrown*/ @Nullable Boolean raw_when_TI_mapOclExpression; + if (symbol_0) { + if (TI_mapOclExpression == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + // mapping statements + jm_TC__mapOperationCallExp__Operation.appendElement(trace_13); + final /*@Thrown*/ @Nullable Boolean m_TC__mapOperationCallExp__Operation_status_p1 = ValueUtil.TRUE_VALUE; + raw_when_TI_mapOclExpression = m_TC__mapOperationCallExp__Operation_status_p1; + } + else { + raw_when_TI_mapOclExpression = ValueUtil.FALSE_VALUE; + } + trace_13.setStatus(raw_when_TI_mapOclExpression); + if (raw_when_TI_mapOclExpression) { + objectManager.assigned(trace_13, trace_ATL2QVTrPackage.Literals.TI_MAP_OCL_EXPRESSION__STATUS, raw_when_TI_mapOclExpression); + } + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((raw_when_TI_mapOclExpression ? "done " : "fail ") + "MAP_m_TC__mapOperationCallExp__Operation_status_p1"); + } + return raw_when_TI_mapOclExpression; + } + + /** + * + * map m_TC__mapOperationCallExp__Operation_qvtr_qvtrExpres_p2 in ATL2QVTr { + * guard:middle trace : trace_ATL2QVTr::TC_mapOperationCallExp_Operation[1]; + * check trace.status; + * var operationName : String[1] := trace.primitive_operationName; + * new:qvtr qvtrExpression : OperationCallExp[1]; + * set qvtrExpression.name := operationName; + * set trace.qvtr_qvtrExpression := qvtrExpression; + * + */ + protected boolean MAP_m_TC__mapOperationCallExp__Operation_qvtr_qvtrExpres_p2(final /*@NonInvalid*/ @NonNull TC_mapOperationCallExp_Operation trace_14) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_TC__mapOperationCallExp__Operation_qvtr_qvtrExpres_p2" + ", " + trace_14); + } + final /*@NonInvalid*/ @Nullable Boolean status = trace_14.getStatus(); + if (status == null) { + throw new InvalidEvaluationException("Null if condition"); + } + /*@Thrown*/ @Nullable Boolean symbol_3; + if (status) { + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull String primitive_operationName = trace_14.getPrimitive_operationName(); + // creations + final org.eclipse.ocl.pivot.@NonNull OperationCallExp qvtrExpression = PivotFactory.eINSTANCE.createOperationCallExp(); + models[2/*qvtr*/].add(qvtrExpression, false); + // mapping statements + qvtrExpression.setName(primitive_operationName); + trace_14.setQvtr_qvtrExpression(qvtrExpression); + final /*@Thrown*/ @Nullable Boolean m_TC__mapOperationCallExp__Operation_qvtr_qvtrExpres_p2 = ValueUtil.TRUE_VALUE; + symbol_3 = m_TC__mapOperationCallExp__Operation_qvtr_qvtrExpres_p2; + } + else { + symbol_3 = ValueUtil.FALSE_VALUE; + } + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((symbol_3 ? "done " : "fail ") + "MAP_m_TC__mapOperationCallExp__Operation_qvtr_qvtrExpres_p2"); + } + return symbol_3; + } + + /** + * + * map m_TC__mapOperatorCallExp_atl_atlModule_status_p1 in ATL2QVTr { + * + * guard:middle trace : trace_ATL2QVTr::TC_mapOperatorCallExp[1] success status; + * append jm_TC__mapOperatorCallExp : trace_ATL2QVTr::TC_mapOperatorCallExp[1]; + * check var atlExpression : OCL::OperatorCallExp[1] := trace.atl_atlExpression; + * var atlSource : OCL::OclExpression[1] := trace.atl_atlSource; + * var when_TI_mapOclExpression : trace_ATL2QVTr::TI_mapOclExpression[1] := atlSource.TI_mapOclExpression; + * var atlModule : ATL::Module[1] := this.getModule(atlExpression); + * var when_TC_mapModule : trace_ATL2QVTr::TC_mapModule[1] := atlModule.TC_mapModule; + * set trace.atl_atlModule := atlModule; + * add jm_TC__mapOperatorCallExp += trace; + * + */ + protected boolean MAP_m_TC__mapOperatorCallExp_atl_atlModule_status_p1(final @NonNull Connection jm_TC__mapOperatorCallExp, final /*@NonInvalid*/ @NonNull TC_mapOperatorCallExp trace_15) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_TC__mapOperatorCallExp_atl_atlModule_status_p1" + ", " + jm_TC__mapOperatorCallExp + ", " + trace_15); + } + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OclExpression temp1_atlExpression = trace_15.getAtl_atlExpression(); + final /*@NonInvalid*/ boolean symbol_0 = temp1_atlExpression instanceof OperatorCallExp; + /*@Thrown*/ @Nullable Boolean symbol_7; + if (symbol_0) { + final /*@NonInvalid*/ @NonNull OperatorCallExp symbol_1 = (OperatorCallExp)temp1_atlExpression; + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OclExpression atl_atlSource = trace_15.getAtl_atlSource(); + final /*@NonInvalid*/ @Nullable TI_mapOclExpression TI_mapOclExpression = OPPOSITE_OF_TI_mapOclExpression_atl_atlExpression.get(atl_atlSource); + final /*@NonInvalid*/ boolean symbol_2 = TI_mapOclExpression != null; + /*@Thrown*/ @Nullable Boolean raw_when_TI_mapOclExpression; + if (symbol_2) { + if (TI_mapOclExpression == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + final /*@NonInvalid*/ @NonNull Module getModule = ((FUN_getModule)FTOR_getModule.getUniqueComputation(this, symbol_1)).instance; + final /*@NonInvalid*/ @Nullable TC_mapModule TC_mapModule = OPPOSITE_OF_TC_mapModule_atl_atlModule.get(getModule); + final /*@NonInvalid*/ boolean symbol_3 = TC_mapModule != null; + /*@Thrown*/ @Nullable Boolean raw_when_TC_mapModule; + if (symbol_3) { + if (TC_mapModule == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + // mapping statements + trace_15.setAtl_atlModule(getModule); + jm_TC__mapOperatorCallExp.appendElement(trace_15); + final /*@Thrown*/ @Nullable Boolean m_TC__mapOperatorCallExp_atl_atlModule_status_p1 = ValueUtil.TRUE_VALUE; + raw_when_TC_mapModule = m_TC__mapOperatorCallExp_atl_atlModule_status_p1; + } + else { + raw_when_TC_mapModule = ValueUtil.FALSE_VALUE; + } + raw_when_TI_mapOclExpression = raw_when_TC_mapModule; + } + else { + raw_when_TI_mapOclExpression = ValueUtil.FALSE_VALUE; + } + symbol_7 = raw_when_TI_mapOclExpression; + } + else { + symbol_7 = ValueUtil.FALSE_VALUE; + } + trace_15.setStatus(symbol_7); + if (symbol_7) { + objectManager.assigned(trace_15, trace_ATL2QVTrPackage.Literals.TI_MAP_OCL_EXPRESSION__STATUS, symbol_7); + } + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((symbol_7 ? "done " : "fail ") + "MAP_m_TC__mapOperatorCallExp_atl_atlModule_status_p1"); + } + return symbol_7; + } + + /** + * + * map m_TC__mapOperatorCallExp_qvtr_qvtrTransformation_p6 in ATL2QVTr { + * guard:middle trace : trace_ATL2QVTr::TC_mapOperatorCallExp[1]; + * check trace.status; + * check var atlExpression : OCL::OperatorCallExp[1] := trace.atl_atlExpression; + * var atlModule : ATL::Module[1] := trace.atl_atlModule; + * var when_TC_mapModule : trace_ATL2QVTr::TC_mapModule[1] := atlModule.TC_mapModule; + * var qvtrTransformation : qvtrelation::RelationalTransformation[1] := when_TC_mapModule.qvtr_qvtrTransformation; + * set trace.qvtr_qvtrTransformation := qvtrTransformation; + * + */ + protected boolean MAP_m_TC__mapOperatorCallExp_qvtr_qvtrTransformation_p6(final /*@NonInvalid*/ @NonNull TC_mapOperatorCallExp trace_16) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_TC__mapOperatorCallExp_qvtr_qvtrTransformation_p6" + ", " + trace_16); + } + final /*@NonInvalid*/ @Nullable Boolean status = trace_16.getStatus(); + if (status == null) { + throw new InvalidEvaluationException("Null if condition"); + } + /*@Thrown*/ @Nullable Boolean symbol_6; + if (status) { + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OclExpression temp1_atlExpression = trace_16.getAtl_atlExpression(); + final /*@NonInvalid*/ boolean symbol_0 = temp1_atlExpression instanceof OperatorCallExp; + /*@Thrown*/ @Nullable Boolean symbol_5; + if (symbol_0) { + final /*@NonInvalid*/ @NonNull OperatorCallExp symbol_1 = (OperatorCallExp)temp1_atlExpression; + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull Module atl_atlModule = trace_16.getAtl_atlModule(); + final /*@NonInvalid*/ @Nullable TC_mapModule TC_mapModule = OPPOSITE_OF_TC_mapModule_atl_atlModule.get(atl_atlModule); + final /*@NonInvalid*/ boolean symbol_2 = TC_mapModule != null; + /*@Thrown*/ @Nullable Boolean raw_when_TC_mapModule; + if (symbol_2) { + if (TC_mapModule == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + @SuppressWarnings("null") + final /*@Thrown*/ @NonNull RelationalTransformation qvtr_qvtrTransformation = TC_mapModule.getQvtr_qvtrTransformation(); + // mapping statements + trace_16.setQvtr_qvtrTransformation(qvtr_qvtrTransformation); + final /*@Thrown*/ @Nullable Boolean m_TC__mapOperatorCallExp_qvtr_qvtrTransformation_p6 = ValueUtil.TRUE_VALUE; + raw_when_TC_mapModule = m_TC__mapOperatorCallExp_qvtr_qvtrTransformation_p6; + } + else { + raw_when_TC_mapModule = ValueUtil.FALSE_VALUE; + } + symbol_5 = raw_when_TC_mapModule; + } + else { + symbol_5 = ValueUtil.FALSE_VALUE; + } + symbol_6 = symbol_5; + } + else { + symbol_6 = ValueUtil.FALSE_VALUE; + } + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((symbol_6 ? "done " : "fail ") + "MAP_m_TC__mapOperatorCallExp_qvtr_qvtrTransformation_p6"); + } + return symbol_6; + } + + /** + * + * map m_TC__mapOperatorCallExp_qvtr_qvtrExpression_p2 in ATL2QVTr { + * guard:middle trace : trace_ATL2QVTr::TC_mapOperatorCallExp[1]; + * check trace.status; + * var operationName : String[1] := trace.primitive_operationName; + * new:qvtr qvtrExpression : OperationCallExp[1]; + * set qvtrExpression.name := operationName; + * set trace.qvtr_qvtrExpression := qvtrExpression; + * + */ + protected boolean MAP_m_TC__mapOperatorCallExp_qvtr_qvtrExpression_p2(final /*@NonInvalid*/ @NonNull TC_mapOperatorCallExp trace_17) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_TC__mapOperatorCallExp_qvtr_qvtrExpression_p2" + ", " + trace_17); + } + final /*@NonInvalid*/ @Nullable Boolean status = trace_17.getStatus(); + if (status == null) { + throw new InvalidEvaluationException("Null if condition"); + } + /*@Thrown*/ @Nullable Boolean symbol_3; + if (status) { + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull String primitive_operationName = trace_17.getPrimitive_operationName(); + // creations + final org.eclipse.ocl.pivot.@NonNull OperationCallExp qvtrExpression = PivotFactory.eINSTANCE.createOperationCallExp(); + models[2/*qvtr*/].add(qvtrExpression, false); + // mapping statements + qvtrExpression.setName(primitive_operationName); + trace_17.setQvtr_qvtrExpression(qvtrExpression); + final /*@Thrown*/ @Nullable Boolean m_TC__mapOperatorCallExp_qvtr_qvtrExpression_p2 = ValueUtil.TRUE_VALUE; + symbol_3 = m_TC__mapOperatorCallExp_qvtr_qvtrExpression_p2; + } + else { + symbol_3 = ValueUtil.FALSE_VALUE; + } + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((symbol_3 ? "done " : "fail ") + "MAP_m_TC__mapOperatorCallExp_qvtr_qvtrExpression_p2"); + } + return symbol_3; + } + + /** + * + * map m_TC__mapBinding_atl_atlBinding_atl_atlExpression_at in ATL2QVTr { + * + * guard:atl atlBinding : ATL::Binding[1]; + * check var atlOutPatternElement : ATL::SimpleOutPatternElement[1] := atlBinding.outPatternElement; + * var propertyName : String[1] := atlBinding.propertyName; + * var atlExpression : OCL::OclExpression[1] := atlBinding.value; + * var when_TI_mapOclExpression : trace_ATL2QVTr::TI_mapOclExpression[1] := atlExpression.TI_mapOclExpression; + * var when_TC_mapSimpleOutPatternElement : trace_ATL2QVTr::TC_mapSimpleOutPatternElement[1] := atlOutPatternElement.TC_mapSimpleOutPatternElement; + * var qvtrTemplate : qvttemplate::ObjectTemplateExp[1] := when_TC_mapSimpleOutPatternElement.qvtr_qvtrTemplate; + * var qvtrExpression : OCLExpression[1] := when_TI_mapOclExpression.qvtr_qvtrExpression; + * var type : Type[?] := qvtrTemplate.type; + * var getProperty1 : Property[1] := this.getProperty(type, propertyName); + * contained new:qvtr qvtrPart : qvttemplate::PropertyTemplateItem[1]; + * new:middle trace : trace_ATL2QVTr::TC_mapBinding[1]; + * set trace.primitive_propertyName := propertyName; + * set trace.atl_atlBinding := atlBinding; + * set trace.atl_atlExpression := atlExpression; + * set trace.atl_atlOutPatternElement := atlOutPatternElement; + * set trace.qvtr_qvtrExpression := qvtrExpression; + * set trace.qvtr_qvtrPart := qvtrPart; + * set trace.qvtr_qvtrTemplate := qvtrTemplate; + * set qvtrPart.objContainer := qvtrTemplate; + * set qvtrPart.referredProperty := getProperty1; + * set qvtrPart.value := qvtrExpression; + * + */ + protected boolean MAP_m_TC__mapBinding_atl_atlBinding_atl_atlExpression_at(final /*@NonInvalid*/ @NonNull Binding atlBinding) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_TC__mapBinding_atl_atlBinding_atl_atlExpression_at" + ", " + atlBinding); + } + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OutPatternElement temp1_atlOutPatternElement = atlBinding.getOutPatternElement(); + final /*@NonInvalid*/ boolean symbol_0 = temp1_atlOutPatternElement instanceof SimpleOutPatternElement; + /*@Thrown*/ @Nullable Boolean symbol_15; + if (symbol_0) { + final /*@NonInvalid*/ @NonNull SimpleOutPatternElement symbol_1 = (SimpleOutPatternElement)temp1_atlOutPatternElement; + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull String propertyName = atlBinding.getPropertyName(); + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OclExpression value = atlBinding.getValue(); + final /*@NonInvalid*/ @Nullable TI_mapOclExpression TI_mapOclExpression = OPPOSITE_OF_TI_mapOclExpression_atl_atlExpression.get(value); + final /*@NonInvalid*/ boolean symbol_2 = TI_mapOclExpression != null; + /*@Thrown*/ @Nullable Boolean raw_when_TI_mapOclExpression; + if (symbol_2) { + if (TI_mapOclExpression == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + final /*@NonInvalid*/ @Nullable TC_mapSimpleOutPatternElement TC_mapSimpleOutPatternElement = OPPOSITE_OF_TC_mapSimpleOutPatternElement_atl_atlElement.get(symbol_1); + final /*@NonInvalid*/ boolean symbol_3 = TC_mapSimpleOutPatternElement != null; + /*@Thrown*/ @Nullable Boolean raw_when_TC_mapSimpleOutPatternElement; + if (symbol_3) { + if (TC_mapSimpleOutPatternElement == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + @SuppressWarnings("null") + final /*@Thrown*/ @NonNull ObjectTemplateExp qvtr_qvtrTemplate = TC_mapSimpleOutPatternElement.getQvtr_qvtrTemplate(); + @SuppressWarnings("null") + final /*@Thrown*/ @NonNull OCLExpression qvtr_qvtrExpression = TI_mapOclExpression.getQvtr_qvtrExpression(); + final /*@Thrown*/ @Nullable Type type_2 = qvtr_qvtrTemplate.getType(); + final /*@Thrown*/ @NonNull Property getProperty = ((FUN_getProperty)FTOR_getProperty.getUniqueComputation(this, type_2, propertyName)).instance; + // creations + final @NonNull PropertyTemplateItem qvtrPart = QVTtemplateFactory.eINSTANCE.createPropertyTemplateItem(); + models[2/*qvtr*/].add(qvtrPart, true); + final @SuppressWarnings("null")@NonNull TC_mapBinding trace_37 = trace_ATL2QVTrFactory.eINSTANCE.createTC_mapBinding(); + models[0/*middle*/].add(trace_37, false); + // mapping statements + trace_37.setPrimitive_propertyName(propertyName); + trace_37.setAtl_atlBinding(atlBinding); + trace_37.setAtl_atlExpression(value); + trace_37.setAtl_atlOutPatternElement(symbol_1); + trace_37.setQvtr_qvtrExpression(qvtr_qvtrExpression); + trace_37.setQvtr_qvtrPart(qvtrPart); + trace_37.setQvtr_qvtrTemplate(qvtr_qvtrTemplate); + qvtrPart.setObjContainer(qvtr_qvtrTemplate); + qvtrPart.setReferredProperty(getProperty); + qvtrPart.setValue(qvtr_qvtrExpression); + final /*@Thrown*/ @Nullable Boolean m_TC__mapBinding_atl_atlBinding_atl_atlExpression_at = ValueUtil.TRUE_VALUE; + raw_when_TC_mapSimpleOutPatternElement = m_TC__mapBinding_atl_atlBinding_atl_atlExpression_at; + } + else { + raw_when_TC_mapSimpleOutPatternElement = ValueUtil.FALSE_VALUE; + } + raw_when_TI_mapOclExpression = raw_when_TC_mapSimpleOutPatternElement; + } + else { + raw_when_TI_mapOclExpression = ValueUtil.FALSE_VALUE; + } + symbol_15 = raw_when_TI_mapOclExpression; + } + else { + symbol_15 = ValueUtil.FALSE_VALUE; + } + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((symbol_15 ? "done " : "fail ") + "MAP_m_TC__mapBinding_atl_atlBinding_atl_atlExpression_at"); + } + return symbol_15; + } + + /** + * + * map m_TC__mapInPattern__filter_atl_atlExpression_atl_atl in ATL2QVTr { + * guard:atl atlPattern : ATL::InPattern[1]; + * var atlExpression : OCL::OclExpression[1] := atlPattern.filter; + * var atlRule : ATL::MatchedRule[1] := atlPattern.rule; + * var when_TC_mapInPattern : trace_ATL2QVTr::TC_mapInPattern[1] := atlPattern.TC_mapInPattern; + * var when_TC_mapMatchedRule : trace_ATL2QVTr::TC_mapMatchedRule[1] := atlRule.TC_mapMatchedRule; + * var when_TI_mapOclExpression : trace_ATL2QVTr::TI_mapOclExpression[1] := atlExpression.TI_mapOclExpression; + * var qvtrDomain : qvtrelation::RelationDomain[1] := when_TC_mapInPattern.qvtr_qvtrDomain; + * var qvtrRelation : qvtrelation::Relation[1] := when_TC_mapMatchedRule.qvtr_qvtrRelation; + * var qvtrExpression : OCLExpression[1] := when_TI_mapOclExpression.qvtr_qvtrExpression; + * new:qvtr p : qvtbase::Predicate[1]; + * new:middle trace : trace_ATL2QVTr::TC_mapInPattern_filter[1]; + * contained new:qvtr w : qvtbase::Pattern[1]; + * set qvtrRelation.when := w; + * set qvtrDomain.rule := qvtrRelation; + * set w.predicate := p; + * set trace.atl_atlExpression := atlExpression; + * set trace.atl_atlPattern := atlPattern; + * set trace.atl_atlRule := atlRule; + * set trace.qvtr_p := p; + * set trace.qvtr_qvtrDomain := qvtrDomain; + * set trace.qvtr_qvtrExpression := qvtrExpression; + * set trace.qvtr_qvtrRelation := qvtrRelation; + * set trace.qvtr_w := w; + * set p.conditionExpression := qvtrExpression; + * + */ + protected boolean MAP_m_TC__mapInPattern__filter_atl_atlExpression_atl_atl(final /*@NonInvalid*/ @NonNull InPattern atlPattern_1) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_TC__mapInPattern__filter_atl_atlExpression_atl_atl" + ", " + atlPattern_1); + } + final /*@NonInvalid*/ @Nullable OclExpression filter = atlPattern_1.getFilter(); + final /*@NonInvalid*/ boolean symbol_0 = filter != null; + /*@Thrown*/ @Nullable Boolean raw_atlExpression; + if (symbol_0) { + if (filter == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull MatchedRule rule = atlPattern_1.getRule(); + final /*@NonInvalid*/ @Nullable TC_mapInPattern TC_mapInPattern = OPPOSITE_OF_TC_mapInPattern_atl_atlPattern.get(atlPattern_1); + final /*@NonInvalid*/ boolean symbol_1 = TC_mapInPattern != null; + /*@Thrown*/ @Nullable Boolean raw_when_TC_mapInPattern; + if (symbol_1) { + if (TC_mapInPattern == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + final /*@NonInvalid*/ @Nullable TC_mapMatchedRule TC_mapMatchedRule = OPPOSITE_OF_TC_mapMatchedRule_atl_matchedRule.get(rule); + final /*@NonInvalid*/ boolean symbol_2 = TC_mapMatchedRule != null; + /*@Thrown*/ @Nullable Boolean raw_when_TC_mapMatchedRule; + if (symbol_2) { + if (TC_mapMatchedRule == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + final /*@Thrown*/ @Nullable TI_mapOclExpression TI_mapOclExpression = OPPOSITE_OF_TI_mapOclExpression_atl_atlExpression.get(filter); + final /*@Thrown*/ boolean symbol_3 = TI_mapOclExpression != null; + /*@Thrown*/ @Nullable Boolean raw_when_TI_mapOclExpression; + if (symbol_3) { + if (TI_mapOclExpression == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + @SuppressWarnings("null") + final /*@Thrown*/ @NonNull RelationDomain qvtr_qvtrDomain = TC_mapInPattern.getQvtr_qvtrDomain(); + @SuppressWarnings("null") + final /*@Thrown*/ @NonNull Relation qvtr_qvtrRelation = TC_mapMatchedRule.getQvtr_qvtrRelation(); + @SuppressWarnings("null") + final /*@Thrown*/ @NonNull OCLExpression qvtr_qvtrExpression = TI_mapOclExpression.getQvtr_qvtrExpression(); + // creations + final @NonNull Predicate p = QVTbaseFactory.eINSTANCE.createPredicate(); + models[2/*qvtr*/].add(p, false); + final @SuppressWarnings("null")@NonNull TC_mapInPattern_filter trace_37 = trace_ATL2QVTrFactory.eINSTANCE.createTC_mapInPattern_filter(); + models[0/*middle*/].add(trace_37, false); + final @NonNull Pattern w = QVTbaseFactory.eINSTANCE.createPattern(); + models[2/*qvtr*/].add(w, true); + // mapping statements + qvtr_qvtrRelation.setWhen(w); + qvtr_qvtrDomain.setRule(qvtr_qvtrRelation); + w.getPredicate().add(p); + trace_37.setAtl_atlExpression(filter); + trace_37.setAtl_atlPattern(atlPattern_1); + trace_37.setAtl_atlRule(rule); + trace_37.setQvtr_p(p); + trace_37.setQvtr_qvtrDomain(qvtr_qvtrDomain); + trace_37.setQvtr_qvtrExpression(qvtr_qvtrExpression); + trace_37.setQvtr_qvtrRelation(qvtr_qvtrRelation); + trace_37.setQvtr_w(w); + p.setConditionExpression(qvtr_qvtrExpression); + final /*@Thrown*/ @Nullable Boolean m_TC__mapInPattern__filter_atl_atlExpression_atl_atl = ValueUtil.TRUE_VALUE; + raw_when_TI_mapOclExpression = m_TC__mapInPattern__filter_atl_atlExpression_atl_atl; + } + else { + raw_when_TI_mapOclExpression = ValueUtil.FALSE_VALUE; + } + raw_when_TC_mapMatchedRule = raw_when_TI_mapOclExpression; + } + else { + raw_when_TC_mapMatchedRule = ValueUtil.FALSE_VALUE; + } + raw_when_TC_mapInPattern = raw_when_TC_mapMatchedRule; + } + else { + raw_when_TC_mapInPattern = ValueUtil.FALSE_VALUE; + } + raw_atlExpression = raw_when_TC_mapInPattern; + } + else { + raw_atlExpression = ValueUtil.FALSE_VALUE; + } + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((raw_atlExpression ? "done " : "fail ") + "MAP_m_TC__mapInPattern__filter_atl_atlExpression_atl_atl"); + } + return raw_atlExpression; + } + + /** + * + * map m_TC__mapOperationCallExp__argument_atl_atlArgument_ in ATL2QVTr { + * guard:atl atlArgument : OCL::OclExpression[1]; + * var atlParent : OCL::OperationCallExp[1] := atlArgument.parentOperation; + * check var when_TI_mapOperationCallExp : trace_ATL2QVTr::TI_mapOperationCallExp[1] := atlParent.TI_mapOclExpression; + * check var qvtrParent : OperationCallExp[1] := when_TI_mapOperationCallExp.qvtr_qvtrExpression; + * var when_TI_mapOclExpression : trace_ATL2QVTr::TI_mapOclExpression[1] := atlArgument.TI_mapOclExpression; + * var qvtrArgument : OCLExpression[1] := when_TI_mapOclExpression.qvtr_qvtrExpression; + * new:middle trace : trace_ATL2QVTr::TC_mapOperationCallExp_argument[1]; + * set trace.atl_atlArgument := atlArgument; + * set trace.atl_atlParent := atlParent; + * set trace.qvtr_qvtrArgument := qvtrArgument; + * set trace.qvtr_qvtrParent := qvtrParent; + * set qvtrParent.ownedArguments := qvtrArgument; + * + */ + protected boolean MAP_m_TC__mapOperationCallExp__argument_atl_atlArgument_(final /*@NonInvalid*/ @NonNull OclExpression atlArgument) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_TC__mapOperationCallExp__argument_atl_atlArgument_" + ", " + atlArgument); + } + final /*@NonInvalid*/ org.eclipse.m2m.atl.common.OCL.@Nullable OperationCallExp parentOperation = atlArgument.getParentOperation(); + final /*@NonInvalid*/ boolean symbol_0 = parentOperation != null; + /*@Thrown*/ @Nullable Boolean raw_atlParent; + if (symbol_0) { + if (parentOperation == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + final /*@Thrown*/ @Nullable TI_mapOclExpression temp1_when_TI_mapOperationCallExp = OPPOSITE_OF_TI_mapOclExpression_atl_atlExpression.get(parentOperation); + final /*@NonInvalid*/ boolean symbol_1 = temp1_when_TI_mapOperationCallExp instanceof TI_mapOperationCallExp; + /*@Thrown*/ @Nullable Boolean symbol_13; + if (symbol_1) { + final /*@Thrown*/ @Nullable TI_mapOperationCallExp symbol_2 = (TI_mapOperationCallExp)temp1_when_TI_mapOperationCallExp; + if (symbol_2 == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + @SuppressWarnings("null") + final /*@Thrown*/ @NonNull OCLExpression temp1_qvtrParent = symbol_2.getQvtr_qvtrExpression(); + final /*@NonInvalid*/ boolean symbol_3 = temp1_qvtrParent instanceof org.eclipse.ocl.pivot.OperationCallExp; + /*@Thrown*/ @Nullable Boolean symbol_12; + if (symbol_3) { + final /*@Thrown*/ org.eclipse.ocl.pivot.@NonNull OperationCallExp symbol_4 = (org.eclipse.ocl.pivot.OperationCallExp)temp1_qvtrParent; + final /*@NonInvalid*/ @Nullable TI_mapOclExpression TI_mapOclExpression = OPPOSITE_OF_TI_mapOclExpression_atl_atlExpression.get(atlArgument); + final /*@NonInvalid*/ boolean symbol_5 = TI_mapOclExpression != null; + /*@Thrown*/ @Nullable Boolean raw_when_TI_mapOclExpression; + if (symbol_5) { + if (TI_mapOclExpression == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + @SuppressWarnings("null") + final /*@Thrown*/ @NonNull OCLExpression qvtr_qvtrExpression = TI_mapOclExpression.getQvtr_qvtrExpression(); + // creations + final @SuppressWarnings("null")@NonNull TC_mapOperationCallExp_argument trace_37 = trace_ATL2QVTrFactory.eINSTANCE.createTC_mapOperationCallExp_argument(); + models[0/*middle*/].add(trace_37, false); + // mapping statements + trace_37.setAtl_atlArgument(atlArgument); + trace_37.setAtl_atlParent(parentOperation); + trace_37.setQvtr_qvtrArgument(qvtr_qvtrExpression); + trace_37.setQvtr_qvtrParent(symbol_4); + symbol_4.getOwnedArguments().add(qvtr_qvtrExpression); + final /*@Thrown*/ @Nullable Boolean m_TC__mapOperationCallExp__argument_atl_atlArgument_ = ValueUtil.TRUE_VALUE; + raw_when_TI_mapOclExpression = m_TC__mapOperationCallExp__argument_atl_atlArgument_; + } + else { + raw_when_TI_mapOclExpression = ValueUtil.FALSE_VALUE; + } + symbol_12 = raw_when_TI_mapOclExpression; + } + else { + symbol_12 = ValueUtil.FALSE_VALUE; + } + symbol_13 = symbol_12; + } + else { + symbol_13 = ValueUtil.FALSE_VALUE; + } + raw_atlParent = symbol_13; + } + else { + raw_atlParent = ValueUtil.FALSE_VALUE; + } + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((raw_atlParent ? "done " : "fail ") + "MAP_m_TC__mapOperationCallExp__argument_atl_atlArgument_"); + } + return raw_atlParent; + } + + /** + * + * map m_TC__mapHelper__Attribute_qvtr_qvtrExpression_p3 in ATL2QVTr { + * guard:middle trace : trace_ATL2QVTr::TC_mapHelper_Attribute[1]; + * check trace.status; + * var atlExpression : OCL::OclExpression[1] := trace.atl_atlExpression; + * var qvtrFunction : qvtbase::Function[1] := trace.qvtr_qvtrFunction; + * var when_TI_mapOclExpression : trace_ATL2QVTr::TI_mapOclExpression[1] := atlExpression.TI_mapOclExpression; + * var qvtrExpression : OCLExpression[1] := when_TI_mapOclExpression.qvtr_qvtrExpression; + * set trace.qvtr_qvtrExpression := qvtrExpression; + * set qvtrFunction.queryExpression := qvtrExpression; + * + */ + protected boolean MAP_m_TC__mapHelper__Attribute_qvtr_qvtrExpression_p3(final /*@NonInvalid*/ @NonNull TC_mapHelper_Attribute trace_18) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_TC__mapHelper__Attribute_qvtr_qvtrExpression_p3" + ", " + trace_18); + } + final /*@NonInvalid*/ @Nullable Boolean status = trace_18.getStatus(); + if (status == null) { + throw new InvalidEvaluationException("Null if condition"); + } + /*@Thrown*/ @Nullable Boolean symbol_4; + if (status) { + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OclExpression atl_atlExpression = trace_18.getAtl_atlExpression(); + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull Function qvtr_qvtrFunction = trace_18.getQvtr_qvtrFunction(); + final /*@NonInvalid*/ @Nullable TI_mapOclExpression TI_mapOclExpression = OPPOSITE_OF_TI_mapOclExpression_atl_atlExpression.get(atl_atlExpression); + final /*@NonInvalid*/ boolean symbol_0 = TI_mapOclExpression != null; + /*@Thrown*/ @Nullable Boolean raw_when_TI_mapOclExpression; + if (symbol_0) { + if (TI_mapOclExpression == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + @SuppressWarnings("null") + final /*@Thrown*/ @NonNull OCLExpression qvtr_qvtrExpression = TI_mapOclExpression.getQvtr_qvtrExpression(); + // mapping statements + trace_18.setQvtr_qvtrExpression(qvtr_qvtrExpression); + qvtr_qvtrFunction.setQueryExpression(qvtr_qvtrExpression); + final /*@Thrown*/ @Nullable Boolean m_TC__mapHelper__Attribute_qvtr_qvtrExpression_p3 = ValueUtil.TRUE_VALUE; + raw_when_TI_mapOclExpression = m_TC__mapHelper__Attribute_qvtr_qvtrExpression_p3; + } + else { + raw_when_TI_mapOclExpression = ValueUtil.FALSE_VALUE; + } + symbol_4 = raw_when_TI_mapOclExpression; + } + else { + symbol_4 = ValueUtil.FALSE_VALUE; + } + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((symbol_4 ? "done " : "fail ") + "MAP_m_TC__mapHelper__Attribute_qvtr_qvtrExpression_p3"); + } + return symbol_4; + } + + /** + * + * map m_TC__mapHelper__Operation_qvtr_qvtrExpression_p3 in ATL2QVTr { + * guard:middle trace : trace_ATL2QVTr::TC_mapHelper_Operation[1]; + * check trace.status; + * var atlExpression : OCL::OclExpression[1] := trace.atl_atlExpression; + * var qvtrFunction : qvtbase::Function[1] := trace.qvtr_qvtrFunction; + * var when_TI_mapOclExpression : trace_ATL2QVTr::TI_mapOclExpression[1] := atlExpression.TI_mapOclExpression; + * var qvtrExpression : OCLExpression[1] := when_TI_mapOclExpression.qvtr_qvtrExpression; + * set trace.qvtr_qvtrExpression := qvtrExpression; + * set qvtrFunction.queryExpression := qvtrExpression; + * + */ + protected boolean MAP_m_TC__mapHelper__Operation_qvtr_qvtrExpression_p3(final /*@NonInvalid*/ @NonNull TC_mapHelper_Operation trace_19) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_TC__mapHelper__Operation_qvtr_qvtrExpression_p3" + ", " + trace_19); + } + final /*@NonInvalid*/ @Nullable Boolean status = trace_19.getStatus(); + if (status == null) { + throw new InvalidEvaluationException("Null if condition"); + } + /*@Thrown*/ @Nullable Boolean symbol_4; + if (status) { + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OclExpression atl_atlExpression = trace_19.getAtl_atlExpression(); + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull Function qvtr_qvtrFunction = trace_19.getQvtr_qvtrFunction(); + final /*@NonInvalid*/ @Nullable TI_mapOclExpression TI_mapOclExpression = OPPOSITE_OF_TI_mapOclExpression_atl_atlExpression.get(atl_atlExpression); + final /*@NonInvalid*/ boolean symbol_0 = TI_mapOclExpression != null; + /*@Thrown*/ @Nullable Boolean raw_when_TI_mapOclExpression; + if (symbol_0) { + if (TI_mapOclExpression == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + @SuppressWarnings("null") + final /*@Thrown*/ @NonNull OCLExpression qvtr_qvtrExpression = TI_mapOclExpression.getQvtr_qvtrExpression(); + // mapping statements + trace_19.setQvtr_qvtrExpression(qvtr_qvtrExpression); + qvtr_qvtrFunction.setQueryExpression(qvtr_qvtrExpression); + final /*@Thrown*/ @Nullable Boolean m_TC__mapHelper__Operation_qvtr_qvtrExpression_p3 = ValueUtil.TRUE_VALUE; + raw_when_TI_mapOclExpression = m_TC__mapHelper__Operation_qvtr_qvtrExpression_p3; + } + else { + raw_when_TI_mapOclExpression = ValueUtil.FALSE_VALUE; + } + symbol_4 = raw_when_TI_mapOclExpression; + } + else { + symbol_4 = ValueUtil.FALSE_VALUE; + } + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((symbol_4 ? "done " : "fail ") + "MAP_m_TC__mapHelper__Operation_qvtr_qvtrExpression_p3"); + } + return symbol_4; + } + + /** + * + * map m_TC__mapIfExp_qvtr_qvtrCondition_p3 in ATL2QVTr { + * guard:middle trace : trace_ATL2QVTr::TC_mapIfExp[1]; + * check trace.status; + * check var qvtrExpression : IfExp[1] := trace.qvtr_qvtrExpression; + * var atlCondition : OCL::OclExpression[1] := trace.atl_atlCondition; + * var when_TI_mapOclExpression : trace_ATL2QVTr::TI_mapOclExpression[1] := atlCondition.TI_mapOclExpression; + * var qvtrCondition : OCLExpression[1] := when_TI_mapOclExpression.qvtr_qvtrExpression; + * set trace.qvtr_qvtrCondition := qvtrCondition; + * set qvtrExpression.ownedCondition := qvtrCondition; + * + */ + protected boolean MAP_m_TC__mapIfExp_qvtr_qvtrCondition_p3(final /*@NonInvalid*/ @NonNull TC_mapIfExp trace_20) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_TC__mapIfExp_qvtr_qvtrCondition_p3" + ", " + trace_20); + } + final /*@NonInvalid*/ @Nullable Boolean status = trace_20.getStatus(); + if (status == null) { + throw new InvalidEvaluationException("Null if condition"); + } + /*@Thrown*/ @Nullable Boolean symbol_7; + if (status) { + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OCLExpression temp1_qvtrExpression = trace_20.getQvtr_qvtrExpression(); + final /*@NonInvalid*/ boolean symbol_0 = temp1_qvtrExpression instanceof org.eclipse.ocl.pivot.IfExp; + /*@Thrown*/ @Nullable Boolean symbol_6; + if (symbol_0) { + final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull IfExp symbol_1 = (org.eclipse.ocl.pivot.IfExp)temp1_qvtrExpression; + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OclExpression atl_atlCondition = trace_20.getAtl_atlCondition(); + final /*@NonInvalid*/ @Nullable TI_mapOclExpression TI_mapOclExpression = OPPOSITE_OF_TI_mapOclExpression_atl_atlExpression.get(atl_atlCondition); + final /*@NonInvalid*/ boolean symbol_2 = TI_mapOclExpression != null; + /*@Thrown*/ @Nullable Boolean raw_when_TI_mapOclExpression; + if (symbol_2) { + if (TI_mapOclExpression == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + @SuppressWarnings("null") + final /*@Thrown*/ @NonNull OCLExpression qvtr_qvtrExpression = TI_mapOclExpression.getQvtr_qvtrExpression(); + // mapping statements + trace_20.setQvtr_qvtrCondition(qvtr_qvtrExpression); + symbol_1.setOwnedCondition(qvtr_qvtrExpression); + final /*@Thrown*/ @Nullable Boolean m_TC__mapIfExp_qvtr_qvtrCondition_p3 = ValueUtil.TRUE_VALUE; + raw_when_TI_mapOclExpression = m_TC__mapIfExp_qvtr_qvtrCondition_p3; + } + else { + raw_when_TI_mapOclExpression = ValueUtil.FALSE_VALUE; + } + symbol_6 = raw_when_TI_mapOclExpression; + } + else { + symbol_6 = ValueUtil.FALSE_VALUE; + } + symbol_7 = symbol_6; + } + else { + symbol_7 = ValueUtil.FALSE_VALUE; + } + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((symbol_7 ? "done " : "fail ") + "MAP_m_TC__mapIfExp_qvtr_qvtrCondition_p3"); + } + return symbol_7; + } + + /** + * + * map m_TC__mapNavigationOrAttributeCallExp__Helper_qvtr_q_p3 in ATL2QVTr { + * guard:middle trace : trace_ATL2QVTr::TC_mapNavigationOrAttributeCallExp_Helper[1]; + * check trace.status; + * check var qvtrExpression : OperationCallExp[1] := trace.qvtr_qvtrExpression; + * var atlSource : OCL::OclExpression[1] := trace.atl_atlSource; + * var when_TI_mapOclExpression : trace_ATL2QVTr::TI_mapOclExpression[1] := atlSource.TI_mapOclExpression; + * var qvtrSourceArgument : OCLExpression[1] := when_TI_mapOclExpression.qvtr_qvtrExpression; + * set trace.qvtr_qvtrSourceArgument := qvtrSourceArgument; + * set qvtrExpression.ownedArguments := qvtrSourceArgument; + * + */ + protected boolean MAP_m_TC__mapNavigationOrAttributeCallExp__Helper_qvtr_q_p3(final /*@NonInvalid*/ @NonNull TC_mapNavigationOrAttributeCallExp_Helper trace_21) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_TC__mapNavigationOrAttributeCallExp__Helper_qvtr_q_p3" + ", " + trace_21); + } + final /*@NonInvalid*/ @Nullable Boolean status = trace_21.getStatus(); + if (status == null) { + throw new InvalidEvaluationException("Null if condition"); + } + /*@Thrown*/ @Nullable Boolean symbol_7; + if (status) { + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OCLExpression temp1_qvtrExpression = trace_21.getQvtr_qvtrExpression(); + final /*@NonInvalid*/ boolean symbol_0 = temp1_qvtrExpression instanceof org.eclipse.ocl.pivot.OperationCallExp; + /*@Thrown*/ @Nullable Boolean symbol_6; + if (symbol_0) { + final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull OperationCallExp symbol_1 = (org.eclipse.ocl.pivot.OperationCallExp)temp1_qvtrExpression; + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OclExpression atl_atlSource = trace_21.getAtl_atlSource(); + final /*@NonInvalid*/ @Nullable TI_mapOclExpression TI_mapOclExpression = OPPOSITE_OF_TI_mapOclExpression_atl_atlExpression.get(atl_atlSource); + final /*@NonInvalid*/ boolean symbol_2 = TI_mapOclExpression != null; + /*@Thrown*/ @Nullable Boolean raw_when_TI_mapOclExpression; + if (symbol_2) { + if (TI_mapOclExpression == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + @SuppressWarnings("null") + final /*@Thrown*/ @NonNull OCLExpression qvtr_qvtrExpression = TI_mapOclExpression.getQvtr_qvtrExpression(); + // mapping statements + trace_21.setQvtr_qvtrSourceArgument(qvtr_qvtrExpression); + symbol_1.getOwnedArguments().add(qvtr_qvtrExpression); + final /*@Thrown*/ @Nullable Boolean m_TC__mapNavigationOrAttributeCallExp__Helper_qvtr_q_p3 = ValueUtil.TRUE_VALUE; + raw_when_TI_mapOclExpression = m_TC__mapNavigationOrAttributeCallExp__Helper_qvtr_q_p3; + } + else { + raw_when_TI_mapOclExpression = ValueUtil.FALSE_VALUE; + } + symbol_6 = raw_when_TI_mapOclExpression; + } + else { + symbol_6 = ValueUtil.FALSE_VALUE; + } + symbol_7 = symbol_6; + } + else { + symbol_7 = ValueUtil.FALSE_VALUE; + } + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((symbol_7 ? "done " : "fail ") + "MAP_m_TC__mapNavigationOrAttributeCallExp__Helper_qvtr_q_p3"); + } + return symbol_7; + } + + /** + * + * map m_TC__mapNavigationOrAttributeCallExp__Property_qvtr_p3 in ATL2QVTr { + * guard:middle trace : trace_ATL2QVTr::TC_mapNavigationOrAttributeCallExp_Property[1]; + * check trace.status; + * check var qvtrExpression : PropertyCallExp[1] := trace.qvtr_qvtrExpression; + * var atlSource : OCL::OclExpression[1] := trace.atl_atlSource; + * var when_TI_mapOclExpression : trace_ATL2QVTr::TI_mapOclExpression[1] := atlSource.TI_mapOclExpression; + * var qvtrSource : OCLExpression[1] := when_TI_mapOclExpression.qvtr_qvtrExpression; + * set qvtrExpression.ownedSource := qvtrSource; + * set trace.qvtr_qvtrSource := qvtrSource; + * + */ + protected boolean MAP_m_TC__mapNavigationOrAttributeCallExp__Property_qvtr_p3(final /*@NonInvalid*/ @NonNull TC_mapNavigationOrAttributeCallExp_Property trace_22) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_TC__mapNavigationOrAttributeCallExp__Property_qvtr_p3" + ", " + trace_22); + } + final /*@NonInvalid*/ @Nullable Boolean status = trace_22.getStatus(); + if (status == null) { + throw new InvalidEvaluationException("Null if condition"); + } + /*@Thrown*/ @Nullable Boolean symbol_7; + if (status) { + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OCLExpression temp1_qvtrExpression = trace_22.getQvtr_qvtrExpression(); + final /*@NonInvalid*/ boolean symbol_0 = temp1_qvtrExpression instanceof PropertyCallExp; + /*@Thrown*/ @Nullable Boolean symbol_6; + if (symbol_0) { + final /*@NonInvalid*/ @NonNull PropertyCallExp symbol_1 = (PropertyCallExp)temp1_qvtrExpression; + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OclExpression atl_atlSource = trace_22.getAtl_atlSource(); + final /*@NonInvalid*/ @Nullable TI_mapOclExpression TI_mapOclExpression = OPPOSITE_OF_TI_mapOclExpression_atl_atlExpression.get(atl_atlSource); + final /*@NonInvalid*/ boolean symbol_2 = TI_mapOclExpression != null; + /*@Thrown*/ @Nullable Boolean raw_when_TI_mapOclExpression; + if (symbol_2) { + if (TI_mapOclExpression == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + @SuppressWarnings("null") + final /*@Thrown*/ @NonNull OCLExpression qvtr_qvtrExpression = TI_mapOclExpression.getQvtr_qvtrExpression(); + // mapping statements + symbol_1.setOwnedSource(qvtr_qvtrExpression); + trace_22.setQvtr_qvtrSource(qvtr_qvtrExpression); + final /*@Thrown*/ @Nullable Boolean m_TC__mapNavigationOrAttributeCallExp__Property_qvtr_p3 = ValueUtil.TRUE_VALUE; + raw_when_TI_mapOclExpression = m_TC__mapNavigationOrAttributeCallExp__Property_qvtr_p3; + } + else { + raw_when_TI_mapOclExpression = ValueUtil.FALSE_VALUE; + } + symbol_6 = raw_when_TI_mapOclExpression; + } + else { + symbol_6 = ValueUtil.FALSE_VALUE; + } + symbol_7 = symbol_6; + } + else { + symbol_7 = ValueUtil.FALSE_VALUE; + } + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((symbol_7 ? "done " : "fail ") + "MAP_m_TC__mapNavigationOrAttributeCallExp__Property_qvtr_p3"); + } + return symbol_7; + } + + /** + * + * map m_TC__mapOperationCallExp__Helper_qvtr_qvtrSourceArg_p3 in ATL2QVTr { + * guard:middle trace : trace_ATL2QVTr::TC_mapOperationCallExp_Helper[1]; + * check trace.status; + * check var qvtrExpression : OperationCallExp[1] := trace.qvtr_qvtrExpression; + * var atlSource : OCL::OclExpression[1] := trace.atl_atlSource; + * var when_TI_mapOclExpression : trace_ATL2QVTr::TI_mapOclExpression[1] := atlSource.TI_mapOclExpression; + * var qvtrSourceArgument : OCLExpression[1] := when_TI_mapOclExpression.qvtr_qvtrExpression; + * set trace.qvtr_qvtrSourceArgument := qvtrSourceArgument; + * set qvtrExpression.ownedArguments := qvtrSourceArgument; + * + */ + protected boolean MAP_m_TC__mapOperationCallExp__Helper_qvtr_qvtrSourceArg_p3(final /*@NonInvalid*/ @NonNull TC_mapOperationCallExp_Helper trace_23) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_TC__mapOperationCallExp__Helper_qvtr_qvtrSourceArg_p3" + ", " + trace_23); + } + final /*@NonInvalid*/ @Nullable Boolean status = trace_23.getStatus(); + if (status == null) { + throw new InvalidEvaluationException("Null if condition"); + } + /*@Thrown*/ @Nullable Boolean symbol_7; + if (status) { + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OCLExpression temp1_qvtrExpression = trace_23.getQvtr_qvtrExpression(); + final /*@NonInvalid*/ boolean symbol_0 = temp1_qvtrExpression instanceof org.eclipse.ocl.pivot.OperationCallExp; + /*@Thrown*/ @Nullable Boolean symbol_6; + if (symbol_0) { + final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull OperationCallExp symbol_1 = (org.eclipse.ocl.pivot.OperationCallExp)temp1_qvtrExpression; + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OclExpression atl_atlSource = trace_23.getAtl_atlSource(); + final /*@NonInvalid*/ @Nullable TI_mapOclExpression TI_mapOclExpression = OPPOSITE_OF_TI_mapOclExpression_atl_atlExpression.get(atl_atlSource); + final /*@NonInvalid*/ boolean symbol_2 = TI_mapOclExpression != null; + /*@Thrown*/ @Nullable Boolean raw_when_TI_mapOclExpression; + if (symbol_2) { + if (TI_mapOclExpression == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + @SuppressWarnings("null") + final /*@Thrown*/ @NonNull OCLExpression qvtr_qvtrExpression = TI_mapOclExpression.getQvtr_qvtrExpression(); + // mapping statements + trace_23.setQvtr_qvtrSourceArgument(qvtr_qvtrExpression); + symbol_1.getOwnedArguments().add(qvtr_qvtrExpression); + final /*@Thrown*/ @Nullable Boolean m_TC__mapOperationCallExp__Helper_qvtr_qvtrSourceArg_p3 = ValueUtil.TRUE_VALUE; + raw_when_TI_mapOclExpression = m_TC__mapOperationCallExp__Helper_qvtr_qvtrSourceArg_p3; + } + else { + raw_when_TI_mapOclExpression = ValueUtil.FALSE_VALUE; + } + symbol_6 = raw_when_TI_mapOclExpression; + } + else { + symbol_6 = ValueUtil.FALSE_VALUE; + } + symbol_7 = symbol_6; + } + else { + symbol_7 = ValueUtil.FALSE_VALUE; + } + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((symbol_7 ? "done " : "fail ") + "MAP_m_TC__mapOperationCallExp__Helper_qvtr_qvtrSourceArg_p3"); + } + return symbol_7; + } + + /** + * + * map m_TC__mapOperationCallExp__Operation_qvtr_qvtrSource_p3 in ATL2QVTr { + * guard:middle trace : trace_ATL2QVTr::TC_mapOperationCallExp_Operation[1]; + * check trace.status; + * check var qvtrExpression : OperationCallExp[1] := trace.qvtr_qvtrExpression; + * var atlSource : OCL::OclExpression[1] := trace.atl_atlSource; + * var when_TI_mapOclExpression : trace_ATL2QVTr::TI_mapOclExpression[1] := atlSource.TI_mapOclExpression; + * var qvtrSource : OCLExpression[1] := when_TI_mapOclExpression.qvtr_qvtrExpression; + * set trace.qvtr_qvtrSource := qvtrSource; + * set qvtrExpression.ownedSource := qvtrSource; + * + */ + protected boolean MAP_m_TC__mapOperationCallExp__Operation_qvtr_qvtrSource_p3(final /*@NonInvalid*/ @NonNull TC_mapOperationCallExp_Operation trace_24) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_TC__mapOperationCallExp__Operation_qvtr_qvtrSource_p3" + ", " + trace_24); + } + final /*@NonInvalid*/ @Nullable Boolean status = trace_24.getStatus(); + if (status == null) { + throw new InvalidEvaluationException("Null if condition"); + } + /*@Thrown*/ @Nullable Boolean symbol_7; + if (status) { + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OCLExpression temp1_qvtrExpression = trace_24.getQvtr_qvtrExpression(); + final /*@NonInvalid*/ boolean symbol_0 = temp1_qvtrExpression instanceof org.eclipse.ocl.pivot.OperationCallExp; + /*@Thrown*/ @Nullable Boolean symbol_6; + if (symbol_0) { + final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull OperationCallExp symbol_1 = (org.eclipse.ocl.pivot.OperationCallExp)temp1_qvtrExpression; + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OclExpression atl_atlSource = trace_24.getAtl_atlSource(); + final /*@NonInvalid*/ @Nullable TI_mapOclExpression TI_mapOclExpression = OPPOSITE_OF_TI_mapOclExpression_atl_atlExpression.get(atl_atlSource); + final /*@NonInvalid*/ boolean symbol_2 = TI_mapOclExpression != null; + /*@Thrown*/ @Nullable Boolean raw_when_TI_mapOclExpression; + if (symbol_2) { + if (TI_mapOclExpression == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + @SuppressWarnings("null") + final /*@Thrown*/ @NonNull OCLExpression qvtr_qvtrExpression = TI_mapOclExpression.getQvtr_qvtrExpression(); + // mapping statements + trace_24.setQvtr_qvtrSource(qvtr_qvtrExpression); + symbol_1.setOwnedSource(qvtr_qvtrExpression); + final /*@Thrown*/ @Nullable Boolean m_TC__mapOperationCallExp__Operation_qvtr_qvtrSource_p3 = ValueUtil.TRUE_VALUE; + raw_when_TI_mapOclExpression = m_TC__mapOperationCallExp__Operation_qvtr_qvtrSource_p3; + } + else { + raw_when_TI_mapOclExpression = ValueUtil.FALSE_VALUE; + } + symbol_6 = raw_when_TI_mapOclExpression; + } + else { + symbol_6 = ValueUtil.FALSE_VALUE; + } + symbol_7 = symbol_6; + } + else { + symbol_7 = ValueUtil.FALSE_VALUE; + } + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((symbol_7 ? "done " : "fail ") + "MAP_m_TC__mapOperationCallExp__Operation_qvtr_qvtrSource_p3"); + } + return symbol_7; + } + + /** + * + * map m_TC__mapOperatorCallExp_qvtr_qvtrSource_p3 in ATL2QVTr { + * guard:middle trace : trace_ATL2QVTr::TC_mapOperatorCallExp[1]; + * check trace.status; + * check var qvtrExpression : OperationCallExp[1] := trace.qvtr_qvtrExpression; + * var atlSource : OCL::OclExpression[1] := trace.atl_atlSource; + * var when_TI_mapOclExpression : trace_ATL2QVTr::TI_mapOclExpression[1] := atlSource.TI_mapOclExpression; + * var qvtrSource : OCLExpression[1] := when_TI_mapOclExpression.qvtr_qvtrExpression; + * set qvtrExpression.ownedSource := qvtrSource; + * set trace.qvtr_qvtrSource := qvtrSource; + * + */ + protected boolean MAP_m_TC__mapOperatorCallExp_qvtr_qvtrSource_p3(final /*@NonInvalid*/ @NonNull TC_mapOperatorCallExp trace_25) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_TC__mapOperatorCallExp_qvtr_qvtrSource_p3" + ", " + trace_25); + } + final /*@NonInvalid*/ @Nullable Boolean status = trace_25.getStatus(); + if (status == null) { + throw new InvalidEvaluationException("Null if condition"); + } + /*@Thrown*/ @Nullable Boolean symbol_7; + if (status) { + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OCLExpression temp1_qvtrExpression = trace_25.getQvtr_qvtrExpression(); + final /*@NonInvalid*/ boolean symbol_0 = temp1_qvtrExpression instanceof org.eclipse.ocl.pivot.OperationCallExp; + /*@Thrown*/ @Nullable Boolean symbol_6; + if (symbol_0) { + final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull OperationCallExp symbol_1 = (org.eclipse.ocl.pivot.OperationCallExp)temp1_qvtrExpression; + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OclExpression atl_atlSource = trace_25.getAtl_atlSource(); + final /*@NonInvalid*/ @Nullable TI_mapOclExpression TI_mapOclExpression = OPPOSITE_OF_TI_mapOclExpression_atl_atlExpression.get(atl_atlSource); + final /*@NonInvalid*/ boolean symbol_2 = TI_mapOclExpression != null; + /*@Thrown*/ @Nullable Boolean raw_when_TI_mapOclExpression; + if (symbol_2) { + if (TI_mapOclExpression == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + @SuppressWarnings("null") + final /*@Thrown*/ @NonNull OCLExpression qvtr_qvtrExpression = TI_mapOclExpression.getQvtr_qvtrExpression(); + // mapping statements + symbol_1.setOwnedSource(qvtr_qvtrExpression); + trace_25.setQvtr_qvtrSource(qvtr_qvtrExpression); + final /*@Thrown*/ @Nullable Boolean m_TC__mapOperatorCallExp_qvtr_qvtrSource_p3 = ValueUtil.TRUE_VALUE; + raw_when_TI_mapOclExpression = m_TC__mapOperatorCallExp_qvtr_qvtrSource_p3; + } + else { + raw_when_TI_mapOclExpression = ValueUtil.FALSE_VALUE; + } + symbol_6 = raw_when_TI_mapOclExpression; + } + else { + symbol_6 = ValueUtil.FALSE_VALUE; + } + symbol_7 = symbol_6; + } + else { + symbol_7 = ValueUtil.FALSE_VALUE; + } + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((symbol_7 ? "done " : "fail ") + "MAP_m_TC__mapOperatorCallExp_qvtr_qvtrSource_p3"); + } + return symbol_7; + } + + /** + * + * map m_TC__mapIfExp_qvtr_qvtrElse_p4 in ATL2QVTr { + * guard:middle trace : trace_ATL2QVTr::TC_mapIfExp[1]; + * check trace.status; + * check var qvtrExpression : IfExp[1] := trace.qvtr_qvtrExpression; + * var atlElse : OCL::OclExpression[1] := trace.atl_atlElse; + * var when_TI_mapOclExpression_1 : trace_ATL2QVTr::TI_mapOclExpression[1] := atlElse.TI_mapOclExpression; + * var qvtrElse : OCLExpression[1] := when_TI_mapOclExpression_1.qvtr_qvtrExpression; + * set qvtrExpression.ownedElse := qvtrElse; + * set trace.qvtr_qvtrElse := qvtrElse; + * + */ + protected boolean MAP_m_TC__mapIfExp_qvtr_qvtrElse_p4(final /*@NonInvalid*/ @NonNull TC_mapIfExp trace_26) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_TC__mapIfExp_qvtr_qvtrElse_p4" + ", " + trace_26); + } + final /*@NonInvalid*/ @Nullable Boolean status = trace_26.getStatus(); + if (status == null) { + throw new InvalidEvaluationException("Null if condition"); + } + /*@Thrown*/ @Nullable Boolean symbol_7; + if (status) { + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OCLExpression temp1_qvtrExpression = trace_26.getQvtr_qvtrExpression(); + final /*@NonInvalid*/ boolean symbol_0 = temp1_qvtrExpression instanceof org.eclipse.ocl.pivot.IfExp; + /*@Thrown*/ @Nullable Boolean symbol_6; + if (symbol_0) { + final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull IfExp symbol_1 = (org.eclipse.ocl.pivot.IfExp)temp1_qvtrExpression; + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OclExpression atl_atlElse = trace_26.getAtl_atlElse(); + final /*@NonInvalid*/ @Nullable TI_mapOclExpression TI_mapOclExpression = OPPOSITE_OF_TI_mapOclExpression_atl_atlExpression.get(atl_atlElse); + final /*@NonInvalid*/ boolean symbol_2 = TI_mapOclExpression != null; + /*@Thrown*/ @Nullable Boolean raw_when_TI_mapOclExpression_1; + if (symbol_2) { + if (TI_mapOclExpression == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + @SuppressWarnings("null") + final /*@Thrown*/ @NonNull OCLExpression qvtr_qvtrExpression = TI_mapOclExpression.getQvtr_qvtrExpression(); + // mapping statements + symbol_1.setOwnedElse(qvtr_qvtrExpression); + trace_26.setQvtr_qvtrElse(qvtr_qvtrExpression); + final /*@Thrown*/ @Nullable Boolean m_TC__mapIfExp_qvtr_qvtrElse_p4 = ValueUtil.TRUE_VALUE; + raw_when_TI_mapOclExpression_1 = m_TC__mapIfExp_qvtr_qvtrElse_p4; + } + else { + raw_when_TI_mapOclExpression_1 = ValueUtil.FALSE_VALUE; + } + symbol_6 = raw_when_TI_mapOclExpression_1; + } + else { + symbol_6 = ValueUtil.FALSE_VALUE; + } + symbol_7 = symbol_6; + } + else { + symbol_7 = ValueUtil.FALSE_VALUE; + } + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((symbol_7 ? "done " : "fail ") + "MAP_m_TC__mapIfExp_qvtr_qvtrElse_p4"); + } + return symbol_7; + } + + /** + * + * map m_TC__mapNavigationOrAttributeCallExp__Helper__CallE_p4 in ATL2QVTr { + * guard:middle trace : trace_ATL2QVTr::TC_mapNavigationOrAttributeCallExp_Helper[1]; + * check trace.status; + * check var qvtrExpression : OperationCallExp[1] := trace.qvtr_qvtrExpression; + * var qvtrSource : VariableExp[1] := trace.qvtr_qvtrSource; + * set qvtrExpression.ownedSource := qvtrSource; + * + */ + protected boolean MAP_m_TC__mapNavigationOrAttributeCallExp__Helper__CallE_p4(final /*@NonInvalid*/ @NonNull TC_mapNavigationOrAttributeCallExp_Helper trace_27) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_TC__mapNavigationOrAttributeCallExp__Helper__CallE_p4" + ", " + trace_27); + } + final /*@NonInvalid*/ @Nullable Boolean status = trace_27.getStatus(); + if (status == null) { + throw new InvalidEvaluationException("Null if condition"); + } + /*@Thrown*/ @Nullable Boolean symbol_5; + if (status) { + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OCLExpression temp1_qvtrExpression = trace_27.getQvtr_qvtrExpression(); + final /*@NonInvalid*/ boolean symbol_0 = temp1_qvtrExpression instanceof org.eclipse.ocl.pivot.OperationCallExp; + /*@Thrown*/ @Nullable Boolean symbol_4; + if (symbol_0) { + final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull OperationCallExp symbol_1 = (org.eclipse.ocl.pivot.OperationCallExp)temp1_qvtrExpression; + @SuppressWarnings("null") + final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull VariableExp qvtr_qvtrSource = trace_27.getQvtr_qvtrSource(); + // mapping statements + symbol_1.setOwnedSource(qvtr_qvtrSource); + final /*@Thrown*/ @Nullable Boolean m_TC__mapNavigationOrAttributeCallExp__Helper__CallE_p4 = ValueUtil.TRUE_VALUE; + symbol_4 = m_TC__mapNavigationOrAttributeCallExp__Helper__CallE_p4; + } + else { + symbol_4 = ValueUtil.FALSE_VALUE; + } + symbol_5 = symbol_4; + } + else { + symbol_5 = ValueUtil.FALSE_VALUE; + } + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((symbol_5 ? "done " : "fail ") + "MAP_m_TC__mapNavigationOrAttributeCallExp__Helper__CallE_p4"); + } + return symbol_5; + } + + /** + * + * map m_TC__mapOperationCallExp__Helper__CallExp_ownedSour_p4 in ATL2QVTr { + * guard:middle trace : trace_ATL2QVTr::TC_mapOperationCallExp_Helper[1]; + * check trace.status; + * check var qvtrExpression : OperationCallExp[1] := trace.qvtr_qvtrExpression; + * var qvtrSource : VariableExp[1] := trace.qvtr_qvtrSource; + * set qvtrExpression.ownedSource := qvtrSource; + * + */ + protected boolean MAP_m_TC__mapOperationCallExp__Helper__CallExp_ownedSour_p4(final /*@NonInvalid*/ @NonNull TC_mapOperationCallExp_Helper trace_28) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_TC__mapOperationCallExp__Helper__CallExp_ownedSour_p4" + ", " + trace_28); + } + final /*@NonInvalid*/ @Nullable Boolean status = trace_28.getStatus(); + if (status == null) { + throw new InvalidEvaluationException("Null if condition"); + } + /*@Thrown*/ @Nullable Boolean symbol_5; + if (status) { + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OCLExpression temp1_qvtrExpression = trace_28.getQvtr_qvtrExpression(); + final /*@NonInvalid*/ boolean symbol_0 = temp1_qvtrExpression instanceof org.eclipse.ocl.pivot.OperationCallExp; + /*@Thrown*/ @Nullable Boolean symbol_4; + if (symbol_0) { + final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull OperationCallExp symbol_1 = (org.eclipse.ocl.pivot.OperationCallExp)temp1_qvtrExpression; + @SuppressWarnings("null") + final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull VariableExp qvtr_qvtrSource = trace_28.getQvtr_qvtrSource(); + // mapping statements + symbol_1.setOwnedSource(qvtr_qvtrSource); + final /*@Thrown*/ @Nullable Boolean m_TC__mapOperationCallExp__Helper__CallExp_ownedSour_p4 = ValueUtil.TRUE_VALUE; + symbol_4 = m_TC__mapOperationCallExp__Helper__CallExp_ownedSour_p4; + } + else { + symbol_4 = ValueUtil.FALSE_VALUE; + } + symbol_5 = symbol_4; + } + else { + symbol_5 = ValueUtil.FALSE_VALUE; + } + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((symbol_5 ? "done " : "fail ") + "MAP_m_TC__mapOperationCallExp__Helper__CallExp_ownedSour_p4"); + } + return symbol_5; + } + + /** + * + * map m_TC__mapIfExp_qvtr_qvtrThen_p5 in ATL2QVTr { + * guard:middle trace : trace_ATL2QVTr::TC_mapIfExp[1]; + * check trace.status; + * check var qvtrExpression : IfExp[1] := trace.qvtr_qvtrExpression; + * var atlThen : OCL::OclExpression[1] := trace.atl_atlThen; + * var when_TI_mapOclExpression_0 : trace_ATL2QVTr::TI_mapOclExpression[1] := atlThen.TI_mapOclExpression; + * var qvtrThen : OCLExpression[1] := when_TI_mapOclExpression_0.qvtr_qvtrExpression; + * set trace.qvtr_qvtrThen := qvtrThen; + * set qvtrExpression.ownedThen := qvtrThen; + * + */ + protected boolean MAP_m_TC__mapIfExp_qvtr_qvtrThen_p5(final /*@NonInvalid*/ @NonNull TC_mapIfExp trace_29) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_TC__mapIfExp_qvtr_qvtrThen_p5" + ", " + trace_29); + } + final /*@NonInvalid*/ @Nullable Boolean status = trace_29.getStatus(); + if (status == null) { + throw new InvalidEvaluationException("Null if condition"); + } + /*@Thrown*/ @Nullable Boolean symbol_7; + if (status) { + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OCLExpression temp1_qvtrExpression = trace_29.getQvtr_qvtrExpression(); + final /*@NonInvalid*/ boolean symbol_0 = temp1_qvtrExpression instanceof org.eclipse.ocl.pivot.IfExp; + /*@Thrown*/ @Nullable Boolean symbol_6; + if (symbol_0) { + final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull IfExp symbol_1 = (org.eclipse.ocl.pivot.IfExp)temp1_qvtrExpression; + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OclExpression atl_atlThen = trace_29.getAtl_atlThen(); + final /*@NonInvalid*/ @Nullable TI_mapOclExpression TI_mapOclExpression = OPPOSITE_OF_TI_mapOclExpression_atl_atlExpression.get(atl_atlThen); + final /*@NonInvalid*/ boolean symbol_2 = TI_mapOclExpression != null; + /*@Thrown*/ @Nullable Boolean raw_when_TI_mapOclExpression_0; + if (symbol_2) { + if (TI_mapOclExpression == null) { + throw new InvalidEvaluationException("Null where non-null value required"); + } + @SuppressWarnings("null") + final /*@Thrown*/ @NonNull OCLExpression qvtr_qvtrExpression = TI_mapOclExpression.getQvtr_qvtrExpression(); + // mapping statements + trace_29.setQvtr_qvtrThen(qvtr_qvtrExpression); + symbol_1.setOwnedThen(qvtr_qvtrExpression); + final /*@Thrown*/ @Nullable Boolean m_TC__mapIfExp_qvtr_qvtrThen_p5 = ValueUtil.TRUE_VALUE; + raw_when_TI_mapOclExpression_0 = m_TC__mapIfExp_qvtr_qvtrThen_p5; + } + else { + raw_when_TI_mapOclExpression_0 = ValueUtil.FALSE_VALUE; + } + symbol_6 = raw_when_TI_mapOclExpression_0; + } + else { + symbol_6 = ValueUtil.FALSE_VALUE; + } + symbol_7 = symbol_6; + } + else { + symbol_7 = ValueUtil.FALSE_VALUE; + } + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((symbol_7 ? "done " : "fail ") + "MAP_m_TC__mapIfExp_qvtr_qvtrThen_p5"); + } + return symbol_7; + } + + /** + * + * map m_TC__mapNavigationOrAttributeCallExp__Property__typ_p5 in ATL2QVTr { + * + * guard:middle trace : trace_ATL2QVTr::TC_mapNavigationOrAttributeCallExp_Property[1]; + * check trace.status; + * check var qvtrExpression : PropertyCallExp[1] := trace.qvtr_qvtrExpression; + * var qvtrSource : OCLExpression[1] := trace.qvtr_qvtrSource; + * var type : Type[?] := qvtrSource.type; + * var propertyName : String[1] := trace.primitive_propertyName; + * var qvtrProperty : Property[1] := this.getProperty(type, propertyName); + * var type1 : Type[?] := qvtrProperty.type; + * notify set qvtrExpression.type := type1; + * + */ + protected class MAP_m_TC__mapNavigationOrAttributeCallExp__Property__typ_p5 extends AbstractInvocation + { + protected final /*@NonInvalid*/ @NonNull TC_mapNavigationOrAttributeCallExp_Property trace_30; + + public MAP_m_TC__mapNavigationOrAttributeCallExp__Property__typ_p5(@NonNull InvocationConstructor constructor, @NonNull Object @NonNull [] boundValues) { + super(constructor); + trace_30 = (TC_mapNavigationOrAttributeCallExp_Property)boundValues[0]; + } + + @Override + public boolean execute() { + final /*@NonInvalid*/ @Nullable Boolean status = trace_30.getStatus(); + if (status == null) { + throw new InvalidEvaluationException("Null if condition"); + } + /*@Thrown*/ @Nullable Boolean symbol_5; + if (status) { + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OCLExpression temp1_qvtrExpression = trace_30.getQvtr_qvtrExpression(); + final /*@NonInvalid*/ boolean symbol_0 = temp1_qvtrExpression instanceof PropertyCallExp; + /*@Thrown*/ @Nullable Boolean symbol_4; + if (symbol_0) { + final /*@NonInvalid*/ @NonNull PropertyCallExp symbol_1 = (PropertyCallExp)temp1_qvtrExpression; + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OCLExpression qvtr_qvtrSource = trace_30.getQvtr_qvtrSource(); + objectManager.getting(qvtr_qvtrSource, PivotPackage.Literals.TYPED_ELEMENT__TYPE, false); + final /*@NonInvalid*/ @Nullable Type type_2 = qvtr_qvtrSource.getType(); + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull String primitive_propertyName = trace_30.getPrimitive_propertyName(); + final /*@Thrown*/ @NonNull Property getProperty = ((FUN_getProperty)FTOR_getProperty.getUniqueComputation(ATL2QVTr.this, type_2, primitive_propertyName)).instance; + objectManager.getting(getProperty, PivotPackage.Literals.TYPED_ELEMENT__TYPE, false); + final /*@Thrown*/ @Nullable Type type_3 = getProperty.getType(); + // mapping statements + symbol_1.setType(type_3); + objectManager.assigned(symbol_1, PivotPackage.Literals.TYPED_ELEMENT__TYPE, type_3); + final /*@Thrown*/ @Nullable Boolean m_TC__mapNavigationOrAttributeCallExp__Property__typ_p5 = ValueUtil.TRUE_VALUE; + symbol_4 = m_TC__mapNavigationOrAttributeCallExp__Property__typ_p5; + } + else { + symbol_4 = ValueUtil.FALSE_VALUE; + } + symbol_5 = symbol_4; + } + else { + symbol_5 = ValueUtil.FALSE_VALUE; + } + return symbol_5; + } + + @Override + public boolean isEqual(@NonNull IdResolver idResolver, @NonNull Object @NonNull [] thoseValues) { + return idResolver.oclEquals(trace_30, thoseValues[0]); + } + } + + /** + * + * map m_TC__mapOperationCallExp__Operation__type_p5 in ATL2QVTr { + * + * guard:middle trace : trace_ATL2QVTr::TC_mapOperationCallExp_Operation[1]; + * check trace.status; + * check var qvtrExpression : OperationCallExp[1] := trace.qvtr_qvtrExpression; + * var qvtrSource : OCLExpression[1] := trace.qvtr_qvtrSource; + * var type : Type[?] := qvtrSource.type; + * var operationName : String[1] := trace.primitive_operationName; + * var qvtrOperation : Operation[1] := this.getOperation(type, operationName); + * var type1 : Type[?] := qvtrOperation.type; + * notify set qvtrExpression.type := type1; + * + */ + protected class MAP_m_TC__mapOperationCallExp__Operation__type_p5 extends AbstractInvocation + { + protected final /*@NonInvalid*/ @NonNull TC_mapOperationCallExp_Operation trace_31; + + public MAP_m_TC__mapOperationCallExp__Operation__type_p5(@NonNull InvocationConstructor constructor, @NonNull Object @NonNull [] boundValues) { + super(constructor); + trace_31 = (TC_mapOperationCallExp_Operation)boundValues[0]; + } + + @Override + public boolean execute() { + final /*@NonInvalid*/ @Nullable Boolean status = trace_31.getStatus(); + if (status == null) { + throw new InvalidEvaluationException("Null if condition"); + } + /*@Thrown*/ @Nullable Boolean symbol_5; + if (status) { + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OCLExpression temp1_qvtrExpression = trace_31.getQvtr_qvtrExpression(); + final /*@NonInvalid*/ boolean symbol_0 = temp1_qvtrExpression instanceof org.eclipse.ocl.pivot.OperationCallExp; + /*@Thrown*/ @Nullable Boolean symbol_4; + if (symbol_0) { + final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull OperationCallExp symbol_1 = (org.eclipse.ocl.pivot.OperationCallExp)temp1_qvtrExpression; + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OCLExpression qvtr_qvtrSource = trace_31.getQvtr_qvtrSource(); + objectManager.getting(qvtr_qvtrSource, PivotPackage.Literals.TYPED_ELEMENT__TYPE, false); + final /*@NonInvalid*/ @Nullable Type type_2 = qvtr_qvtrSource.getType(); + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull String primitive_operationName = trace_31.getPrimitive_operationName(); + final /*@Thrown*/ org.eclipse.ocl.pivot.@NonNull Operation getOperation = ((FUN_getOperation)FTOR_getOperation.getUniqueComputation(ATL2QVTr.this, type_2, primitive_operationName)).instance; + objectManager.getting(getOperation, PivotPackage.Literals.TYPED_ELEMENT__TYPE, false); + final /*@Thrown*/ @Nullable Type type_3 = getOperation.getType(); + // mapping statements + symbol_1.setType(type_3); + objectManager.assigned(symbol_1, PivotPackage.Literals.TYPED_ELEMENT__TYPE, type_3); + final /*@Thrown*/ @Nullable Boolean m_TC__mapOperationCallExp__Operation__type_p5 = ValueUtil.TRUE_VALUE; + symbol_4 = m_TC__mapOperationCallExp__Operation__type_p5; + } + else { + symbol_4 = ValueUtil.FALSE_VALUE; + } + symbol_5 = symbol_4; + } + else { + symbol_5 = ValueUtil.FALSE_VALUE; + } + return symbol_5; + } + + @Override + public boolean isEqual(@NonNull IdResolver idResolver, @NonNull Object @NonNull [] thoseValues) { + return idResolver.oclEquals(trace_31, thoseValues[0]); + } + } + + /** + * + * map m_TC__mapOperatorCallExp__type_p5 in ATL2QVTr { + * + * guard:middle trace : trace_ATL2QVTr::TC_mapOperatorCallExp[1]; + * check trace.status; + * check var qvtrExpression : OperationCallExp[1] := trace.qvtr_qvtrExpression; + * var qvtrSource : OCLExpression[1] := trace.qvtr_qvtrSource; + * var type : Type[?] := qvtrSource.type; + * var operationName : String[1] := trace.primitive_operationName; + * var qvtrOperation : Operation[1] := this.getOperation(type, operationName); + * var type1 : Type[?] := qvtrOperation.type; + * notify set qvtrExpression.type := type1; + * + */ + protected class MAP_m_TC__mapOperatorCallExp__type_p5 extends AbstractInvocation + { + protected final /*@NonInvalid*/ @NonNull TC_mapOperatorCallExp trace_32; + + public MAP_m_TC__mapOperatorCallExp__type_p5(@NonNull InvocationConstructor constructor, @NonNull Object @NonNull [] boundValues) { + super(constructor); + trace_32 = (TC_mapOperatorCallExp)boundValues[0]; + } + + @Override + public boolean execute() { + final /*@NonInvalid*/ @Nullable Boolean status = trace_32.getStatus(); + if (status == null) { + throw new InvalidEvaluationException("Null if condition"); + } + /*@Thrown*/ @Nullable Boolean symbol_5; + if (status) { + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OCLExpression temp1_qvtrExpression = trace_32.getQvtr_qvtrExpression(); + final /*@NonInvalid*/ boolean symbol_0 = temp1_qvtrExpression instanceof org.eclipse.ocl.pivot.OperationCallExp; + /*@Thrown*/ @Nullable Boolean symbol_4; + if (symbol_0) { + final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull OperationCallExp symbol_1 = (org.eclipse.ocl.pivot.OperationCallExp)temp1_qvtrExpression; + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OCLExpression qvtr_qvtrSource = trace_32.getQvtr_qvtrSource(); + objectManager.getting(qvtr_qvtrSource, PivotPackage.Literals.TYPED_ELEMENT__TYPE, false); + final /*@NonInvalid*/ @Nullable Type type_2 = qvtr_qvtrSource.getType(); + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull String primitive_operationName = trace_32.getPrimitive_operationName(); + final /*@Thrown*/ org.eclipse.ocl.pivot.@NonNull Operation getOperation = ((FUN_getOperation)FTOR_getOperation.getUniqueComputation(ATL2QVTr.this, type_2, primitive_operationName)).instance; + objectManager.getting(getOperation, PivotPackage.Literals.TYPED_ELEMENT__TYPE, false); + final /*@Thrown*/ @Nullable Type type_3 = getOperation.getType(); + // mapping statements + symbol_1.setType(type_3); + objectManager.assigned(symbol_1, PivotPackage.Literals.TYPED_ELEMENT__TYPE, type_3); + final /*@Thrown*/ @Nullable Boolean m_TC__mapOperatorCallExp__type_p5 = ValueUtil.TRUE_VALUE; + symbol_4 = m_TC__mapOperatorCallExp__type_p5; + } + else { + symbol_4 = ValueUtil.FALSE_VALUE; + } + symbol_5 = symbol_4; + } + else { + symbol_5 = ValueUtil.FALSE_VALUE; + } + return symbol_5; + } + + @Override + public boolean isEqual(@NonNull IdResolver idResolver, @NonNull Object @NonNull [] thoseValues) { + return idResolver.oclEquals(trace_32, thoseValues[0]); + } + } + + /** + * + * map m_TC__mapIfExp__type_p6 in ATL2QVTr { + * + * guard:middle trace : trace_ATL2QVTr::TC_mapIfExp[1]; + * check trace.status; + * check var qvtrExpression : IfExp[1] := trace.qvtr_qvtrExpression; + * var qvtrThen : OCLExpression[1] := trace.qvtr_qvtrThen; + * var type : Type[?] := qvtrThen.type; + * var qvtrElse : OCLExpression[1] := trace.qvtr_qvtrElse; + * var type1 : Type[?] := qvtrElse.type; + * var getCommonType1 : Type[1] := this.getCommonType(type, type1); + * notify set qvtrExpression.type := getCommonType1; + * + */ + protected class MAP_m_TC__mapIfExp__type_p6 extends AbstractInvocation + { + protected final /*@NonInvalid*/ @NonNull TC_mapIfExp trace_33; + + public MAP_m_TC__mapIfExp__type_p6(@NonNull InvocationConstructor constructor, @NonNull Object @NonNull [] boundValues) { + super(constructor); + trace_33 = (TC_mapIfExp)boundValues[0]; + } + + @Override + public boolean execute() { + final /*@NonInvalid*/ @Nullable Boolean status = trace_33.getStatus(); + if (status == null) { + throw new InvalidEvaluationException("Null if condition"); + } + /*@Thrown*/ @Nullable Boolean symbol_5; + if (status) { + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OCLExpression temp1_qvtrExpression = trace_33.getQvtr_qvtrExpression(); + final /*@NonInvalid*/ boolean symbol_0 = temp1_qvtrExpression instanceof org.eclipse.ocl.pivot.IfExp; + /*@Thrown*/ @Nullable Boolean symbol_4; + if (symbol_0) { + final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull IfExp symbol_1 = (org.eclipse.ocl.pivot.IfExp)temp1_qvtrExpression; + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OCLExpression qvtr_qvtrThen = trace_33.getQvtr_qvtrThen(); + objectManager.getting(qvtr_qvtrThen, PivotPackage.Literals.TYPED_ELEMENT__TYPE, false); + final /*@NonInvalid*/ @Nullable Type type_2 = qvtr_qvtrThen.getType(); + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OCLExpression qvtr_qvtrElse = trace_33.getQvtr_qvtrElse(); + objectManager.getting(qvtr_qvtrElse, PivotPackage.Literals.TYPED_ELEMENT__TYPE, false); + final /*@NonInvalid*/ @Nullable Type type_3 = qvtr_qvtrElse.getType(); + final /*@Thrown*/ @NonNull Type getCommonType = ((FUN_getCommonType)FTOR_getCommonType.getUniqueComputation(ATL2QVTr.this, type_2, type_3)).instance; + // mapping statements + symbol_1.setType(getCommonType); + objectManager.assigned(symbol_1, PivotPackage.Literals.TYPED_ELEMENT__TYPE, getCommonType); + final /*@Thrown*/ @Nullable Boolean m_TC__mapIfExp__type_p6 = ValueUtil.TRUE_VALUE; + symbol_4 = m_TC__mapIfExp__type_p6; + } + else { + symbol_4 = ValueUtil.FALSE_VALUE; + } + symbol_5 = symbol_4; + } + else { + symbol_5 = ValueUtil.FALSE_VALUE; + } + return symbol_5; + } + + @Override + public boolean isEqual(@NonNull IdResolver idResolver, @NonNull Object @NonNull [] thoseValues) { + return idResolver.oclEquals(trace_33, thoseValues[0]); + } + } + + /** + * + * map m_TC__mapNavigationOrAttributeCallExp__Property_qvtr_p4 in ATL2QVTr { + * + * guard:middle trace : trace_ATL2QVTr::TC_mapNavigationOrAttributeCallExp_Property[1]; + * check trace.status; + * check var qvtrExpression : PropertyCallExp[1] := trace.qvtr_qvtrExpression; + * var propertyName : String[1] := trace.primitive_propertyName; + * var qvtrSource : OCLExpression[1] := trace.qvtr_qvtrSource; + * var type : Type[?] := qvtrSource.type; + * var qvtrProperty : Property[1] := this.getProperty(type, propertyName); + * set qvtrExpression.referredProperty := qvtrProperty; + * set trace.qvtr_qvtrProperty := qvtrProperty; + * + */ + protected boolean MAP_m_TC__mapNavigationOrAttributeCallExp__Property_qvtr_p4(final /*@NonInvalid*/ @NonNull TC_mapNavigationOrAttributeCallExp_Property trace_34) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_TC__mapNavigationOrAttributeCallExp__Property_qvtr_p4" + ", " + trace_34); + } + final /*@NonInvalid*/ @Nullable Boolean status = trace_34.getStatus(); + if (status == null) { + throw new InvalidEvaluationException("Null if condition"); + } + /*@Thrown*/ @Nullable Boolean symbol_6; + if (status) { + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OCLExpression temp1_qvtrExpression = trace_34.getQvtr_qvtrExpression(); + final /*@NonInvalid*/ boolean symbol_0 = temp1_qvtrExpression instanceof PropertyCallExp; + /*@Thrown*/ @Nullable Boolean symbol_5; + if (symbol_0) { + final /*@NonInvalid*/ @NonNull PropertyCallExp symbol_1 = (PropertyCallExp)temp1_qvtrExpression; + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull String primitive_propertyName = trace_34.getPrimitive_propertyName(); + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OCLExpression qvtr_qvtrSource = trace_34.getQvtr_qvtrSource(); + final /*@NonInvalid*/ @Nullable Type type_2 = qvtr_qvtrSource.getType(); + final /*@Thrown*/ @NonNull Property getProperty = ((FUN_getProperty)FTOR_getProperty.getUniqueComputation(this, type_2, primitive_propertyName)).instance; + // mapping statements + symbol_1.setReferredProperty(getProperty); + trace_34.setQvtr_qvtrProperty(getProperty); + final /*@Thrown*/ @Nullable Boolean m_TC__mapNavigationOrAttributeCallExp__Property_qvtr_p4 = ValueUtil.TRUE_VALUE; + symbol_5 = m_TC__mapNavigationOrAttributeCallExp__Property_qvtr_p4; + } + else { + symbol_5 = ValueUtil.FALSE_VALUE; + } + symbol_6 = symbol_5; + } + else { + symbol_6 = ValueUtil.FALSE_VALUE; + } + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((symbol_6 ? "done " : "fail ") + "MAP_m_TC__mapNavigationOrAttributeCallExp__Property_qvtr_p4"); + } + return symbol_6; + } + + /** + * + * map m_TC__mapOperationCallExp__Operation_qvtr_qvtrOperat_p4 in ATL2QVTr { + * + * guard:middle trace : trace_ATL2QVTr::TC_mapOperationCallExp_Operation[1]; + * check trace.status; + * check var qvtrExpression : OperationCallExp[1] := trace.qvtr_qvtrExpression; + * var operationName : String[1] := trace.primitive_operationName; + * var qvtrSource : OCLExpression[1] := trace.qvtr_qvtrSource; + * var type : Type[?] := qvtrSource.type; + * var qvtrOperation : Operation[1] := this.getOperation(type, operationName); + * set qvtrExpression.referredOperation := qvtrOperation; + * set trace.qvtr_qvtrOperation := qvtrOperation; + * + */ + protected boolean MAP_m_TC__mapOperationCallExp__Operation_qvtr_qvtrOperat_p4(final /*@NonInvalid*/ @NonNull TC_mapOperationCallExp_Operation trace_35) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_TC__mapOperationCallExp__Operation_qvtr_qvtrOperat_p4" + ", " + trace_35); + } + final /*@NonInvalid*/ @Nullable Boolean status = trace_35.getStatus(); + if (status == null) { + throw new InvalidEvaluationException("Null if condition"); + } + /*@Thrown*/ @Nullable Boolean symbol_6; + if (status) { + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OCLExpression temp1_qvtrExpression = trace_35.getQvtr_qvtrExpression(); + final /*@NonInvalid*/ boolean symbol_0 = temp1_qvtrExpression instanceof org.eclipse.ocl.pivot.OperationCallExp; + /*@Thrown*/ @Nullable Boolean symbol_5; + if (symbol_0) { + final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull OperationCallExp symbol_1 = (org.eclipse.ocl.pivot.OperationCallExp)temp1_qvtrExpression; + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull String primitive_operationName = trace_35.getPrimitive_operationName(); + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OCLExpression qvtr_qvtrSource = trace_35.getQvtr_qvtrSource(); + final /*@NonInvalid*/ @Nullable Type type_2 = qvtr_qvtrSource.getType(); + final /*@Thrown*/ org.eclipse.ocl.pivot.@NonNull Operation getOperation = ((FUN_getOperation)FTOR_getOperation.getUniqueComputation(this, type_2, primitive_operationName)).instance; + // mapping statements + symbol_1.setReferredOperation(getOperation); + trace_35.setQvtr_qvtrOperation(getOperation); + final /*@Thrown*/ @Nullable Boolean m_TC__mapOperationCallExp__Operation_qvtr_qvtrOperat_p4 = ValueUtil.TRUE_VALUE; + symbol_5 = m_TC__mapOperationCallExp__Operation_qvtr_qvtrOperat_p4; + } + else { + symbol_5 = ValueUtil.FALSE_VALUE; + } + symbol_6 = symbol_5; + } + else { + symbol_6 = ValueUtil.FALSE_VALUE; + } + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((symbol_6 ? "done " : "fail ") + "MAP_m_TC__mapOperationCallExp__Operation_qvtr_qvtrOperat_p4"); + } + return symbol_6; + } + + /** + * + * map m_TC__mapOperatorCallExp_qvtr_qvtrOperation_p4 in ATL2QVTr { + * + * guard:middle trace : trace_ATL2QVTr::TC_mapOperatorCallExp[1]; + * check trace.status; + * check var qvtrExpression : OperationCallExp[1] := trace.qvtr_qvtrExpression; + * var operationName : String[1] := trace.primitive_operationName; + * var qvtrSource : OCLExpression[1] := trace.qvtr_qvtrSource; + * var type : Type[?] := qvtrSource.type; + * var qvtrOperation : Operation[1] := this.getOperation(type, operationName); + * set qvtrExpression.referredOperation := qvtrOperation; + * set trace.qvtr_qvtrOperation := qvtrOperation; + * + */ + protected boolean MAP_m_TC__mapOperatorCallExp_qvtr_qvtrOperation_p4(final /*@NonInvalid*/ @NonNull TC_mapOperatorCallExp trace_36) { + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println("invoke MAP_m_TC__mapOperatorCallExp_qvtr_qvtrOperation_p4" + ", " + trace_36); + } + final /*@NonInvalid*/ @Nullable Boolean status = trace_36.getStatus(); + if (status == null) { + throw new InvalidEvaluationException("Null if condition"); + } + /*@Thrown*/ @Nullable Boolean symbol_6; + if (status) { + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OCLExpression temp1_qvtrExpression = trace_36.getQvtr_qvtrExpression(); + final /*@NonInvalid*/ boolean symbol_0 = temp1_qvtrExpression instanceof org.eclipse.ocl.pivot.OperationCallExp; + /*@Thrown*/ @Nullable Boolean symbol_5; + if (symbol_0) { + final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull OperationCallExp symbol_1 = (org.eclipse.ocl.pivot.OperationCallExp)temp1_qvtrExpression; + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull String primitive_operationName = trace_36.getPrimitive_operationName(); + @SuppressWarnings("null") + final /*@NonInvalid*/ @NonNull OCLExpression qvtr_qvtrSource = trace_36.getQvtr_qvtrSource(); + final /*@NonInvalid*/ @Nullable Type type_2 = qvtr_qvtrSource.getType(); + final /*@Thrown*/ org.eclipse.ocl.pivot.@NonNull Operation getOperation = ((FUN_getOperation)FTOR_getOperation.getUniqueComputation(this, type_2, primitive_operationName)).instance; + // mapping statements + symbol_1.setReferredOperation(getOperation); + trace_36.setQvtr_qvtrOperation(getOperation); + final /*@Thrown*/ @Nullable Boolean m_TC__mapOperatorCallExp_qvtr_qvtrOperation_p4 = ValueUtil.TRUE_VALUE; + symbol_5 = m_TC__mapOperatorCallExp_qvtr_qvtrOperation_p4; + } + else { + symbol_5 = ValueUtil.FALSE_VALUE; + } + symbol_6 = symbol_5; + } + else { + symbol_6 = ValueUtil.FALSE_VALUE; + } + if (debugInvocations) { + AbstractTransformer.INVOCATIONS.println((symbol_6 ? "done " : "fail ") + "MAP_m_TC__mapOperatorCallExp_qvtr_qvtrOperation_p4"); + } + return symbol_6; + } +} diff --git a/tests/org.eclipse.qvtd.atl.tests/src/org/eclipse/qvtd/atl/tests/ATLExampleTests.java b/tests/org.eclipse.qvtd.atl.tests/src/org/eclipse/qvtd/atl/tests/ATLExampleTests.java index d90107a86..a050fae14 100644 --- a/tests/org.eclipse.qvtd.atl.tests/src/org/eclipse/qvtd/atl/tests/ATLExampleTests.java +++ b/tests/org.eclipse.qvtd.atl.tests/src/org/eclipse/qvtd/atl/tests/ATLExampleTests.java @@ -17,6 +17,7 @@ import org.eclipse.jdt.annotation.NonNull; import org.eclipse.qvtd.pivot.qvtimperative.model.QVTimperativeLibrary; import org.eclipse.qvtd.pivot.qvtrelation.utilities.QVTrelationToStringVisitor; import org.eclipse.qvtd.runtime.evaluation.AbstractTransformer; +import org.eclipse.qvtd.runtime.evaluation.InvalidEvaluationException; import org.eclipse.qvtd.runtime.evaluation.Transformer; import org.junit.Test; @@ -39,8 +40,14 @@ public class ATLExampleTests extends TestCase atlXmiResource.getContents().addAll(contents); atlXmiResource.save(null); contents.addAll(atlXmiResource.getContents()); - myQVT.executeTransformation(); - myQVT.saveOutput("qvtr", testName + "_CG.qvtras", testName + "_expected.qvtras"); + try { + Transformer executeTransformation = myQVT.executeTransformation(); + myQVT.saveOutput("qvtr", testName + "_CG.qvtras", testName + "_expected.qvtras"); + } + catch (InvalidEvaluationException e) { + myQVT.saveOutput("qvtr", testName + "_CG.qvtras", ""); + throw e; + } } finally { myQVT.dispose(); @@ -56,4 +63,14 @@ public class ATLExampleTests extends TestCase QVTrelationToStringVisitor.FACTORY.getClass(); doATLExampleTest_CG("Families2Persons"); } + + /* @Test + public void testATLExample_Families2PersonsMini_CG() throws Exception { + AbstractTransformer.EXCEPTIONS.setState(true); + AbstractTransformer.INVOCATIONS.setState(true); + // PivotStandaloneSetup.init(); + QVTimperativeLibrary.install(); + QVTrelationToStringVisitor.FACTORY.getClass(); + doATLExampleTest_CG("Families2PersonsMini"); + } */ } diff --git a/tests/org.eclipse.qvtd.atl.tests/src/org/eclipse/qvtd/atl/tests/ATLTestQVT.java b/tests/org.eclipse.qvtd.atl.tests/src/org/eclipse/qvtd/atl/tests/ATLTestQVT.java index e715662c6..d8ecb93d8 100644 --- a/tests/org.eclipse.qvtd.atl.tests/src/org/eclipse/qvtd/atl/tests/ATLTestQVT.java +++ b/tests/org.eclipse.qvtd.atl.tests/src/org/eclipse/qvtd/atl/tests/ATLTestQVT.java @@ -26,8 +26,12 @@ import org.eclipse.emf.common.util.URI; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.EPackage; import org.eclipse.emf.ecore.EPackage.Registry; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.EStructuralFeature.Setting; +import org.eclipse.emf.ecore.InternalEObject; import org.eclipse.emf.ecore.resource.Resource; import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.ecore.util.EcoreUtil; import org.eclipse.emf.ecore.xmi.XMLResource; import org.eclipse.jdt.annotation.NonNull; import org.eclipse.jdt.annotation.Nullable; @@ -47,6 +51,8 @@ import org.eclipse.qvtd.pivot.qvtimperative.evaluation.QVTiEnvironmentFactory; import org.eclipse.qvtd.pivot.qvtimperative.evaluation.QVTiTransformationExecutor; import org.eclipse.qvtd.pivot.qvtimperative.utilities.QVTimperative; import org.eclipse.qvtd.pivot.qvtrelation.utilities.QVTrelationASResourceFactory; +import org.eclipse.qvtd.runtime.evaluation.InvalidEvaluationException; +import org.eclipse.qvtd.runtime.evaluation.InvocationManager; import org.eclipse.qvtd.runtime.evaluation.Transformer; import org.eclipse.xtext.util.EmfFormatter; @@ -195,7 +201,13 @@ public class ATLTestQVT extends QVTimperative Transformer transformer = generatedExecutor.getTransformer(); // transformer.run(); // FIXME BUG 511028 if (!transformer.run()) { - throw new Exception("Failed to execute"); + InvocationManager invocationManager = transformer.getInvocationManager(); + invocationManager.flush(); + // if (!suppressFailureDiagnosis) { // FIXME BUG 511028 + StringBuilder s = new StringBuilder(); + invocationManager.diagnoseWorkLists(s); + throw new InvalidEvaluationException("Failed to execute" + s.toString()); + // } } return transformer; } @@ -230,6 +242,7 @@ public class ATLTestQVT extends QVTimperative } } + // FIXME "" expectedFile used as proxy rescue public @NonNull Resource saveOutput(@NonNull String modelName, @NonNull String modelFile, @Nullable String expectedFile) throws IOException, InterruptedException { URI modelURI = testFolderURI.appendSegment(modelFile); ResourceSet resourceSet = /*getResourceSet()*/environmentFactory.getMetamodelManager().getASResourceSet(); @@ -241,10 +254,25 @@ public class ATLTestQVT extends QVTimperative else { outputResource = resourceSet.createResource(modelURI); outputResource.getContents().addAll(generatedExecutor.getTransformer().getRootEObjects(modelName)); + if ("".equals(expectedFile)) { + Map<EObject, Collection<Setting>> find = EcoreUtil.UnresolvedProxyCrossReferencer.find(outputResource); + for (EObject eObject : find.keySet()) { + outputResource.getContents().add(eObject); + Collection<Setting> settings = find.get(eObject); + assert settings != null; + for (Setting s : settings) { + EObject eObject2 = s.getEObject(); + EStructuralFeature eStructuralFeature = s.getEStructuralFeature(); + } + ((InternalEObject)eObject).eSetProxyURI(null); + }; + } + // ((XMLResource)outputResource).getEObjectToIDMap().clear(); + // ((XMLResource)outputResource).getIDToEObjectMap().clear(); outputResource.save(getSaveOptions()); } assert outputResource != null; - if (expectedFile != null) { + if ((expectedFile != null) && (expectedFile.length() > 0)){ checkOutput(outputResource, expectedFile); } return outputResource; diff --git a/tests/org.eclipse.qvtd.atl.tests/src/org/eclipse/qvtd/atl/tests/families2persons/F2P.xmi b/tests/org.eclipse.qvtd.atl.tests/src/org/eclipse/qvtd/atl/tests/families2persons/F2P.xmi deleted file mode 100644 index 2ff77b7dd..000000000 --- a/tests/org.eclipse.qvtd.atl.tests/src/org/eclipse/qvtd/atl/tests/families2persons/F2P.xmi +++ /dev/null @@ -1,167 +0,0 @@ -<?xml version="1.0" encoding="ASCII"?>
-<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:atl="http://www.eclipse.org/gmt/2005/ATL" xmlns:ocl="http://www.eclipse.org/gmt/2005/OCL">
- <atl:Module location="5:1-50:2" name="Families2Persons">
- <commentsBefore>-- @atlcompiler emftvm</commentsBefore>
- <commentsBefore>-- @path Families=/org.eclipse.qvtd.atl.tests/src/org/eclipse/qvtd/atl/tests/families2persons/Families.ecore</commentsBefore>
- <commentsBefore>-- @path Persons=/org.eclipse.qvtd.atl.tests/src/org/eclipse/qvtd/atl/tests/families2persons/Persons.ecore</commentsBefore>
- <inModels location="6:27-6:40" name="IN" metamodel="/2"/>
- <outModels location="6:8-6:21" name="OUT" metamodel="/1"/>
- <elements xsi:type="atl:Helper" location="8:1-21:8">
- <definition location="8:8-21:7">
- <feature xsi:type="ocl:Attribute" location="8:37-21:7" name="familyName">
- <initExpression xsi:type="ocl:IfExp" location="9:2-21:7">
- <thenExpression xsi:type="ocl:NavigationOrAttributeCallExp" location="10:3-10:29" name="lastName">
- <source xsi:type="ocl:NavigationOrAttributeCallExp" location="10:3-10:20" name="familyFather">
- <source xsi:type="ocl:VariableExp" location="10:3-10:7" referredVariable="/4"/>
- </source>
- </thenExpression>
- <condition xsi:type="ocl:OperatorCallExp" location="9:5-9:43" operationName="not">
- <source xsi:type="ocl:OperationCallExp" location="9:9-9:43" operationName="oclIsUndefined">
- <source xsi:type="ocl:NavigationOrAttributeCallExp" location="9:9-9:26" name="familyFather">
- <source xsi:type="ocl:VariableExp" location="9:9-9:13" referredVariable="/3"/>
- </source>
- </source>
- </condition>
- <elseExpression xsi:type="ocl:IfExp" location="12:3-20:8">
- <thenExpression xsi:type="ocl:NavigationOrAttributeCallExp" location="13:4-13:30" name="lastName">
- <source xsi:type="ocl:NavigationOrAttributeCallExp" location="13:4-13:21" name="familyMother">
- <source xsi:type="ocl:VariableExp" location="13:4-13:8" referredVariable="/6"/>
- </source>
- </thenExpression>
- <condition xsi:type="ocl:OperatorCallExp" location="12:6-12:44" operationName="not">
- <source xsi:type="ocl:OperationCallExp" location="12:10-12:44" operationName="oclIsUndefined">
- <source xsi:type="ocl:NavigationOrAttributeCallExp" location="12:10-12:27" name="familyMother">
- <source xsi:type="ocl:VariableExp" location="12:10-12:14" referredVariable="/5"/>
- </source>
- </source>
- </condition>
- <elseExpression xsi:type="ocl:IfExp" location="15:4-19:9">
- <thenExpression xsi:type="ocl:NavigationOrAttributeCallExp" location="16:5-16:28" name="lastName">
- <source xsi:type="ocl:NavigationOrAttributeCallExp" location="16:5-16:19" name="familySon">
- <source xsi:type="ocl:VariableExp" location="16:5-16:9" referredVariable="/8"/>
- </source>
- </thenExpression>
- <condition xsi:type="ocl:OperatorCallExp" location="15:7-15:42" operationName="not">
- <source xsi:type="ocl:OperationCallExp" location="15:11-15:42" operationName="oclIsUndefined">
- <source xsi:type="ocl:NavigationOrAttributeCallExp" location="15:11-15:25" name="familySon">
- <source xsi:type="ocl:VariableExp" location="15:11-15:15" referredVariable="/7"/>
- </source>
- </source>
- </condition>
- <elseExpression xsi:type="ocl:NavigationOrAttributeCallExp" location="18:5-18:33" name="lastName">
- <source xsi:type="ocl:NavigationOrAttributeCallExp" location="18:5-18:24" name="familyDaughter">
- <source xsi:type="ocl:VariableExp" location="18:5-18:9" referredVariable="/9"/>
- </source>
- </elseExpression>
- </elseExpression>
- </elseExpression>
- </initExpression>
- <type xsi:type="ocl:StringType" location="8:50-8:56"/>
- </feature>
- <context_ location="8:8-8:31">
- <context_ xsi:type="ocl:OclModelElement" location="8:16-8:31" name="Member" model="/2"/>
- </context_>
- </definition>
- </elements>
- <elements xsi:type="atl:Helper" location="23:1-32:8">
- <definition location="23:8-32:7">
- <feature xsi:type="ocl:Operation" location="23:37-32:7" name="isFemale">
- <returnType xsi:type="ocl:BooleanType" location="23:50-23:57"/>
- <body xsi:type="ocl:IfExp" location="24:2-32:7">
- <thenExpression xsi:type="ocl:BooleanExp" location="25:3-25:7" booleanSymbol="true"/>
- <condition xsi:type="ocl:OperatorCallExp" location="24:5-24:43" operationName="not">
- <source xsi:type="ocl:OperationCallExp" location="24:9-24:43" operationName="oclIsUndefined">
- <source xsi:type="ocl:NavigationOrAttributeCallExp" location="24:9-24:26" name="familyMother">
- <source xsi:type="ocl:VariableExp" location="24:9-24:13" referredVariable="/10"/>
- </source>
- </source>
- </condition>
- <elseExpression xsi:type="ocl:IfExp" location="27:3-31:8">
- <thenExpression xsi:type="ocl:BooleanExp" location="28:4-28:8" booleanSymbol="true"/>
- <condition xsi:type="ocl:OperatorCallExp" location="27:6-27:46" operationName="not">
- <source xsi:type="ocl:OperationCallExp" location="27:10-27:46" operationName="oclIsUndefined">
- <source xsi:type="ocl:NavigationOrAttributeCallExp" location="27:10-27:29" name="familyDaughter">
- <source xsi:type="ocl:VariableExp" location="27:10-27:14" referredVariable="/11"/>
- </source>
- </source>
- </condition>
- <elseExpression xsi:type="ocl:BooleanExp" location="30:4-30:9"/>
- </elseExpression>
- </body>
- </feature>
- <context_ location="23:8-23:31">
- <context_ xsi:type="ocl:OclModelElement" location="23:16-23:31" name="Member" model="/2"/>
- </context_>
- </definition>
- </elements>
- <elements xsi:type="atl:MatchedRule" location="34:1-41:2" name="Member2Male">
- <outPattern location="37:2-40:4">
- <elements xsi:type="atl:SimpleOutPatternElement" location="38:3-40:4" varName="t">
- <type xsi:type="ocl:OclModelElement" location="38:7-38:19" name="Male" model="/1"/>
- <bindings location="39:4-39:48" propertyName="fullName">
- <value xsi:type="ocl:OperatorCallExp" location="39:16-39:48" operationName="+">
- <source xsi:type="ocl:OperatorCallExp" location="39:16-39:33" operationName="+">
- <source xsi:type="ocl:NavigationOrAttributeCallExp" location="39:16-39:27" name="firstName">
- <source xsi:type="ocl:VariableExp" location="39:16-39:17" referredVariable="/0/@elements.2/@inPattern/@elements.0"/>
- </source>
- <arguments xsi:type="ocl:StringExp" location="39:30-39:33" stringSymbol=" "/>
- </source>
- <arguments xsi:type="ocl:NavigationOrAttributeCallExp" location="39:36-39:48" name="familyName">
- <source xsi:type="ocl:VariableExp" location="39:36-39:37" referredVariable="/0/@elements.2/@inPattern/@elements.0"/>
- </arguments>
- </value>
- </bindings>
- </elements>
- </outPattern>
- <inPattern location="35:2-36:41">
- <elements xsi:type="atl:SimpleInPatternElement" location="36:3-36:22" varName="s" variableExp="/0/@elements.2/@inPattern/@filter/@source/@source /0/@elements.2/@outPattern/@elements.0/@bindings.0/@value/@source/@source/@source /0/@elements.2/@outPattern/@elements.0/@bindings.0/@value/@arguments.0/@source">
- <type xsi:type="ocl:OclModelElement" location="36:7-36:22" name="Member" model="/2"/>
- </elements>
- <filter xsi:type="ocl:OperatorCallExp" location="36:24-36:40" operationName="not">
- <source xsi:type="ocl:OperationCallExp" location="36:28-36:40" operationName="isFemale">
- <source xsi:type="ocl:VariableExp" location="36:28-36:29" referredVariable="/0/@elements.2/@inPattern/@elements.0"/>
- </source>
- </filter>
- </inPattern>
- </elements>
- <elements xsi:type="atl:MatchedRule" location="43:1-50:2" name="Member2Female">
- <outPattern location="46:2-49:4">
- <elements xsi:type="atl:SimpleOutPatternElement" location="47:3-49:4" varName="t">
- <type xsi:type="ocl:OclModelElement" location="47:7-47:21" name="Female" model="/1"/>
- <bindings location="48:4-48:48" propertyName="fullName">
- <value xsi:type="ocl:OperatorCallExp" location="48:16-48:48" operationName="+">
- <source xsi:type="ocl:OperatorCallExp" location="48:16-48:33" operationName="+">
- <source xsi:type="ocl:NavigationOrAttributeCallExp" location="48:16-48:27" name="firstName">
- <source xsi:type="ocl:VariableExp" location="48:16-48:17" referredVariable="/0/@elements.3/@inPattern/@elements.0"/>
- </source>
- <arguments xsi:type="ocl:StringExp" location="48:30-48:33" stringSymbol=" "/>
- </source>
- <arguments xsi:type="ocl:NavigationOrAttributeCallExp" location="48:36-48:48" name="familyName">
- <source xsi:type="ocl:VariableExp" location="48:36-48:37" referredVariable="/0/@elements.3/@inPattern/@elements.0"/>
- </arguments>
- </value>
- </bindings>
- </elements>
- </outPattern>
- <inPattern location="44:2-45:37">
- <elements xsi:type="atl:SimpleInPatternElement" location="45:3-45:22" varName="s" variableExp="/0/@elements.3/@inPattern/@filter/@source /0/@elements.3/@outPattern/@elements.0/@bindings.0/@value/@source/@source/@source /0/@elements.3/@outPattern/@elements.0/@bindings.0/@value/@arguments.0/@source">
- <type xsi:type="ocl:OclModelElement" location="45:7-45:22" name="Member" model="/2"/>
- </elements>
- <filter xsi:type="ocl:OperationCallExp" location="45:24-45:36" operationName="isFemale">
- <source xsi:type="ocl:VariableExp" location="45:24-45:25" referredVariable="/0/@elements.3/@inPattern/@elements.0"/>
- </filter>
- </inPattern>
- </elements>
- </atl:Module>
- <ocl:OclModel location="6:14-6:21" name="Persons" elements="/0/@elements.2/@outPattern/@elements.0/@type /0/@elements.3/@outPattern/@elements.0/@type" model="/0/@outModels.0"/>
- <ocl:OclModel location="6:32-6:40" name="Families" elements="/0/@elements.0/@definition/@context_/@context_ /0/@elements.1/@definition/@context_/@context_ /0/@elements.2/@inPattern/@elements.0/@type /0/@elements.3/@inPattern/@elements.0/@type" model="/0/@inModels.0"/>
- <ocl:VariableDeclaration location="9:9-9:13" varName="self" variableExp="/0/@elements.0/@definition/@feature/@initExpression/@condition/@source/@source/@source"/>
- <ocl:VariableDeclaration location="10:3-10:7" varName="self" variableExp="/0/@elements.0/@definition/@feature/@initExpression/@thenExpression/@source/@source"/>
- <ocl:VariableDeclaration location="12:10-12:14" varName="self" variableExp="/0/@elements.0/@definition/@feature/@initExpression/@elseExpression/@condition/@source/@source/@source"/>
- <ocl:VariableDeclaration location="13:4-13:8" varName="self" variableExp="/0/@elements.0/@definition/@feature/@initExpression/@elseExpression/@thenExpression/@source/@source"/>
- <ocl:VariableDeclaration location="15:11-15:15" varName="self" variableExp="/0/@elements.0/@definition/@feature/@initExpression/@elseExpression/@elseExpression/@condition/@source/@source/@source"/>
- <ocl:VariableDeclaration location="16:5-16:9" varName="self" variableExp="/0/@elements.0/@definition/@feature/@initExpression/@elseExpression/@elseExpression/@thenExpression/@source/@source"/>
- <ocl:VariableDeclaration location="18:5-18:9" varName="self" variableExp="/0/@elements.0/@definition/@feature/@initExpression/@elseExpression/@elseExpression/@elseExpression/@source/@source"/>
- <ocl:VariableDeclaration location="24:9-24:13" varName="self" variableExp="/0/@elements.1/@definition/@feature/@body/@condition/@source/@source/@source"/>
- <ocl:VariableDeclaration location="27:10-27:14" varName="self" variableExp="/0/@elements.1/@definition/@feature/@body/@elseExpression/@condition/@source/@source/@source"/>
-</xmi:XMI>
diff --git a/tests/org.eclipse.qvtd.atl.tests/src/org/eclipse/qvtd/atl/tests/families2persons/Families2Persons_expected.qvtras b/tests/org.eclipse.qvtd.atl.tests/src/org/eclipse/qvtd/atl/tests/families2persons/Families2Persons_expected.qvtras index c1fd66a66..6df0dee2e 100644 --- a/tests/org.eclipse.qvtd.atl.tests/src/org/eclipse/qvtd/atl/tests/families2persons/Families2Persons_expected.qvtras +++ b/tests/org.eclipse.qvtd.atl.tests/src/org/eclipse/qvtd/atl/tests/families2persons/Families2Persons_expected.qvtras @@ -2,76 +2,101 @@ <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" - xmi:id="AAAAA" xmiidVersion="1"> - <ownedPackages xmi:id="6Fh3I"> + xmi:id="AAAAA" externalURI="platform:/resource/org.eclipse.qvtd.atl.tests/bin/org/eclipse/qvtd/atl/tests/families2persons/Families2Persons_CG.qvtras" + name="Families2Persons_CG.qvtras" xmiidVersion="1"> + <ownedPackages xmi:id="6Fh3I" name=""> <ownedClasses xsi:type="qvtr:RelationalTransformation" xmi:id="lSZ2I" name="Families2Persons"> - <modelParameter name="Families" usedPackage="../../../../../../../../org.eclipse.qvtd.atl.tests/src/org/eclipse/qvtd/atl/tests/families2persons/Families.ecore.oclas#ci1p7"/> - <modelParameter name="Persons" usedPackage="../../../../../../../../org.eclipse.qvtd.atl.tests/src/org/eclipse/qvtd/atl/tests/families2persons/Persons.ecore.oclas#YknpD"/> + <modelParameter xmi:id="z2sgS" name="Families" usedPackage="../../../../../../../src/org/eclipse/qvtd/atl/tests/families2persons/Families.ecore.oclas#ci1p7"/> + <modelParameter xmi:id="v4ega" name="Persons" usedPackage="../../../../../../../src/org/eclipse/qvtd/atl/tests/families2persons/Persons.ecore.oclas#YknpD"/> + <ownedContext xsi:type="pivot:ParameterVariable" xmi:id="DqXtJ" name="this" type="#lSZ2I"/> <ownedOperations xsi:type="qvtb:Function" xmi:id="Gr4OV" name="familyName" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#AlwVZ"> - <ownedParameters xsi:type="qvtb:FunctionParameter" xmi:id="lcaR4" name="self" type="pivot:Class ../../../../../../../../org.eclipse.qvtd.atl.tests/src/org/eclipse/qvtd/atl/tests/families2persons/Families.ecore.oclas#r2YVU"/> - <queryExpression xsi:type="pivot:IfExp"> - <ownedCondition xsi:type="pivot:OperationCallExp"> - <ownedSource xsi:type="pivot:OperationCallExp"> - <ownedSource xsi:type="pivot:PropertyCallExp"> - <ownedSource xsi:type="pivot:VariableExp" name="self" referredVariable="#lcaR4"/> + <ownedParameters xsi:type="qvtb:FunctionParameter" xmi:id="lcaR4" name="self" type="pivot:Class ../../../../../../../src/org/eclipse/qvtd/atl/tests/families2persons/Families.ecore.oclas#r2YVU"/> + <queryExpression xsi:type="pivot:IfExp" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#AlwVZ"> + <ownedCondition xsi:type="pivot:OperationCallExp" name="not" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#DH5kA" + type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#XEMMs"> + <ownedSource xsi:type="pivot:OperationCallExp" name="oclIsUndefined" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#aSwFn" + type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#XEMMs"> + <ownedSource xsi:type="pivot:PropertyCallExp" name="familyFather" referredProperty="../../../../../../../src/org/eclipse/qvtd/atl/tests/families2persons/Families.ecore.oclas#31gsl" + type="pivot:Class ../../../../../../../src/org/eclipse/qvtd/atl/tests/families2persons/Families.ecore.oclas#151KI"> + <ownedSource xsi:type="pivot:VariableExp" name="self" referredVariable="#lcaR4" type="pivot:Class ../../../../../../../src/org/eclipse/qvtd/atl/tests/families2persons/Families.ecore.oclas#r2YVU"/> </ownedSource> </ownedSource> </ownedCondition> - <ownedElse xsi:type="pivot:IfExp"> - <ownedCondition xsi:type="pivot:OperationCallExp"> - <ownedSource xsi:type="pivot:OperationCallExp"> - <ownedSource xsi:type="pivot:PropertyCallExp"> - <ownedSource xsi:type="pivot:VariableExp" name="self" referredVariable="#lcaR4"/> + <ownedElse xsi:type="pivot:IfExp" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#AlwVZ"> + <ownedCondition xsi:type="pivot:OperationCallExp" name="not" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#DH5kA" + type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#XEMMs"> + <ownedSource xsi:type="pivot:OperationCallExp" name="oclIsUndefined" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#aSwFn" + type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#XEMMs"> + <ownedSource xsi:type="pivot:PropertyCallExp" name="familyMother" referredProperty="../../../../../../../src/org/eclipse/qvtd/atl/tests/families2persons/Families.ecore.oclas#eLUay" + type="pivot:Class ../../../../../../../src/org/eclipse/qvtd/atl/tests/families2persons/Families.ecore.oclas#151KI"> + <ownedSource xsi:type="pivot:VariableExp" name="self" referredVariable="#lcaR4" type="pivot:Class ../../../../../../../src/org/eclipse/qvtd/atl/tests/families2persons/Families.ecore.oclas#r2YVU"/> </ownedSource> </ownedSource> </ownedCondition> - <ownedElse xsi:type="pivot:IfExp"> - <ownedCondition xsi:type="pivot:OperationCallExp"> - <ownedSource xsi:type="pivot:OperationCallExp"> - <ownedSource xsi:type="pivot:PropertyCallExp"> - <ownedSource xsi:type="pivot:VariableExp" name="self" referredVariable="#lcaR4"/> + <ownedElse xsi:type="pivot:IfExp" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#AlwVZ"> + <ownedCondition xsi:type="pivot:OperationCallExp" name="not" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#DH5kA" + type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#XEMMs"> + <ownedSource xsi:type="pivot:OperationCallExp" name="oclIsUndefined" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#aSwFn" + type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#XEMMs"> + <ownedSource xsi:type="pivot:PropertyCallExp" name="familySon" referredProperty="../../../../../../../src/org/eclipse/qvtd/atl/tests/families2persons/Families.ecore.oclas#lstD1" + type="pivot:Class ../../../../../../../src/org/eclipse/qvtd/atl/tests/families2persons/Families.ecore.oclas#151KI"> + <ownedSource xsi:type="pivot:VariableExp" name="self" referredVariable="#lcaR4" type="pivot:Class ../../../../../../../src/org/eclipse/qvtd/atl/tests/families2persons/Families.ecore.oclas#r2YVU"/> </ownedSource> </ownedSource> </ownedCondition> - <ownedElse xsi:type="pivot:PropertyCallExp"> - <ownedSource xsi:type="pivot:PropertyCallExp"> - <ownedSource xsi:type="pivot:VariableExp" name="self" referredVariable="#lcaR4"/> + <ownedElse xsi:type="pivot:PropertyCallExp" name="lastName" referredProperty="../../../../../../../src/org/eclipse/qvtd/atl/tests/families2persons/Families.ecore.oclas#6dF3q" + type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#AlwVZ"> + <ownedSource xsi:type="pivot:PropertyCallExp" name="familyDaughter" referredProperty="../../../../../../../src/org/eclipse/qvtd/atl/tests/families2persons/Families.ecore.oclas#j4ucQ" + type="pivot:Class ../../../../../../../src/org/eclipse/qvtd/atl/tests/families2persons/Families.ecore.oclas#151KI"> + <ownedSource xsi:type="pivot:VariableExp" name="self" referredVariable="#lcaR4" type="pivot:Class ../../../../../../../src/org/eclipse/qvtd/atl/tests/families2persons/Families.ecore.oclas#r2YVU"/> </ownedSource> </ownedElse> - <ownedThen xsi:type="pivot:PropertyCallExp"> - <ownedSource xsi:type="pivot:PropertyCallExp"> - <ownedSource xsi:type="pivot:VariableExp" name="self" referredVariable="#lcaR4"/> + <ownedThen xsi:type="pivot:PropertyCallExp" name="lastName" referredProperty="../../../../../../../src/org/eclipse/qvtd/atl/tests/families2persons/Families.ecore.oclas#6dF3q" + type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#AlwVZ"> + <ownedSource xsi:type="pivot:PropertyCallExp" name="familySon" referredProperty="../../../../../../../src/org/eclipse/qvtd/atl/tests/families2persons/Families.ecore.oclas#lstD1" + type="pivot:Class ../../../../../../../src/org/eclipse/qvtd/atl/tests/families2persons/Families.ecore.oclas#151KI"> + <ownedSource xsi:type="pivot:VariableExp" name="self" referredVariable="#lcaR4" type="pivot:Class ../../../../../../../src/org/eclipse/qvtd/atl/tests/families2persons/Families.ecore.oclas#r2YVU"/> </ownedSource> </ownedThen> </ownedElse> - <ownedThen xsi:type="pivot:PropertyCallExp"> - <ownedSource xsi:type="pivot:PropertyCallExp"> - <ownedSource xsi:type="pivot:VariableExp" name="self" referredVariable="#lcaR4"/> + <ownedThen xsi:type="pivot:PropertyCallExp" name="lastName" referredProperty="../../../../../../../src/org/eclipse/qvtd/atl/tests/families2persons/Families.ecore.oclas#6dF3q" + type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#AlwVZ"> + <ownedSource xsi:type="pivot:PropertyCallExp" name="familyMother" referredProperty="../../../../../../../src/org/eclipse/qvtd/atl/tests/families2persons/Families.ecore.oclas#eLUay" + type="pivot:Class ../../../../../../../src/org/eclipse/qvtd/atl/tests/families2persons/Families.ecore.oclas#151KI"> + <ownedSource xsi:type="pivot:VariableExp" name="self" referredVariable="#lcaR4" type="pivot:Class ../../../../../../../src/org/eclipse/qvtd/atl/tests/families2persons/Families.ecore.oclas#r2YVU"/> </ownedSource> </ownedThen> </ownedElse> - <ownedThen xsi:type="pivot:PropertyCallExp"> - <ownedSource xsi:type="pivot:PropertyCallExp"> - <ownedSource xsi:type="pivot:VariableExp" name="self" referredVariable="#lcaR4"/> + <ownedThen xsi:type="pivot:PropertyCallExp" name="lastName" referredProperty="../../../../../../../src/org/eclipse/qvtd/atl/tests/families2persons/Families.ecore.oclas#6dF3q" + type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#AlwVZ"> + <ownedSource xsi:type="pivot:PropertyCallExp" name="familyFather" referredProperty="../../../../../../../src/org/eclipse/qvtd/atl/tests/families2persons/Families.ecore.oclas#31gsl" + type="pivot:Class ../../../../../../../src/org/eclipse/qvtd/atl/tests/families2persons/Families.ecore.oclas#151KI"> + <ownedSource xsi:type="pivot:VariableExp" name="self" referredVariable="#lcaR4" type="pivot:Class ../../../../../../../src/org/eclipse/qvtd/atl/tests/families2persons/Families.ecore.oclas#r2YVU"/> </ownedSource> </ownedThen> </queryExpression> </ownedOperations> <ownedOperations xsi:type="qvtb:Function" xmi:id="N,BoB" name="isFemale" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#XEMMs"> - <ownedParameters xsi:type="qvtb:FunctionParameter" xmi:id="QQAbF" name="self" type="pivot:Class ../../../../../../../../org.eclipse.qvtd.atl.tests/src/org/eclipse/qvtd/atl/tests/families2persons/Families.ecore.oclas#r2YVU"/> - <queryExpression xsi:type="pivot:IfExp"> - <ownedCondition xsi:type="pivot:OperationCallExp"> - <ownedSource xsi:type="pivot:OperationCallExp"> - <ownedSource xsi:type="pivot:PropertyCallExp"> - <ownedSource xsi:type="pivot:VariableExp" name="self" referredVariable="#QQAbF"/> + <ownedParameters xsi:type="qvtb:FunctionParameter" xmi:id="QQAbF" name="self" type="pivot:Class ../../../../../../../src/org/eclipse/qvtd/atl/tests/families2persons/Families.ecore.oclas#r2YVU"/> + <queryExpression xsi:type="pivot:IfExp" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#XEMMs"> + <ownedCondition xsi:type="pivot:OperationCallExp" name="not" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#DH5kA" + type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#XEMMs"> + <ownedSource xsi:type="pivot:OperationCallExp" name="oclIsUndefined" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#aSwFn" + type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#XEMMs"> + <ownedSource xsi:type="pivot:PropertyCallExp" name="familyMother" referredProperty="../../../../../../../src/org/eclipse/qvtd/atl/tests/families2persons/Families.ecore.oclas#eLUay" + type="pivot:Class ../../../../../../../src/org/eclipse/qvtd/atl/tests/families2persons/Families.ecore.oclas#151KI"> + <ownedSource xsi:type="pivot:VariableExp" name="self" referredVariable="#QQAbF" type="pivot:Class ../../../../../../../src/org/eclipse/qvtd/atl/tests/families2persons/Families.ecore.oclas#r2YVU"/> </ownedSource> </ownedSource> </ownedCondition> - <ownedElse xsi:type="pivot:IfExp"> - <ownedCondition xsi:type="pivot:OperationCallExp"> - <ownedSource xsi:type="pivot:OperationCallExp"> - <ownedSource xsi:type="pivot:PropertyCallExp"> - <ownedSource xsi:type="pivot:VariableExp" name="self" referredVariable="#QQAbF"/> + <ownedElse xsi:type="pivot:IfExp" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#XEMMs"> + <ownedCondition xsi:type="pivot:OperationCallExp" name="not" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#DH5kA" + type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#XEMMs"> + <ownedSource xsi:type="pivot:OperationCallExp" name="oclIsUndefined" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#aSwFn" + type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#XEMMs"> + <ownedSource xsi:type="pivot:PropertyCallExp" name="familyDaughter" referredProperty="../../../../../../../src/org/eclipse/qvtd/atl/tests/families2persons/Families.ecore.oclas#j4ucQ" + type="pivot:Class ../../../../../../../src/org/eclipse/qvtd/atl/tests/families2persons/Families.ecore.oclas#151KI"> + <ownedSource xsi:type="pivot:VariableExp" name="self" referredVariable="#QQAbF" type="pivot:Class ../../../../../../../src/org/eclipse/qvtd/atl/tests/families2persons/Families.ecore.oclas#r2YVU"/> </ownedSource> </ownedSource> </ownedCondition> @@ -81,24 +106,28 @@ <ownedThen xsi:type="pivot:BooleanLiteralExp" booleanSymbol="true" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#XEMMs"/> </queryExpression> </ownedOperations> - <rule xsi:type="qvtr:Relation" name="Member2Female"> - <domain xsi:type="qvtr:RelationDomain" isCheckable="true" isEnforceable="false" rootVariable="#8tM8f"> + <rule xsi:type="qvtr:Relation" isTopLevel="true" name="Member2Female"> + <domain xsi:type="qvtr:RelationDomain" isCheckable="true" isEnforceable="false" rootVariable="#8tM8f" typedModel="#z2sgS"> <pattern> - <templateExpression xsi:type="qvtt:ObjectTemplateExp" bindsTo="#8tM8f"/> + <templateExpression xsi:type="qvtt:ObjectTemplateExp" bindsTo="#8tM8f" type="pivot:Class ../../../../../../../src/org/eclipse/qvtd/atl/tests/families2persons/Families.ecore.oclas#r2YVU"/> </pattern> </domain> - <domain xsi:type="qvtr:RelationDomain" isCheckable="false" isEnforceable="true" rootVariable="#9tM8f"> + <domain xsi:type="qvtr:RelationDomain" isCheckable="false" isEnforceable="true" rootVariable="#9tM8f" typedModel="#v4ega"> <pattern> - <templateExpression xsi:type="qvtt:ObjectTemplateExp" bindsTo="#9tM8f"> - <part referredProperty="http://www.eclipse.org/ocl/2015/Library.oclas#//@ownedPackages.0/@ownedClasses.7/@ownedProperties.0"> - <value xsi:type="pivot:OperationCallExp"> - <ownedArguments xsi:type="pivot:PropertyCallExp"> - <ownedSource xsi:type="pivot:VariableExp" name="s" referredVariable="#8tM8f"/> + <templateExpression xsi:type="qvtt:ObjectTemplateExp" bindsTo="#9tM8f" type="pivot:Class ../../../../../../../src/org/eclipse/qvtd/atl/tests/families2persons/Persons.ecore.oclas#pzC6s"> + <part referredProperty="../../../../../../../src/org/eclipse/qvtd/atl/tests/families2persons/Persons.ecore.oclas#8tc+u"> + <value xsi:type="pivot:OperationCallExp" name="+" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#gJ7dJ" + type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#AlwVZ"> + <ownedArguments xsi:type="pivot:OperationCallExp" name="familyName" referredOperation="#Gr4OV" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#AlwVZ"> + <ownedArguments xsi:type="pivot:VariableExp" name="s" referredVariable="#8tM8f" type="pivot:Class ../../../../../../../src/org/eclipse/qvtd/atl/tests/families2persons/Families.ecore.oclas#r2YVU"/> + <ownedSource xsi:type="pivot:VariableExp" name="this" referredVariable="#DqXtJ" type="#lSZ2I"/> </ownedArguments> - <ownedSource xsi:type="pivot:OperationCallExp"> + <ownedSource xsi:type="pivot:OperationCallExp" name="+" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#gJ7dJ" + type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#AlwVZ"> <ownedArguments xsi:type="pivot:StringLiteralExp" stringSymbol=" " type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#AlwVZ"/> - <ownedSource xsi:type="pivot:PropertyCallExp"> - <ownedSource xsi:type="pivot:VariableExp" name="s" referredVariable="#8tM8f"/> + <ownedSource xsi:type="pivot:PropertyCallExp" name="firstName" referredProperty="../../../../../../../src/org/eclipse/qvtd/atl/tests/families2persons/Families.ecore.oclas#yTUBO" + type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#AlwVZ"> + <ownedSource xsi:type="pivot:VariableExp" name="s" referredVariable="#8tM8f" type="pivot:Class ../../../../../../../src/org/eclipse/qvtd/atl/tests/families2persons/Families.ecore.oclas#r2YVU"/> </ownedSource> </ownedSource> </value> @@ -106,34 +135,39 @@ </templateExpression> </pattern> </domain> - <variable xsi:type="qvtr:TemplateVariable" xmi:id="8tM8f" name="s"/> - <variable xsi:type="qvtr:TemplateVariable" xmi:id="9tM8f" name="t"/> + <variable xsi:type="qvtr:TemplateVariable" xmi:id="8tM8f" name="s" type="pivot:Class ../../../../../../../src/org/eclipse/qvtd/atl/tests/families2persons/Families.ecore.oclas#r2YVU"/> + <variable xsi:type="qvtr:TemplateVariable" xmi:id="9tM8f" name="t" type="pivot:Class ../../../../../../../src/org/eclipse/qvtd/atl/tests/families2persons/Persons.ecore.oclas#pzC6s"/> <when> <predicate> - <conditionExpression xsi:type="pivot:OperationCallExp"> - <ownedSource xsi:type="pivot:VariableExp" name="s" referredVariable="#8tM8f"/> + <conditionExpression xsi:type="pivot:OperationCallExp" name="isFemale" referredOperation="#N,BoB" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#XEMMs"> + <ownedArguments xsi:type="pivot:VariableExp" name="s" referredVariable="#8tM8f" type="pivot:Class ../../../../../../../src/org/eclipse/qvtd/atl/tests/families2persons/Families.ecore.oclas#r2YVU"/> + <ownedSource xsi:type="pivot:VariableExp" name="this" referredVariable="#DqXtJ" type="#lSZ2I"/> </conditionExpression> </predicate> </when> </rule> - <rule xsi:type="qvtr:Relation" name="Member2Male"> - <domain xsi:type="qvtr:RelationDomain" isCheckable="true" isEnforceable="false" rootVariable="#50ALF"> + <rule xsi:type="qvtr:Relation" isTopLevel="true" name="Member2Male"> + <domain xsi:type="qvtr:RelationDomain" isCheckable="true" isEnforceable="false" rootVariable="#50ALF" typedModel="#z2sgS"> <pattern> - <templateExpression xsi:type="qvtt:ObjectTemplateExp" bindsTo="#50ALF"/> + <templateExpression xsi:type="qvtt:ObjectTemplateExp" bindsTo="#50ALF" type="pivot:Class ../../../../../../../src/org/eclipse/qvtd/atl/tests/families2persons/Families.ecore.oclas#r2YVU"/> </pattern> </domain> - <domain xsi:type="qvtr:RelationDomain" isCheckable="false" isEnforceable="true" rootVariable="#60ALF"> + <domain xsi:type="qvtr:RelationDomain" isCheckable="false" isEnforceable="true" rootVariable="#60ALF" typedModel="#v4ega"> <pattern> - <templateExpression xsi:type="qvtt:ObjectTemplateExp" bindsTo="#60ALF"> - <part referredProperty="http://www.eclipse.org/ocl/2015/Library.oclas#//@ownedPackages.0/@ownedClasses.7/@ownedProperties.0"> - <value xsi:type="pivot:OperationCallExp"> - <ownedArguments xsi:type="pivot:PropertyCallExp"> - <ownedSource xsi:type="pivot:VariableExp" name="s" referredVariable="#50ALF"/> + <templateExpression xsi:type="qvtt:ObjectTemplateExp" bindsTo="#60ALF" type="pivot:Class ../../../../../../../src/org/eclipse/qvtd/atl/tests/families2persons/Persons.ecore.oclas#q+x1v"> + <part referredProperty="../../../../../../../src/org/eclipse/qvtd/atl/tests/families2persons/Persons.ecore.oclas#8tc+u"> + <value xsi:type="pivot:OperationCallExp" name="+" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#gJ7dJ" + type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#AlwVZ"> + <ownedArguments xsi:type="pivot:OperationCallExp" name="familyName" referredOperation="#Gr4OV" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#AlwVZ"> + <ownedArguments xsi:type="pivot:VariableExp" name="s" referredVariable="#50ALF" type="pivot:Class ../../../../../../../src/org/eclipse/qvtd/atl/tests/families2persons/Families.ecore.oclas#r2YVU"/> + <ownedSource xsi:type="pivot:VariableExp" name="this" referredVariable="#DqXtJ" type="#lSZ2I"/> </ownedArguments> - <ownedSource xsi:type="pivot:OperationCallExp"> + <ownedSource xsi:type="pivot:OperationCallExp" name="+" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#gJ7dJ" + type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#AlwVZ"> <ownedArguments xsi:type="pivot:StringLiteralExp" stringSymbol=" " type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#AlwVZ"/> - <ownedSource xsi:type="pivot:PropertyCallExp"> - <ownedSource xsi:type="pivot:VariableExp" name="s" referredVariable="#50ALF"/> + <ownedSource xsi:type="pivot:PropertyCallExp" name="firstName" referredProperty="../../../../../../../src/org/eclipse/qvtd/atl/tests/families2persons/Families.ecore.oclas#yTUBO" + type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#AlwVZ"> + <ownedSource xsi:type="pivot:VariableExp" name="s" referredVariable="#50ALF" type="pivot:Class ../../../../../../../src/org/eclipse/qvtd/atl/tests/families2persons/Families.ecore.oclas#r2YVU"/> </ownedSource> </ownedSource> </value> @@ -141,13 +175,15 @@ </templateExpression> </pattern> </domain> - <variable xsi:type="qvtr:TemplateVariable" xmi:id="50ALF" name="s"/> - <variable xsi:type="qvtr:TemplateVariable" xmi:id="60ALF" name="t"/> + <variable xsi:type="qvtr:TemplateVariable" xmi:id="50ALF" name="s" type="pivot:Class ../../../../../../../src/org/eclipse/qvtd/atl/tests/families2persons/Families.ecore.oclas#r2YVU"/> + <variable xsi:type="qvtr:TemplateVariable" xmi:id="60ALF" name="t" type="pivot:Class ../../../../../../../src/org/eclipse/qvtd/atl/tests/families2persons/Persons.ecore.oclas#q+x1v"/> <when> <predicate> - <conditionExpression xsi:type="pivot:OperationCallExp"> - <ownedSource xsi:type="pivot:OperationCallExp"> - <ownedSource xsi:type="pivot:VariableExp" name="s" referredVariable="#50ALF"/> + <conditionExpression xsi:type="pivot:OperationCallExp" name="not" referredOperation="http://www.eclipse.org/ocl/2015/Library.oclas#DH5kA" + type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#XEMMs"> + <ownedSource xsi:type="pivot:OperationCallExp" name="isFemale" referredOperation="#N,BoB" type="pivot:PrimitiveType http://www.eclipse.org/ocl/2015/Library.oclas#XEMMs"> + <ownedArguments xsi:type="pivot:VariableExp" name="s" referredVariable="#50ALF" type="pivot:Class ../../../../../../../src/org/eclipse/qvtd/atl/tests/families2persons/Families.ecore.oclas#r2YVU"/> + <ownedSource xsi:type="pivot:VariableExp" name="this" referredVariable="#DqXtJ" type="#lSZ2I"/> </ownedSource> </conditionExpression> </predicate> |