blob: 3c1e3d2009255dc58b8ee802745669161dc89373 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<xmi:XMI 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" xmlns:mtl="http://www.eclipse.org/acceleo/mtl/3.0" xmlns:ocl.ecore="http://www.eclipse.org/ocl/1.1.0/Ecore">
<mtl:Module name="org::eclipse::ocl::examples::codegen::tables::model2tables" nsURI="org::eclipse::ocl::examples::codegen::tables::model2tables" startHeaderPosition="456" endHeaderPosition="607">
<input>
<takesTypesFrom href="http://www.eclipse.org/ocl/3.1.0/Pivot#/"/>
</input>
<input>
<takesTypesFrom href="http://www.eclipse.org/emf/2002/GenModel#/"/>
</input>
<imports href="../common/elementQueries.emtl#/0"/>
<imports href="../common/emitQueries.emtl#/0"/>
<imports href="../common/genPackageQueries.emtl#/0"/>
<imports href="../common/nameQueries.emtl#/0"/>
<imports href="../common/pivotQueries.emtl#/0"/>
<imports href="../common/qualifiedLiteralTemplates.emtl#/0"/>
<imports href="../common/symbolTemplates.emtl#/0"/>
<ownedModuleElement xsi:type="mtl:Template" name="generateTables" visibility="Public" main="true">
<body xsi:type="mtl:ForBlock">
<body xsi:type="mtl:LetBlock">
<body xsi:type="mtl:TemplateInvocation" definition="/0/generatePackage">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<argument xsi:type="ocl.ecore:VariableExp" name="genPackage" referredVariable="/0/generateTables/@body.0/genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="pPackage" referredVariable="/0/generateTables/@body.0/@body.0/pPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package"/>
</argument>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;"/>
<letVariable name="pPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package"/>
<initExpression xsi:type="mtl:QueryInvocation">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package"/>
<definition href="../common/genPackageQueries.emtl#/0/getPivotPackage"/>
<argument xsi:type="ocl.ecore:VariableExp" name="genPackage" referredVariable="/0/generateTables/@body.0/genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</argument>
</initExpression>
</letVariable>
</body>
<loopVariable name="genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</loopVariable>
<iterSet xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(GenPackage)">
<source xsi:type="ocl.ecore:VariableExp" name="genModel" referredVariable="/0/generateTables/genModel">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenModel"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/emf/2002/GenModel#//GenModel/genPackages"/>
</iterSet>
</body>
<parameter name="genModel">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenModel"/>
</parameter>
</ownedModuleElement>
<ownedModuleElement xsi:type="mtl:Template" name="generatePackage" visibility="Public">
<body xsi:type="mtl:LetBlock">
<body xsi:type="mtl:LetBlock">
<body xsi:type="mtl:LetBlock">
<body xsi:type="mtl:FileBlock" openMode="OverWrite">
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="/**&#xA; * "/>
<body xsi:type="mtl:QueryInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<definition href="../common/genPackageQueries.emtl#/0/getCopyright"/>
<argument xsi:type="ocl.ecore:VariableExp" name="genPackage" referredVariable="/0/generatePackage/genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</argument>
<argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" * ">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</argument>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA; *************************************************************************&#xA; * This code is 100% auto-generated&#xA; * from: "/>
<body xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<source xsi:type="ocl.ecore:VariableExp" name="pPackage" referredVariable="/0/generatePackage/pPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package"/>
</source>
<referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//NamedElement/name"/>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA; * using: org.eclipse.ocl.examples.codegen.tables.model2tables.mtl&#xA; *&#xA; * Do not edit it.&#xA; */&#xA;package "/>
<body xsi:type="mtl:QueryInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<definition href="../common/genPackageQueries.emtl#/0/getQualifiedPackageName"/>
<argument xsi:type="ocl.ecore:VariableExp" name="genPackage" referredVariable="/0/generatePackage/genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</argument>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=";&#xA;&#xA;"/>
<body xsi:type="mtl:QueryInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<definition href="../common/emitQueries.emtl#/0/prefixImports"/>
<argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/25">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</argument>
<argument xsi:type="mtl:QueryInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<definition href="../common/emitQueries.emtl#/0/knownImports"/>
<argument xsi:type="ocl.ecore:VariableExp" name="self" referredVariable="/25">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</argument>
</argument>
<argument xsi:type="mtl:TemplateInvocation" definition="/0/generateTablesClass">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<argument xsi:type="ocl.ecore:VariableExp" name="genPackage" referredVariable="/0/generatePackage/genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="pPackage" referredVariable="/0/generatePackage/pPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package"/>
</argument>
</argument>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;"/>
<fileUrl xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/String_Class/+">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<source xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/String_Class/+">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<source xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/String_Class/+">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<source xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/String_Class/+">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<source xsi:type="ocl.ecore:VariableExp" name="packagePathPrefix" referredVariable="/0/generatePackage/@body.0/@body.0/packagePathPrefix">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</source>
<argument xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<source xsi:type="ocl.ecore:VariableExp" name="pPackage" referredVariable="/0/generatePackage/pPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package"/>
</source>
<referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//NamedElement/name"/>
</argument>
</source>
<argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="/">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</argument>
</source>
<argument xsi:type="ocl.ecore:VariableExp" name="tablesClassName" referredVariable="/0/generatePackage/@body.0/tablesClassName">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</argument>
</source>
<argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=".java">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</argument>
</fileUrl>
<charset xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="UTF-8">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</charset>
</body>
<letVariable name="packagePrefix">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<initExpression xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/String_Class/replaceAll">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<source xsi:type="ocl.ecore:VariableExp" name="packagePathPrefix" referredVariable="/0/generatePackage/@body.0/@body.0/packagePathPrefix">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</source>
<argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="/">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</argument>
<argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=".">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</argument>
</initExpression>
</letVariable>
</body>
<letVariable name="packagePathPrefix">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<initExpression xsi:type="ocl.ecore:IfExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<condition xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
<source xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
<source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Set(String)">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">
<details key="IMPLICIT_SET_CONVERSION" value="true"/>
</eAnnotations>
<part xsi:type="ocl.ecore:CollectionItem">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<item xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<source xsi:type="ocl.ecore:VariableExp" name="genPackage" referredVariable="/0/generatePackage/genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</source>
<referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage/basePackage"/>
</item>
</part>
</source>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/notEmpty"/>
</source>
<argument xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
<source xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
<source xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<source xsi:type="ocl.ecore:VariableExp" name="genPackage" referredVariable="/0/generatePackage/genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</source>
<referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage/basePackage"/>
</source>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String_Class/size"/>
</source>
<argument xsi:type="ocl.ecore:IntegerLiteralExp" integerSymbol="0">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
</argument>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer_Class/%3E"/>
</argument>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/and"/>
</condition>
<thenExpression xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/String_Class/+">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<source xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/String_Class/replaceAll">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<source xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<source xsi:type="ocl.ecore:VariableExp" name="genPackage" referredVariable="/0/generatePackage/genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</source>
<referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage/basePackage"/>
</source>
<argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="\.">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</argument>
<argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="/">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</argument>
</source>
<argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="/">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</argument>
</thenExpression>
<elseExpression xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</elseExpression>
</initExpression>
</letVariable>
</body>
<letVariable name="tablesClassName">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<initExpression xsi:type="mtl:QueryInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<definition href="../common/genPackageQueries.emtl#/0/getTablesClassName"/>
<argument xsi:type="ocl.ecore:VariableExp" name="genPackage" referredVariable="/0/generatePackage/genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</argument>
</initExpression>
</letVariable>
</body>
<parameter name="genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</parameter>
<parameter name="pPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package"/>
</parameter>
</ownedModuleElement>
<ownedModuleElement xsi:type="mtl:Template" name="generateTablesClass" visibility="Public">
<body xsi:type="mtl:LetBlock">
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="/**&#xA; * "/>
<body xsi:type="ocl.ecore:VariableExp" name="tablesClassName" referredVariable="/0/generateTablesClass/@body.0/tablesClassName.2">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" provides the dispatch tables for the "/>
<body xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<source xsi:type="ocl.ecore:VariableExp" name="pPackage" referredVariable="/0/generateTablesClass/pPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package"/>
</source>
<referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//NamedElement/name"/>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" for use by the OCL dispatcher.&#xA; *&#xA; * In order to ensure correct static initialization, a top level class element must be accessed&#xA; * before any nested class element. Therefore an access to PACKAGE.getClass() is recommended.&#xA; */&#xA;@SuppressWarnings(&quot;nls&quot;)&#xA;public class "/>
<body xsi:type="ocl.ecore:VariableExp" name="tablesClassName" referredVariable="/0/generateTablesClass/@body.0/tablesClassName.2">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;{&#xA;&#x9;/**&#xA;&#x9; *&#x9;The package descriptor for the package.&#xA;&#x9; */&#xA;&#x9;public static final &lt;%EcoreExecutorPackage%> PACKAGE = new &lt;%EcoreExecutorPackage%>("/>
<body xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<source xsi:type="ocl.ecore:VariableExp" name="genPackage" referredVariable="/0/generateTablesClass/genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</source>
<referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage/prefix"/>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="Package.eINSTANCE);&#xA;&#xA;/**&#xA;&#x9; *&#x9;The library of all packages and types.&#xA;&#x9; */&#xA;&#x9;public static final &lt;%ExecutorStandardLibrary%> LIBRARY = "/>
<body xsi:type="mtl:IfBlock">
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&lt;%"/>
<body xsi:type="mtl:QueryInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<definition href="../common/genPackageQueries.emtl#/0/getSharedLibrary"/>
<argument xsi:type="ocl.ecore:VariableExp" name="genPackage" referredVariable="/0/generateTablesClass/genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</argument>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="%>.LIBRARY"/>
<ifExpr xsi:type="mtl:QueryInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
<definition href="../common/genPackageQueries.emtl#/0/hasSharedLibrary"/>
<argument xsi:type="ocl.ecore:VariableExp" name="genPackage" referredVariable="/0/generateTablesClass/genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</argument>
</ifExpr>
<else>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="new &lt;%ExecutorStandardLibrary%>(PACKAGE)"/>
</else>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="; &#xA;&#xA;&#x9;"/>
<body xsi:type="mtl:TemplateInvocation" definition="/0/declareTypes">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<argument xsi:type="ocl.ecore:VariableExp" name="pPackage" referredVariable="/0/generateTablesClass/pPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="genPackage" referredVariable="/0/generateTablesClass/genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</argument>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;&#xA;&#x9;"/>
<body xsi:type="mtl:TemplateInvocation" definition="/0/declareFragments">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<argument xsi:type="ocl.ecore:VariableExp" name="pPackage" referredVariable="/0/generateTablesClass/pPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="genPackage" referredVariable="/0/generateTablesClass/genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</argument>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;&#xA;&#x9;"/>
<body xsi:type="mtl:TemplateInvocation" definition="/0/declareOperations">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<argument xsi:type="ocl.ecore:VariableExp" name="pPackage" referredVariable="/0/generateTablesClass/pPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="genPackage" referredVariable="/0/generateTablesClass/genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</argument>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;&#xA;&#x9;"/>
<body xsi:type="mtl:TemplateInvocation" definition="/0/declareProperties">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<argument xsi:type="ocl.ecore:VariableExp" name="pPackage" referredVariable="/0/generateTablesClass/pPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="genPackage" referredVariable="/0/generateTablesClass/genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</argument>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;&#xA;&#x9;"/>
<body xsi:type="mtl:TemplateInvocation" definition="/0/declareTypeFragments">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<argument xsi:type="ocl.ecore:VariableExp" name="pPackage" referredVariable="/0/generateTablesClass/pPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="genPackage" referredVariable="/0/generateTablesClass/genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</argument>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;&#xA;&#x9;"/>
<body xsi:type="mtl:TemplateInvocation" definition="/0/declareFragmentOperations">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<argument xsi:type="ocl.ecore:VariableExp" name="pPackage" referredVariable="/0/generateTablesClass/pPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="genPackage" referredVariable="/0/generateTablesClass/genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</argument>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;&#xA;&#x9;"/>
<body xsi:type="mtl:TemplateInvocation" definition="/0/declareFragmentProperties">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<argument xsi:type="ocl.ecore:VariableExp" name="pPackage" referredVariable="/0/generateTablesClass/pPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="genPackage" referredVariable="/0/generateTablesClass/genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</argument>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;&#x9;"/>
<body xsi:type="mtl:TemplateInvocation" definition="/0/declareEnumerationLiterals">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<argument xsi:type="ocl.ecore:VariableExp" name="pPackage" referredVariable="/0/generateTablesClass/pPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="genPackage" referredVariable="/0/generateTablesClass/genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</argument>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;&#x9;&#xA;&#x9;static {&#xA;&#x9;&#x9;Types.types"/>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="[0]">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=".getClass();&#xA;&#x9;}&#xA;}&#xA;"/>
<letVariable name="tablesClassName">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<initExpression xsi:type="mtl:QueryInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<definition href="../common/genPackageQueries.emtl#/0/getTablesClassName"/>
<argument xsi:type="ocl.ecore:VariableExp" name="genPackage" referredVariable="/0/generateTablesClass/genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</argument>
</initExpression>
</letVariable>
</body>
<parameter name="genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</parameter>
<parameter name="pPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package"/>
</parameter>
</ownedModuleElement>
<ownedModuleElement xsi:type="mtl:Template" name="declareTypes" visibility="Public">
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="/**&#xA; *&#x9;The type descriptors for each type.&#xA; */&#xA;public static class Types {"/>
<body xsi:type="mtl:ForBlock">
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" "/>
<body xsi:type="mtl:TemplateInvocation" definition="/0/declareType">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<argument xsi:type="ocl.ecore:VariableExp" name="pPackage" referredVariable="/0/declareTypes/pPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="genPackage" referredVariable="/0/declareTypes/genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="cls" referredVariable="/0/declareTypes/@body.1/cls">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Class"/>
</argument>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;"/>
<loopVariable name="cls">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Class"/>
</loopVariable>
<iterSet xsi:type="ocl.ecore:IteratorExp" name="sortedBy" eType="/3/OrderedSet(Class)">
<source xsi:type="ocl.ecore:OperationCallExp" eType="/3/Set(Class)" referredOperation="/1/Collection(T)_Class/filter">
<source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/Set(Type)">
<source xsi:type="ocl.ecore:VariableExp" name="pPackage" referredVariable="/0/declareTypes/pPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package/ownedType"/>
</source>
<argument xsi:type="ocl.ecore:TypeExp" eType="/50/Class">
<referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Class"/>
</argument>
</source>
<body xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<source xsi:type="ocl.ecore:VariableExp" name="temp1" referredVariable="/0/declareTypes/@body.1/sortedBy/temp1">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Class"/>
</source>
<referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//NamedElement/name"/>
</body>
<iterator xsi:type="ocl.ecore:Variable" name="temp1">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Class"/>
</iterator>
</iterSet>
<before xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</before>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;&#x9;private static final &lt;%EcoreExecutorType%>"/>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="[]">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" types = {&#xA;"/>
<body xsi:type="mtl:ForBlock">
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9; _"/>
<body xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<source xsi:type="ocl.ecore:VariableExp" name="type" referredVariable="/0/declareTypes/@body.5/type">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
</source>
<referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//NamedElement/name"/>
</body>
<loopVariable name="type">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
</loopVariable>
<iterSet xsi:type="ocl.ecore:IteratorExp" name="sortedBy" eType="/3/OrderedSet(Type)">
<source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/Set(Type)">
<source xsi:type="ocl.ecore:VariableExp" name="pPackage" referredVariable="/0/declareTypes/pPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package/ownedType"/>
</source>
<body xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<source xsi:type="ocl.ecore:VariableExp" name="temp1" referredVariable="/0/declareTypes/@body.5/sortedBy/temp2">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
</source>
<referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//NamedElement/name"/>
</body>
<iterator xsi:type="ocl.ecore:Variable" name="temp2">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
</iterator>
</iterSet>
<each xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=",&#xA;">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</each>
<after xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</after>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;};&#xA;&#xA;&#x9;/*&#xA;&#x9; *&#x9;Install the type descriptors in the package descriptor.&#xA;&#x9; */&#xA;&#x9;static {&#xA;&#x9;&#x9;PACKAGE.init(LIBRARY, types);&#xA;&#x9;&#x9;TypeFragments.init();&#xA;&#x9;&#x9;FragmentOperations.init();&#xA;&#x9;&#x9;FragmentProperties.init();&#xA;"/>
<body xsi:type="mtl:IfBlock">
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;&#x9;EnumerationLiterals.init();&#xA;"/>
<ifExpr xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
<source xsi:type="ocl.ecore:OperationCallExp" eType="/3/Set(Enumeration)" referredOperation="/1/Collection(T)_Class/filter">
<source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/Set(Type)">
<source xsi:type="ocl.ecore:VariableExp" name="pPackage" referredVariable="/0/declareTypes/pPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package/ownedType"/>
</source>
<argument xsi:type="ocl.ecore:TypeExp" eType="/50/Enumeration">
<referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Enumeration"/>
</argument>
</source>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/notEmpty"/>
</ifExpr>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;}&#xA;}"/>
<parameter name="pPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package"/>
</parameter>
<parameter name="genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</parameter>
</ownedModuleElement>
<ownedModuleElement xsi:type="mtl:Template" name="declareType" visibility="Public">
<body xsi:type="mtl:LetBlock">
<body xsi:type="mtl:IfBlock">
<body xsi:type="mtl:ForBlock">
<body xsi:type="mtl:LetBlock">
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="private static final &lt;%ExecutorTypeParameter%> _"/>
<body xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<source xsi:type="ocl.ecore:VariableExp" name="cls" referredVariable="/0/declareType/cls">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Class"/>
</source>
<referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//NamedElement/name"/>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="_"/>
<body xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<source xsi:type="ocl.ecore:VariableExp" name="parameteredElement" referredVariable="/0/declareType/@body.0/@body.0/@body.0/@body.0/parameteredElement">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
</source>
<referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//NamedElement/name"/>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" = new &lt;%ExecutorTypeParameter%>(LIBRARY, &quot;"/>
<body xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<source xsi:type="ocl.ecore:VariableExp" name="parameteredElement" referredVariable="/0/declareType/@body.0/@body.0/@body.0/@body.0/parameteredElement">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
</source>
<referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//NamedElement/name"/>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&quot;);&#xA;"/>
<letVariable name="parameteredElement">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
<initExpression xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
<source xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ParameterableElement"/>
<source xsi:type="ocl.ecore:VariableExp" name="parameter" referredVariable="/0/declareType/@body.0/@body.0/@body.0/parameter">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//TypeTemplateParameter"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//TemplateParameter/parameteredElement"/>
</source>
<argument xsi:type="ocl.ecore:TypeExp" eType="/50/Type">
<referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
</argument>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclAsType"/>
</initExpression>
</letVariable>
</body>
<loopVariable name="parameter">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//TypeTemplateParameter"/>
</loopVariable>
<iterSet xsi:type="ocl.ecore:OperationCallExp" eType="/3/OrderedSet(TypeTemplateParameter)" referredOperation="/1/Collection(T)_Class/filter">
<source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(TemplateParameter)">
<source xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//TemplateSignature"/>
<source xsi:type="ocl.ecore:VariableExp" name="cls" referredVariable="/0/declareType/cls">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Class"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//TemplateableElement/ownedTemplateSignature"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//TemplateSignature/parameter"/>
</source>
<argument xsi:type="ocl.ecore:TypeExp" eType="/50/TypeTemplateParameter">
<referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//TypeTemplateParameter"/>
</argument>
</iterSet>
</body>
<ifExpr xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
<source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Set(TemplateSignature)">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">
<details key="IMPLICIT_SET_CONVERSION" value="true"/>
</eAnnotations>
<part xsi:type="ocl.ecore:CollectionItem">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//TemplateSignature"/>
<item xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//TemplateSignature"/>
<source xsi:type="ocl.ecore:VariableExp" name="cls" referredVariable="/0/declareType/cls">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Class"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//TemplateableElement/ownedTemplateSignature"/>
</item>
</part>
</source>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/notEmpty"/>
</ifExpr>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="public static final &lt;%"/>
<body xsi:type="ocl.ecore:VariableExp" name="typeName" referredVariable="/0/declareType/@body.0/typeName.1">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="%> _"/>
<body xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<source xsi:type="ocl.ecore:VariableExp" name="cls" referredVariable="/0/declareType/cls">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Class"/>
</source>
<referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//NamedElement/name"/>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" = "/>
<body xsi:type="mtl:IfBlock">
<body xsi:type="mtl:TemplateInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<definition href="../common/qualifiedLiteralTemplates.emtl#/0/emitQualifiedLiteralName.6"/>
<argument xsi:type="mtl:QueryInvocation">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
<definition href="../common/genPackageQueries.emtl#/0/getAnotherType"/>
<argument xsi:type="ocl.ecore:VariableExp" name="genPackage" referredVariable="/0/declareType/genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="cls" referredVariable="/0/declareType/cls">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Class"/>
</argument>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="genPackage" referredVariable="/0/declareType/genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</argument>
</body>
<ifExpr xsi:type="mtl:QueryInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
<definition href="../common/genPackageQueries.emtl#/0/hasAnotherType"/>
<argument xsi:type="ocl.ecore:VariableExp" name="genPackage" referredVariable="/0/declareType/genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="cls" referredVariable="/0/declareType/cls">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Class"/>
</argument>
</ifExpr>
<else>
<body xsi:type="mtl:IfBlock">
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="new &lt;%"/>
<body xsi:type="ocl.ecore:VariableExp" name="typeName" referredVariable="/0/declareType/@body.0/typeName.1">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="%>(&quot;"/>
<body xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<source xsi:type="ocl.ecore:VariableExp" name="cls" referredVariable="/0/declareType/cls">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Class"/>
</source>
<referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//NamedElement/name"/>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&quot;"/>
<ifExpr xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
<source xsi:type="mtl:QueryInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
<definition href="../common/genPackageQueries.emtl#/0/hasEcore.1"/>
<argument xsi:type="ocl.ecore:VariableExp" name="genPackage" referredVariable="/0/declareType/genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="cls" referredVariable="/0/declareType/cls">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Class"/>
</argument>
</source>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/not"/>
</ifExpr>
<else>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="new &lt;%"/>
<body xsi:type="ocl.ecore:VariableExp" name="typeName" referredVariable="/0/declareType/@body.0/typeName.1">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="%>("/>
<body xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/String_Class/+">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<source xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/String_Class/+">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<source xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<source xsi:type="ocl.ecore:VariableExp" name="genPackage" referredVariable="/0/declareType/genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</source>
<referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage/prefix"/>
</source>
<argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="Package.Literals.">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</argument>
</source>
<argument xsi:type="mtl:QueryInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<definition href="../common/nameQueries.emtl#/0/upperName"/>
<argument xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<source xsi:type="ocl.ecore:VariableExp" name="cls" referredVariable="/0/declareType/cls">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Class"/>
</source>
<referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//NamedElement/name"/>
</argument>
</argument>
</body>
</else>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=", PACKAGE, "/>
<body xsi:type="mtl:QueryInvocation" definition="/0/getTypeFlags">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<argument xsi:type="ocl.ecore:VariableExp" name="pPackage" referredVariable="/0/declareType/pPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="cls" referredVariable="/0/declareType/cls">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Class"/>
</argument>
</body>
<body xsi:type="mtl:IfBlock">
<body xsi:type="mtl:ForBlock">
<body xsi:type="mtl:LetBlock">
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=", _"/>
<body xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<source xsi:type="ocl.ecore:VariableExp" name="cls" referredVariable="/0/declareType/cls">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Class"/>
</source>
<referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//NamedElement/name"/>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="_"/>
<body xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<source xsi:type="ocl.ecore:VariableExp" name="parameteredElement" referredVariable="/0/declareType/@body.0/@body.6/@else/@body.3/@body.0/@body.0/parameteredElement">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
</source>
<referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//NamedElement/name"/>
</body>
<letVariable name="parameteredElement">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
<initExpression xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
<source xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ParameterableElement"/>
<source xsi:type="ocl.ecore:VariableExp" name="parameter" referredVariable="/0/declareType/@body.0/@body.6/@else/@body.3/@body.0/parameter">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//TypeTemplateParameter"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//TemplateParameter/parameteredElement"/>
</source>
<argument xsi:type="ocl.ecore:TypeExp" eType="/50/Type">
<referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
</argument>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclAsType"/>
</initExpression>
</letVariable>
</body>
<loopVariable name="parameter">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//TypeTemplateParameter"/>
</loopVariable>
<iterSet xsi:type="ocl.ecore:OperationCallExp" eType="/3/OrderedSet(TypeTemplateParameter)" referredOperation="/1/Collection(T)_Class/filter">
<source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(TemplateParameter)">
<source xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//TemplateSignature"/>
<source xsi:type="ocl.ecore:VariableExp" name="cls" referredVariable="/0/declareType/cls">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Class"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//TemplateableElement/ownedTemplateSignature"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//TemplateSignature/parameter"/>
</source>
<argument xsi:type="ocl.ecore:TypeExp" eType="/50/TypeTemplateParameter">
<referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//TypeTemplateParameter"/>
</argument>
</iterSet>
</body>
<ifExpr xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
<source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Set(TemplateSignature)">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">
<details key="IMPLICIT_SET_CONVERSION" value="true"/>
</eAnnotations>
<part xsi:type="ocl.ecore:CollectionItem">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//TemplateSignature"/>
<item xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//TemplateSignature"/>
<source xsi:type="ocl.ecore:VariableExp" name="cls" referredVariable="/0/declareType/cls">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Class"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//TemplateableElement/ownedTemplateSignature"/>
</item>
</part>
</source>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/notEmpty"/>
</ifExpr>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=")"/>
</else>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=";"/>
<letVariable name="typeName">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<initExpression xsi:type="ocl.ecore:IfExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<condition xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
<source xsi:type="ocl.ecore:VariableExp" name="cls" referredVariable="/0/declareType/cls">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Class"/>
</source>
<argument xsi:type="ocl.ecore:TypeExp" eType="/50/Enumeration">
<referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Enumeration"/>
</argument>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclIsKindOf"/>
</condition>
<thenExpression xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="EcoreExecutorEnumeration">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</thenExpression>
<elseExpression xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="EcoreExecutorType">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</elseExpression>
</initExpression>
</letVariable>
</body>
<parameter name="pPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package"/>
</parameter>
<parameter name="genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</parameter>
<parameter name="cls">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Class"/>
</parameter>
</ownedModuleElement>
<ownedModuleElement xsi:type="mtl:Template" name="declareFragments" visibility="Public">
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="/**&#xA; *&#x9;The fragment descriptors for the local elements of each type and its supertypes.&#xA; */&#xA;public static class Fragments {"/>
<body xsi:type="mtl:ForBlock">
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;"/>
<body xsi:type="mtl:TemplateInvocation" definition="/0/declareFragment">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<argument xsi:type="ocl.ecore:VariableExp" name="pPackage" referredVariable="/0/declareFragments/pPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="genPackage" referredVariable="/0/declareFragments/genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="cls" referredVariable="/0/declareFragments/@body.1/cls">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Class"/>
</argument>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;"/>
<loopVariable name="cls">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Class"/>
</loopVariable>
<iterSet xsi:type="ocl.ecore:IteratorExp" name="sortedBy" eType="/3/OrderedSet(Class)">
<source xsi:type="ocl.ecore:OperationCallExp" eType="/3/Set(Class)" referredOperation="/1/Collection(T)_Class/filter">
<source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/Set(Type)">
<source xsi:type="ocl.ecore:VariableExp" name="pPackage" referredVariable="/0/declareFragments/pPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package/ownedType"/>
</source>
<argument xsi:type="ocl.ecore:TypeExp" eType="/50/Class">
<referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Class"/>
</argument>
</source>
<body xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<source xsi:type="ocl.ecore:VariableExp" name="temp1" referredVariable="/0/declareFragments/@body.1/sortedBy/temp3">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Class"/>
</source>
<referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//NamedElement/name"/>
</body>
<iterator xsi:type="ocl.ecore:Variable" name="temp3">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Class"/>
</iterator>
</iterSet>
<before xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</before>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="}"/>
<parameter name="pPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package"/>
</parameter>
<parameter name="genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</parameter>
</ownedModuleElement>
<ownedModuleElement xsi:type="mtl:Template" name="declareFragment" visibility="Public">
<body xsi:type="mtl:ForBlock">
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="public static final &lt;%ExecutorFragment%> _"/>
<body xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<source xsi:type="ocl.ecore:VariableExp" name="cls" referredVariable="/0/declareFragment/cls">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Class"/>
</source>
<referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//NamedElement/name"/>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="__"/>
<body xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<source xsi:type="ocl.ecore:VariableExp" name="superCls" referredVariable="/0/declareFragment/@body.0/superCls">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
</source>
<referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//NamedElement/name"/>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" = new &lt;%ExecutorFragment%>("/>
<body xsi:type="mtl:QueryInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<definition href="../common/pivotQueries.emtl#/0/getLiteralName.1"/>
<argument xsi:type="ocl.ecore:VariableExp" name="cls" referredVariable="/0/declareFragment/cls">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Class"/>
</argument>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=", "/>
<body xsi:type="mtl:TemplateInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<definition href="../common/qualifiedLiteralTemplates.emtl#/0/emitQualifiedLiteralName.6"/>
<argument xsi:type="ocl.ecore:VariableExp" name="superCls" referredVariable="/0/declareFragment/@body.0/superCls">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="genPackage" referredVariable="/0/declareFragment/genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</argument>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=");&#xA;"/>
<loopVariable name="superCls">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
</loopVariable>
<iterSet xsi:type="ocl.ecore:IteratorExp" name="sortedBy" eType="/3/OrderedSet(Type)">
<source xsi:type="mtl:QueryInvocation" eType="/3/Set(Type)">
<definition href="../common/pivotQueries.emtl#/0/getAllSuperTypes"/>
<argument xsi:type="ocl.ecore:VariableExp" name="cls" referredVariable="/0/declareFragment/cls">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Class"/>
</argument>
</source>
<body xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<source xsi:type="ocl.ecore:VariableExp" name="temp1" referredVariable="/0/declareFragment/@body.0/sortedBy/temp4">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
</source>
<referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//NamedElement/name"/>
</body>
<iterator xsi:type="ocl.ecore:Variable" name="temp4">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
</iterator>
</iterSet>
</body>
<parameter name="pPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package"/>
</parameter>
<parameter name="genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</parameter>
<parameter name="cls">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Class"/>
</parameter>
</ownedModuleElement>
<ownedModuleElement xsi:type="mtl:Template" name="declareOperations" visibility="Public">
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="/**&#xA; *&#x9;The operation descriptors for each operation of each type.&#xA; */&#xA;public static class Operations {"/>
<body xsi:type="mtl:ForBlock">
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;"/>
<body xsi:type="mtl:TemplateInvocation" definition="/0/declareOperations.1">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<argument xsi:type="ocl.ecore:VariableExp" name="pPackage" referredVariable="/0/declareOperations/pPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="genPackage" referredVariable="/0/declareOperations/genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="cls" referredVariable="/0/declareOperations/@body.1/cls">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Class"/>
</argument>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;"/>
<loopVariable name="cls">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Class"/>
</loopVariable>
<iterSet xsi:type="ocl.ecore:IteratorExp" name="sortedBy" eType="/3/OrderedSet(Class)">
<source xsi:type="ocl.ecore:IteratorExp" name="select" eType="/3/Set(Class)">
<source xsi:type="ocl.ecore:OperationCallExp" eType="/3/Set(Class)" referredOperation="/1/Collection(T)_Class/filter">
<source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/Set(Type)">
<source xsi:type="ocl.ecore:VariableExp" name="pPackage" referredVariable="/0/declareOperations/pPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package/ownedType"/>
</source>
<argument xsi:type="ocl.ecore:TypeExp" eType="/50/Class">
<referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Class"/>
</argument>
</source>
<body xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
<source xsi:type="mtl:QueryInvocation" eType="/3/OrderedSet(Operation)">
<definition href="../common/pivotQueries.emtl#/0/getOperations"/>
<argument xsi:type="ocl.ecore:VariableExp" name="temp1" referredVariable="/0/declareOperations/@body.1/sortedBy/select/temp5">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Class"/>
</argument>
</source>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OrderedSet(T)_Class/notEmpty"/>
</body>
<iterator xsi:type="ocl.ecore:Variable" name="temp5">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Class"/>
</iterator>
</source>
<body xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<source xsi:type="ocl.ecore:VariableExp" name="temp2" referredVariable="/0/declareOperations/@body.1/sortedBy/temp6">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Class"/>
</source>
<referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//NamedElement/name"/>
</body>
<iterator xsi:type="ocl.ecore:Variable" name="temp6">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Class"/>
</iterator>
</iterSet>
<before xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</before>
<each xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</each>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="}"/>
<parameter name="pPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package"/>
</parameter>
<parameter name="genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</parameter>
</ownedModuleElement>
<ownedModuleElement xsi:type="mtl:Template" name="declareOperations" visibility="Public">
<body xsi:type="mtl:LetBlock">
<body xsi:type="mtl:LetBlock">
<body xsi:type="mtl:ForBlock">
<body xsi:type="mtl:LetBlock">
<body xsi:type="mtl:TemplateInvocation" definition="/0/declareOperation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<argument xsi:type="ocl.ecore:VariableExp" name="pPackage" referredVariable="/0/declareOperations.1/pPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="genPackage" referredVariable="/0/declareOperations.1/genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="op" referredVariable="/0/declareOperations.1/@body.0/@body.0/@body.0/@body.0/op">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Operation"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="i" referredVariable="/0/declareOperations.1/@body.0/@body.0/@body.0/i">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
</argument>
</body>
<letVariable name="op">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Operation"/>
<initExpression xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Operation"/>
<source xsi:type="ocl.ecore:VariableExp" name="ops" eType="/3/OrderedSet(Operation)" referredVariable="/0/declareOperations.1/@body.0/@body.0/ops"/>
<argument xsi:type="ocl.ecore:VariableExp" name="i" referredVariable="/0/declareOperations.1/@body.0/@body.0/@body.0/i">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
</argument>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OrderedSet(T)_Class/at"/>
</initExpression>
</letVariable>
</body>
<loopVariable name="i">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
</loopVariable>
<iterSet xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Sequence(Integer)" kind="Sequence">
<part xsi:type="ocl.ecore:CollectionRange">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
<first xsi:type="ocl.ecore:IntegerLiteralExp" integerSymbol="1">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
</first>
<last xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
<source xsi:type="ocl.ecore:VariableExp" name="ops" eType="/3/OrderedSet(Operation)" referredVariable="/0/declareOperations.1/@body.0/@body.0/ops"/>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OrderedSet(T)_Class/size"/>
</last>
</part>
</iterSet>
<each xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</each>
</body>
<letVariable name="ops" eType="/3/OrderedSet(Operation)">
<initExpression xsi:type="ocl.ecore:IteratorExp" name="sortedBy" eType="/3/OrderedSet(Operation)">
<source xsi:type="ocl.ecore:VariableExp" name="ops1" eType="/3/OrderedSet(Operation)" referredVariable="/0/declareOperations.1/@body.0/ops1"/>
<body xsi:type="mtl:QueryInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<definition href="../common/pivotQueries.emtl#/0/getSignature"/>
<argument xsi:type="ocl.ecore:VariableExp" name="op2" referredVariable="/0/declareOperations.1/@body.0/@body.0/ops/sortedBy/op2">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Operation"/>
</argument>
</body>
<iterator xsi:type="ocl.ecore:Variable" name="op2">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Operation"/>
</iterator>
</initExpression>
</letVariable>
</body>
<letVariable name="ops1" eType="/3/OrderedSet(Operation)">
<initExpression xsi:type="mtl:QueryInvocation" eType="/3/OrderedSet(Operation)">
<definition href="../common/pivotQueries.emtl#/0/getOperations"/>
<argument xsi:type="ocl.ecore:VariableExp" name="cls" referredVariable="/0/declareOperations.1/cls">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Class"/>
</argument>
</initExpression>
</letVariable>
</body>
<parameter name="pPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package"/>
</parameter>
<parameter name="genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</parameter>
<parameter name="cls">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Class"/>
</parameter>
</ownedModuleElement>
<ownedModuleElement xsi:type="mtl:Template" name="declareOperation" visibility="Public">
<body xsi:type="mtl:IfBlock">
<body xsi:type="mtl:ForBlock">
<body xsi:type="mtl:LetBlock">
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="public static final &lt;%ExecutorTypeParameter%> _"/>
<body xsi:type="mtl:QueryInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<definition href="../common/pivotQueries.emtl#/0/getLiteralName.3"/>
<argument xsi:type="ocl.ecore:VariableExp" name="op" referredVariable="/0/declareOperation/op">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Operation"/>
</argument>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="_"/>
<body xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<source xsi:type="ocl.ecore:VariableExp" name="parameteredElement" referredVariable="/0/declareOperation/@body.0/@body.0/@body.0/parameteredElement">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
</source>
<referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//NamedElement/name"/>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" = new &lt;%ExecutorTypeParameter%>(LIBRARY, &quot;"/>
<body xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<source xsi:type="ocl.ecore:VariableExp" name="parameteredElement" referredVariable="/0/declareOperation/@body.0/@body.0/@body.0/parameteredElement">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
</source>
<referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//NamedElement/name"/>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&quot;);&#xA;"/>
<letVariable name="parameteredElement">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
<initExpression xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
<source xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ParameterableElement"/>
<source xsi:type="ocl.ecore:VariableExp" name="parameter" referredVariable="/0/declareOperation/@body.0/@body.0/parameter">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//TypeTemplateParameter"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//TemplateParameter/parameteredElement"/>
</source>
<argument xsi:type="ocl.ecore:TypeExp" eType="/50/Type">
<referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
</argument>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclAsType"/>
</initExpression>
</letVariable>
</body>
<loopVariable name="parameter">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//TypeTemplateParameter"/>
</loopVariable>
<iterSet xsi:type="ocl.ecore:OperationCallExp" eType="/3/OrderedSet(TypeTemplateParameter)" referredOperation="/1/Collection(T)_Class/filter">
<source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(TemplateParameter)">
<source xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//TemplateSignature"/>
<source xsi:type="ocl.ecore:VariableExp" name="op" referredVariable="/0/declareOperation/op">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Operation"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//TemplateableElement/ownedTemplateSignature"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//TemplateSignature/parameter"/>
</source>
<argument xsi:type="ocl.ecore:TypeExp" eType="/50/TypeTemplateParameter">
<referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//TypeTemplateParameter"/>
</argument>
</iterSet>
</body>
<ifExpr xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
<source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Set(TemplateSignature)">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">
<details key="IMPLICIT_SET_CONVERSION" value="true"/>
</eAnnotations>
<part xsi:type="ocl.ecore:CollectionItem">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//TemplateSignature"/>
<item xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//TemplateSignature"/>
<source xsi:type="ocl.ecore:VariableExp" name="op" referredVariable="/0/declareOperation/op">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Operation"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//TemplateableElement/ownedTemplateSignature"/>
</item>
</part>
</source>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/notEmpty"/>
</ifExpr>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="public static final &lt;%ExecutorOperation%> "/>
<body xsi:type="mtl:QueryInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<definition href="../common/pivotQueries.emtl#/0/getLiteralName.3"/>
<argument xsi:type="ocl.ecore:VariableExp" name="op" referredVariable="/0/declareOperation/op">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Operation"/>
</argument>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" = new &lt;%ExecutorOperation%>(&quot;"/>
<body xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<source xsi:type="ocl.ecore:VariableExp" name="op" referredVariable="/0/declareOperation/op">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Operation"/>
</source>
<referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//NamedElement/name"/>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&quot;,&#xA;&#x9;"/>
<body xsi:type="mtl:QueryInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<definition href="../common/pivotQueries.emtl#/0/getLiteralName.1"/>
<argument xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
<source xsi:type="ocl.ecore:VariableExp" name="op" referredVariable="/0/declareOperation/op">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Operation"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Operation/owningType"/>
</argument>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=", "/>
<body xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
<source xsi:type="ocl.ecore:VariableExp" name="opIndex" referredVariable="/0/declareOperation/opIndex">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
</source>
<argument xsi:type="ocl.ecore:IntegerLiteralExp" integerSymbol="1">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
</argument>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer_Class/-"/>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=", "/>
<body xsi:type="mtl:QueryInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<definition href="../common/genPackageQueries.emtl#/0/getImplementationName.1"/>
<argument xsi:type="ocl.ecore:VariableExp" name="genPackage" referredVariable="/0/declareOperation/genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="op" referredVariable="/0/declareOperation/op">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Operation"/>
</argument>
</body>
<body xsi:type="mtl:TemplateInvocation" definition="/0/declareParameterTypes">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<argument xsi:type="ocl.ecore:VariableExp" name="genPackage" referredVariable="/0/declareOperation/genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</argument>
<argument xsi:type="ocl.ecore:OperationCallExp" eType="/3/OrderedSet(Type)">
<source xsi:type="ocl.ecore:IteratorExp" name="collect" eType="/3/Sequence(Type)">
<source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(Parameter)">
<source xsi:type="ocl.ecore:VariableExp" name="op" referredVariable="/0/declareOperation/op">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Operation"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Operation/ownedParameter"/>
</source>
<body xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
<source xsi:type="ocl.ecore:VariableExp" name="temp1" referredVariable="/0/declareOperation/@body.11/@argument.1/collect/temp7">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Parameter"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//TypedElement/type"/>
</body>
<iterator xsi:type="ocl.ecore:Variable" name="temp7">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Parameter"/>
</iterator>
</source>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Sequence(T)_Class/asOrderedSet"/>
</argument>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=");"/>
<parameter name="pPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package"/>
</parameter>
<parameter name="genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</parameter>
<parameter name="op">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Operation"/>
</parameter>
<parameter name="opIndex">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
</parameter>
</ownedModuleElement>
<ownedModuleElement xsi:type="mtl:Template" name="declareParameterTypes" visibility="Public">
<body xsi:type="mtl:ForBlock">
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=",&#xA;&#x9;"/>
<body xsi:type="mtl:TemplateInvocation" definition="/0/declareParameterType">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<argument xsi:type="ocl.ecore:VariableExp" name="type" referredVariable="/0/declareParameterTypes/@body.0/type">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="genPackage" referredVariable="/0/declareParameterTypes/genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</argument>
</body>
<loopVariable name="type">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
</loopVariable>
<iterSet xsi:type="ocl.ecore:VariableExp" name="types" eType="/3/OrderedSet(Type)" referredVariable="/0/declareParameterTypes/types"/>
</body>
<parameter name="genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</parameter>
<parameter name="types" eType="/3/OrderedSet(Type)"/>
</ownedModuleElement>
<ownedModuleElement xsi:type="mtl:Template" name="declareParameterType" visibility="Public">
<body xsi:type="mtl:LetBlock">
<body xsi:type="mtl:LetBlock">
<body xsi:type="mtl:IfBlock">
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="(&lt;%DomainType%>)null/*"/>
<body xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<source xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package"/>
<source xsi:type="ocl.ecore:VariableExp" name="containerType" referredVariable="/0/declareParameterType/@body.0/containerType">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type/package"/>
</source>
<referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//NamedElement/name"/>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="*/"/>
<ifExpr xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
<source xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
<source xsi:type="ocl.ecore:VariableExp" name="prefix" referredVariable="/0/declareParameterType/@body.0/@body.0/prefix">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</source>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String_Class/size"/>
</source>
<argument xsi:type="ocl.ecore:IntegerLiteralExp" integerSymbol="0">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
</argument>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer_Class/%3C="/>
</ifExpr>
<else>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&lt;%"/>
<body xsi:type="ocl.ecore:VariableExp" name="prefix" referredVariable="/0/declareParameterType/@body.0/@body.0/prefix">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="%>.Types._"/>
<body xsi:type="mtl:QueryInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<definition href="../common/nameQueries.emtl#/0/encodeName"/>
<argument xsi:type="ocl.ecore:VariableExp" name="containerType" referredVariable="/0/declareParameterType/@body.0/containerType">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
</argument>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="_"/>
<body xsi:type="mtl:QueryInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<definition href="../common/nameQueries.emtl#/0/encodeName"/>
<argument xsi:type="ocl.ecore:VariableExp" name="type" referredVariable="/0/declareParameterType/type">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
</argument>
</body>
</else>
</body>
<letVariable name="prefix">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<initExpression xsi:type="mtl:QueryInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<definition href="../common/genPackageQueries.emtl#/0/getQualifiedTablesClassName"/>
<argument xsi:type="ocl.ecore:VariableExp" name="containerType" referredVariable="/0/declareParameterType/@body.0/containerType">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="genPackage" referredVariable="/0/declareParameterType/genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</argument>
</initExpression>
</letVariable>
</body>
<letVariable name="containerType">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
<initExpression xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
<source xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//TemplateableElement"/>
<source xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//TemplateSignature"/>
<source xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//TemplateParameter"/>
<source xsi:type="ocl.ecore:VariableExp" name="type" referredVariable="/0/declareParameterType/type">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ParameterableElement/owningTemplateParameter"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//TemplateParameter/signature"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//TemplateSignature/template"/>
</source>
<argument xsi:type="ocl.ecore:TypeExp" eType="/50/Type">
<referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
</argument>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclAsType"/>
</initExpression>
</letVariable>
</body>
<parameter name="type">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
</parameter>
<parameter name="genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</parameter>
<guard xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
<source xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//TemplateableElement"/>
<source xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//TemplateSignature"/>
<source xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//TemplateParameter"/>
<source xsi:type="ocl.ecore:VariableExp" name="type" referredVariable="/0/declareParameterType/type">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ParameterableElement/owningTemplateParameter"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//TemplateParameter/signature"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//TemplateSignature/template"/>
</source>
<argument xsi:type="ocl.ecore:TypeExp" eType="/50/Type">
<referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
</argument>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclIsKindOf"/>
</guard>
</ownedModuleElement>
<ownedModuleElement xsi:type="mtl:Template" name="declareParameterType" visibility="Public">
<body xsi:type="mtl:LetBlock">
<body xsi:type="mtl:LetBlock">
<body xsi:type="mtl:IfBlock">
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="(&lt;%DomainType%>)null/*"/>
<body xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<source xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package"/>
<source xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
<source xsi:type="ocl.ecore:VariableExp" name="containerOperation" referredVariable="/0/declareParameterType.1/@body.0/containerOperation">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Operation"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Operation/owningType"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type/package"/>
</source>
<referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//NamedElement/name"/>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="*/"/>
<ifExpr xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
<source xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
<source xsi:type="ocl.ecore:VariableExp" name="prefix" referredVariable="/0/declareParameterType.1/@body.0/@body.0/prefix">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</source>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String_Class/size"/>
</source>
<argument xsi:type="ocl.ecore:IntegerLiteralExp" integerSymbol="0">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
</argument>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer_Class/%3C="/>
</ifExpr>
<else>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&lt;%"/>
<body xsi:type="ocl.ecore:VariableExp" name="prefix" referredVariable="/0/declareParameterType.1/@body.0/@body.0/prefix">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="%>.Operations._"/>
<body xsi:type="mtl:QueryInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<definition href="../common/pivotQueries.emtl#/0/getLiteralName.3"/>
<argument xsi:type="ocl.ecore:VariableExp" name="containerOperation" referredVariable="/0/declareParameterType.1/@body.0/containerOperation">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Operation"/>
</argument>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="_"/>
<body xsi:type="mtl:QueryInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<definition href="../common/nameQueries.emtl#/0/encodeName"/>
<argument xsi:type="ocl.ecore:VariableExp" name="type" referredVariable="/0/declareParameterType.1/type">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
</argument>
</body>
</else>
</body>
<letVariable name="prefix">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<initExpression xsi:type="mtl:QueryInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<definition href="../common/genPackageQueries.emtl#/0/getQualifiedTablesClassName"/>
<argument xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
<source xsi:type="ocl.ecore:VariableExp" name="containerOperation" referredVariable="/0/declareParameterType.1/@body.0/containerOperation">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Operation"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Operation/owningType"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="genPackage" referredVariable="/0/declareParameterType.1/genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</argument>
</initExpression>
</letVariable>
</body>
<letVariable name="containerOperation">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Operation"/>
<initExpression xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Operation"/>
<source xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//TemplateableElement"/>
<source xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//TemplateSignature"/>
<source xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//TemplateParameter"/>
<source xsi:type="ocl.ecore:VariableExp" name="type" referredVariable="/0/declareParameterType.1/type">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ParameterableElement/owningTemplateParameter"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//TemplateParameter/signature"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//TemplateSignature/template"/>
</source>
<argument xsi:type="ocl.ecore:TypeExp" eType="/50/Operation">
<referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Operation"/>
</argument>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclAsType"/>
</initExpression>
</letVariable>
</body>
<parameter name="type">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
</parameter>
<parameter name="genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</parameter>
<guard xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
<source xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//TemplateableElement"/>
<source xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//TemplateSignature"/>
<source xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//TemplateParameter"/>
<source xsi:type="ocl.ecore:VariableExp" name="type" referredVariable="/0/declareParameterType.1/type">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ParameterableElement/owningTemplateParameter"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//TemplateParameter/signature"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//TemplateSignature/template"/>
</source>
<argument xsi:type="ocl.ecore:TypeExp" eType="/50/Operation">
<referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Operation"/>
</argument>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclIsKindOf"/>
</guard>
</ownedModuleElement>
<ownedModuleElement xsi:type="mtl:Template" name="declareParameterType" visibility="Public">
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="new &lt;%ExecutorSpecializedType%>(LIBRARY, &quot;"/>
<body xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<source xsi:type="ocl.ecore:VariableExp" name="type" referredVariable="/0/declareParameterType.2/type">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ClassifierType"/>
</source>
<referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//NamedElement/name"/>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&quot;, "/>
<body xsi:type="mtl:TemplateInvocation" definition="/0/declareParameterType">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<argument xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
<source xsi:type="ocl.ecore:VariableExp" name="type" referredVariable="/0/declareParameterType.2/type">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ClassifierType"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ClassifierType/instanceType"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="genPackage" referredVariable="/0/declareParameterType.2/genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</argument>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=")"/>
<parameter name="type">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ClassifierType"/>
</parameter>
<parameter name="genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</parameter>
</ownedModuleElement>
<ownedModuleElement xsi:type="mtl:Template" name="declareParameterType" visibility="Public">
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="new &lt;%ExecutorSpecializedType%>(LIBRARY, &quot;"/>
<body xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<source xsi:type="ocl.ecore:VariableExp" name="type" referredVariable="/0/declareParameterType.3/type">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//CollectionType"/>
</source>
<referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//NamedElement/name"/>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&quot;, "/>
<body xsi:type="mtl:TemplateInvocation" definition="/0/declareParameterType">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<argument xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
<source xsi:type="ocl.ecore:VariableExp" name="type" referredVariable="/0/declareParameterType.3/type">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//CollectionType"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//CollectionType/elementType"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="genPackage" referredVariable="/0/declareParameterType.3/genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</argument>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=")"/>
<parameter name="type">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//CollectionType"/>
</parameter>
<parameter name="genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</parameter>
</ownedModuleElement>
<ownedModuleElement xsi:type="mtl:Template" name="declareParameterType" visibility="Public">
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="new &lt;%ExecutorLambdaType%>(LIBRARY, &quot;"/>
<body xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<source xsi:type="ocl.ecore:VariableExp" name="type" referredVariable="/0/declareParameterType.4/type">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//LambdaType"/>
</source>
<referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//NamedElement/name"/>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&quot;, "/>
<body xsi:type="mtl:TemplateInvocation" definition="/0/declareParameterType">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<argument xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
<source xsi:type="ocl.ecore:VariableExp" name="type" referredVariable="/0/declareParameterType.4/type">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//LambdaType"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//LambdaType/contextType"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="genPackage" referredVariable="/0/declareParameterType.4/genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</argument>
</body>
<body xsi:type="mtl:TemplateInvocation" definition="/0/declareParameterTypes">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<argument xsi:type="ocl.ecore:VariableExp" name="genPackage" referredVariable="/0/declareParameterType.4/genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</argument>
<argument xsi:type="ocl.ecore:OperationCallExp" eType="/3/OrderedSet(Type)">
<source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/Set(Type)">
<source xsi:type="ocl.ecore:VariableExp" name="type" referredVariable="/0/declareParameterType.4/type">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//LambdaType"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//LambdaType/parameterType"/>
</source>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/asOrderedSet"/>
</argument>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=")"/>
<parameter name="type">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//LambdaType"/>
</parameter>
<parameter name="genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</parameter>
</ownedModuleElement>
<ownedModuleElement xsi:type="mtl:Template" name="declareParameterType" visibility="Public">
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="new &lt;%ExecutorTupleType%>(LIBRARY, &quot;"/>
<body xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<source xsi:type="ocl.ecore:VariableExp" name="type" referredVariable="/0/declareParameterType.5/type">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//TupleType"/>
</source>
<referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//NamedElement/name"/>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&quot;"/>
<body xsi:type="mtl:TemplateInvocation" definition="/0/declareTupleParts">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<argument xsi:type="ocl.ecore:VariableExp" name="genPackage" referredVariable="/0/declareParameterType.5/genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</argument>
<argument xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(Property)">
<source xsi:type="ocl.ecore:VariableExp" name="type" referredVariable="/0/declareParameterType.5/type">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//TupleType"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type/ownedAttribute"/>
</argument>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=")"/>
<parameter name="type">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//TupleType"/>
</parameter>
<parameter name="genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</parameter>
</ownedModuleElement>
<ownedModuleElement xsi:type="mtl:Template" name="declareParameterType" visibility="Public">
<body xsi:type="mtl:TemplateInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<definition href="../common/qualifiedLiteralTemplates.emtl#/0/emitQualifiedLiteralName.6"/>
<argument xsi:type="ocl.ecore:VariableExp" name="type" referredVariable="/0/declareParameterType.6/type">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="genPackage" referredVariable="/0/declareParameterType.6/genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</argument>
</body>
<parameter name="type">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
</parameter>
<parameter name="genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</parameter>
<guard xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
<source xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Set(TemplateParameter)">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL/Annotations">
<details key="IMPLICIT_SET_CONVERSION" value="true"/>
</eAnnotations>
<part xsi:type="ocl.ecore:CollectionItem">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//TemplateParameter"/>
<item xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//TemplateParameter"/>
<source xsi:type="ocl.ecore:VariableExp" name="type" referredVariable="/0/declareParameterType.6/type">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ParameterableElement/owningTemplateParameter"/>
</item>
</part>
</source>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Set(T)_Class/isEmpty"/>
</guard>
</ownedModuleElement>
<ownedModuleElement xsi:type="mtl:Template" name="declareTupleParts" visibility="Public">
<body xsi:type="mtl:ForBlock">
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=",&#xA;&#x9;"/>
<body xsi:type="mtl:TemplateInvocation" definition="/0/declareParameterType">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<argument xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
<source xsi:type="ocl.ecore:VariableExp" name="part" referredVariable="/0/declareTupleParts/@body.0/part">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Property"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//TypedElement/type"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="genPackage" referredVariable="/0/declareTupleParts/genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</argument>
</body>
<loopVariable name="part">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Property"/>
</loopVariable>
<iterSet xsi:type="ocl.ecore:VariableExp" name="parts" eType="/3/OrderedSet(Property)" referredVariable="/0/declareTupleParts/parts"/>
</body>
<parameter name="genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</parameter>
<parameter name="parts" eType="/3/OrderedSet(Property)"/>
</ownedModuleElement>
<ownedModuleElement xsi:type="mtl:Template" name="declareProperties" visibility="Public">
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="/**&#xA; *&#x9;The property descriptors for each property of each type.&#xA; */&#xA;public static class Properties {"/>
<body xsi:type="mtl:ForBlock">
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;"/>
<body xsi:type="mtl:TemplateInvocation" definition="/0/declareProperties.1">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<argument xsi:type="ocl.ecore:VariableExp" name="pPackage" referredVariable="/0/declareProperties/pPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="genPackage" referredVariable="/0/declareProperties/genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="cls" referredVariable="/0/declareProperties/@body.1/cls">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Class"/>
</argument>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;"/>
<loopVariable name="cls">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Class"/>
</loopVariable>
<iterSet xsi:type="ocl.ecore:IteratorExp" name="sortedBy" eType="/3/OrderedSet(Class)">
<source xsi:type="ocl.ecore:IteratorExp" name="select" eType="/3/Set(Class)">
<source xsi:type="ocl.ecore:OperationCallExp" eType="/3/Set(Class)" referredOperation="/1/Collection(T)_Class/filter">
<source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/Set(Type)">
<source xsi:type="ocl.ecore:VariableExp" name="pPackage" referredVariable="/0/declareProperties/pPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package/ownedType"/>
</source>
<argument xsi:type="ocl.ecore:TypeExp" eType="/50/Class">
<referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Class"/>
</argument>
</source>
<body xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
<source xsi:type="mtl:QueryInvocation" eType="/3/OrderedSet(Property)">
<definition href="../common/pivotQueries.emtl#/0/getProperties"/>
<argument xsi:type="ocl.ecore:VariableExp" name="temp1" referredVariable="/0/declareProperties/@body.1/sortedBy/select/temp8">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Class"/>
</argument>
</source>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OrderedSet(T)_Class/notEmpty"/>
</body>
<iterator xsi:type="ocl.ecore:Variable" name="temp8">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Class"/>
</iterator>
</source>
<body xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<source xsi:type="ocl.ecore:VariableExp" name="temp2" referredVariable="/0/declareProperties/@body.1/sortedBy/temp9">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Class"/>
</source>
<referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//NamedElement/name"/>
</body>
<iterator xsi:type="ocl.ecore:Variable" name="temp9">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Class"/>
</iterator>
</iterSet>
<before xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</before>
<each xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</each>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="}"/>
<parameter name="pPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package"/>
</parameter>
<parameter name="genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</parameter>
</ownedModuleElement>
<ownedModuleElement xsi:type="mtl:Template" name="declareProperties" visibility="Public">
<body xsi:type="mtl:LetBlock">
<body xsi:type="mtl:LetBlock">
<body xsi:type="mtl:ForBlock">
<body xsi:type="mtl:LetBlock">
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="public static final &lt;%ExecutorProperty%> "/>
<body xsi:type="mtl:QueryInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<definition href="../common/pivotQueries.emtl#/0/getLiteralName.4"/>
<argument xsi:type="ocl.ecore:VariableExp" name="prop" referredVariable="/0/declareProperties.1/@body.0/@body.0/@body.0/@body.0/prop">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Property"/>
</argument>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" = new &lt;%ExecutorProperty%>(&quot;"/>
<body xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<source xsi:type="ocl.ecore:VariableExp" name="prop" referredVariable="/0/declareProperties.1/@body.0/@body.0/@body.0/@body.0/prop">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Property"/>
</source>
<referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//NamedElement/name"/>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&quot;, "/>
<body xsi:type="mtl:QueryInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<definition href="../common/pivotQueries.emtl#/0/getLiteralName.1"/>
<argument xsi:type="ocl.ecore:VariableExp" name="cls" referredVariable="/0/declareProperties.1/cls">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Class"/>
</argument>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=", "/>
<body xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
<source xsi:type="ocl.ecore:VariableExp" name="i" referredVariable="/0/declareProperties.1/@body.0/@body.0/@body.0/i">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
</source>
<argument xsi:type="ocl.ecore:IntegerLiteralExp" integerSymbol="1">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
</argument>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer_Class/-"/>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=", "/>
<body xsi:type="mtl:QueryInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<definition href="../common/genPackageQueries.emtl#/0/getImplementationName.2"/>
<argument xsi:type="ocl.ecore:VariableExp" name="genPackage" referredVariable="/0/declareProperties.1/genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="prop" referredVariable="/0/declareProperties.1/@body.0/@body.0/@body.0/@body.0/prop">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Property"/>
</argument>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=");"/>
<letVariable name="prop">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Property"/>
<initExpression xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Property"/>
<source xsi:type="ocl.ecore:VariableExp" name="props" eType="/3/OrderedSet(Property)" referredVariable="/0/declareProperties.1/@body.0/@body.0/props"/>
<argument xsi:type="ocl.ecore:VariableExp" name="i" referredVariable="/0/declareProperties.1/@body.0/@body.0/@body.0/i">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
</argument>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OrderedSet(T)_Class/at"/>
</initExpression>
</letVariable>
</body>
<loopVariable name="i">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
</loopVariable>
<iterSet xsi:type="ocl.ecore:CollectionLiteralExp" eType="/3/Sequence(Integer)" kind="Sequence">
<part xsi:type="ocl.ecore:CollectionRange">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
<first xsi:type="ocl.ecore:IntegerLiteralExp" integerSymbol="1">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
</first>
<last xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
<source xsi:type="ocl.ecore:VariableExp" name="props" eType="/3/OrderedSet(Property)" referredVariable="/0/declareProperties.1/@body.0/@body.0/props"/>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OrderedSet(T)_Class/size"/>
</last>
</part>
</iterSet>
<each xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</each>
</body>
<letVariable name="props" eType="/3/OrderedSet(Property)">
<initExpression xsi:type="ocl.ecore:IteratorExp" name="sortedBy" eType="/3/OrderedSet(Property)">
<source xsi:type="ocl.ecore:IteratorExp" name="select" eType="/3/OrderedSet(Property)">
<source xsi:type="ocl.ecore:VariableExp" name="rawProps" eType="/3/OrderedSet(Property)" referredVariable="/0/declareProperties.1/@body.0/rawProps"/>
<body xsi:type="mtl:QueryInvocation">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
<definition href="../common/genPackageQueries.emtl#/0/isProperty"/>
<argument xsi:type="ocl.ecore:VariableExp" name="genPackage" referredVariable="/0/declareProperties.1/genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="prop" referredVariable="/0/declareProperties.1/@body.0/@body.0/props/sortedBy/select/prop">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Property"/>
</argument>
</body>
<iterator xsi:type="ocl.ecore:Variable" name="prop">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Property"/>
</iterator>
</source>
<body xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<source xsi:type="ocl.ecore:VariableExp" name="temp1" referredVariable="/0/declareProperties.1/@body.0/@body.0/props/sortedBy/temp10">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Property"/>
</source>
<referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//NamedElement/name"/>
</body>
<iterator xsi:type="ocl.ecore:Variable" name="temp10">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Property"/>
</iterator>
</initExpression>
</letVariable>
</body>
<letVariable name="rawProps" eType="/3/OrderedSet(Property)">
<initExpression xsi:type="mtl:QueryInvocation" eType="/3/OrderedSet(Property)">
<definition href="../common/pivotQueries.emtl#/0/getProperties"/>
<argument xsi:type="ocl.ecore:VariableExp" name="cls" referredVariable="/0/declareProperties.1/cls">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Class"/>
</argument>
</initExpression>
</letVariable>
</body>
<parameter name="pPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package"/>
</parameter>
<parameter name="genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</parameter>
<parameter name="cls">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Class"/>
</parameter>
</ownedModuleElement>
<ownedModuleElement xsi:type="mtl:Template" name="declareConstraints" visibility="Public">
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="/**&#xA; *&#x9;The operation descriptors for each constraint.&#xA; */&#xA;public static class Constraints {"/>
<body xsi:type="mtl:ForBlock">
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;"/>
<body xsi:type="mtl:TemplateInvocation" definition="/0/declareConstraints.1">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<argument xsi:type="ocl.ecore:VariableExp" name="pPackage" referredVariable="/0/declareConstraints/pPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="genPackage" referredVariable="/0/declareConstraints/genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="cls" referredVariable="/0/declareConstraints/@body.1/cls">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Class"/>
</argument>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;"/>
<loopVariable name="cls">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Class"/>
</loopVariable>
<iterSet xsi:type="ocl.ecore:IteratorExp" name="sortedBy" eType="/3/OrderedSet(Class)">
<source xsi:type="ocl.ecore:IteratorExp" name="select" eType="/3/Set(Class)">
<source xsi:type="ocl.ecore:OperationCallExp" eType="/3/Set(Class)" referredOperation="/1/Collection(T)_Class/filter">
<source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/Set(Type)">
<source xsi:type="ocl.ecore:VariableExp" name="pPackage" referredVariable="/0/declareConstraints/pPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package/ownedType"/>
</source>
<argument xsi:type="ocl.ecore:TypeExp" eType="/50/Class">
<referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Class"/>
</argument>
</source>
<body xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
<source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(Constraint)">
<source xsi:type="ocl.ecore:VariableExp" name="temp1" referredVariable="/0/declareConstraints/@body.1/sortedBy/select/temp11">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Class"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//NamedElement/ownedRule"/>
</source>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OrderedSet(T)_Class/notEmpty"/>
</body>
<iterator xsi:type="ocl.ecore:Variable" name="temp11">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Class"/>
</iterator>
</source>
<body xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<source xsi:type="ocl.ecore:VariableExp" name="temp2" referredVariable="/0/declareConstraints/@body.1/sortedBy/temp12">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Class"/>
</source>
<referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//NamedElement/name"/>
</body>
<iterator xsi:type="ocl.ecore:Variable" name="temp12">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Class"/>
</iterator>
</iterSet>
<before xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</before>
<each xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</each>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="}"