blob: 328f9e9759cb958bc90b72fddf20e9a5fd05a7ac [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::model2bodies" nsURI="org::eclipse::ocl::examples::codegen::tables::model2bodies" startHeaderPosition="445" endHeaderPosition="596">
<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/constantTemplates.emtl#/0"/>
<imports href="../common/elementQueries.emtl#/0"/>
<imports href="../common/emitQueries.emtl#/0"/>
<imports href="../common/expressionTemplates.emtl#/0"/>
<imports href="../common/genPackageQueries.emtl#/0"/>
<imports href="../common/nameQueries.emtl#/0"/>
<imports href="../common/pivotQueries.emtl#/0"/>
<imports href="../common/symbolTemplates.emtl#/0"/>
<ownedModuleElement xsi:type="mtl:Template" name="generateBodies" visibility="Public" main="true">
<body xsi:type="mtl:ForBlock">
<body xsi:type="mtl:LetBlock">
<body xsi:type="mtl:ForBlock">
<body xsi:type="mtl:TemplateInvocation" definition="/0/generateType">
<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/generateBodies/@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/generateBodies/@body.0/@body.0/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="pType" referredVariable="/0/generateBodies/@body.0/@body.0/@body.0/pType">
<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="&#xA;"/>
<loopVariable name="pType">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
</loopVariable>
<iterSet xsi:type="ocl.ecore:IteratorExp" name="select" eType="/3/Set(Type)">
<source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/Set(Type)">
<source xsi:type="ocl.ecore:VariableExp" name="pPackage" referredVariable="/0/generateBodies/@body.0/@body.0/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: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: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/generateBodies/@body.0/@body.0/@body.0/select/temp1">
<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#//NamedElement/ownedRule"/>
</source>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OrderedSet(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:IteratorExp" name="collect" eType="/3/Sequence(Constraint)">
<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/generateBodies/@body.0/@body.0/@body.0/select/temp1">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
</argument>
</source>
<body xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(Constraint)">
<source xsi:type="ocl.ecore:VariableExp" name="temp2" referredVariable="/0/generateBodies/@body.0/@body.0/@body.0/select/@body/@source/@argument.0/collect/temp2">
<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#//NamedElement/ownedRule"/>
</body>
<iterator xsi:type="ocl.ecore:Variable" name="temp2">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Operation"/>
</iterator>
</source>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Sequence(T)_Class/notEmpty"/>
</argument>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/or"/>
</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:IteratorExp" name="collect" eType="/3/Sequence(Constraint)">
<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/generateBodies/@body.0/@body.0/@body.0/select/temp1">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
</argument>
</source>
<body xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(Constraint)">
<source xsi:type="ocl.ecore:VariableExp" name="temp3" referredVariable="/0/generateBodies/@body.0/@body.0/@body.0/select/@body/@argument.0/collect/temp3">
<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#//NamedElement/ownedRule"/>
</body>
<iterator xsi:type="ocl.ecore:Variable" name="temp3">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Property"/>
</iterator>
</source>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Sequence(T)_Class/notEmpty"/>
</argument>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/or"/>
</body>
<iterator xsi:type="ocl.ecore:Variable" name="temp1">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
</iterator>
</iterSet>
</body>
<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/generateBodies/@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/generateBodies/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="generateType" 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/generateType/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/generateType/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/getQualifiedBodiesPackageName"/>
<argument xsi:type="ocl.ecore:VariableExp" name="genPackage" referredVariable="/0/generateType/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="/29">
<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="/29">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</argument>
</argument>
<argument xsi:type="mtl:TemplateInvocation" definition="/0/generateTypeClass">
<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/generateType/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/generateType/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="pType" referredVariable="/0/generateType/pType">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
</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: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/generateType/@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/generateType/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="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/getBodiesPackageName"/>
<argument xsi:type="ocl.ecore:VariableExp" name="genPackage" referredVariable="/0/generateType/genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</argument>
</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="className" referredVariable="/0/generateType/@body.0/@body.0/@body.0/className">
<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="className">
<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/+">
<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="pType" referredVariable="/0/generateType/pType">
<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"/>
</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/genPackageQueries.emtl#/0/getBodiesClassSuffix"/>
<argument xsi:type="ocl.ecore:VariableExp" name="genPackage" referredVariable="/0/generateType/genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</argument>
</argument>
</initExpression>
</letVariable>
</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/generateType/@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/generateType/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/generateType/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/generateType/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>
<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>
<parameter name="pType">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
</parameter>
</ownedModuleElement>
<ownedModuleElement xsi:type="mtl:Template" name="generateTypeClass" visibility="Public">
<body xsi:type="mtl:LetBlock">
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="/**&#xA; * "/>
<body xsi:type="ocl.ecore:VariableExp" name="className" referredVariable="/0/generateTypeClass/@body.0/className.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 Java implementation bodies of OCL-defined "/>
<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="pType" referredVariable="/0/generateTypeClass/pType">
<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=" operations and properties.&#xA; */&#xA;@SuppressWarnings(&quot;nls&quot;)&#xA;public class "/>
<body xsi:type="ocl.ecore:VariableExp" name="className" referredVariable="/0/generateTypeClass/@body.0/className.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;"/>
<body xsi:type="mtl:ForBlock">
<body xsi:type="mtl:LetBlock">
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;"/>
<body xsi:type="mtl:TemplateInvocation" definition="/0/generateInvariant">
<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="expInOcl" referredVariable="/0/generateTypeClass/@body.0/@body.7/@body.0/expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="genPackage" referredVariable="/0/generateTypeClass/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/generateTypeClass/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="pType" referredVariable="/0/generateTypeClass/pType">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="pConstraint" referredVariable="/0/generateTypeClass/@body.0/@body.7/pConstraint">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Constraint"/>
</argument>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;"/>
<letVariable name="expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
<initExpression xsi:type="mtl:QueryInvocation">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
<definition href="../common/elementQueries.emtl#/0/getExpressionInOcl"/>
<argument xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ValueSpecification"/>
<source xsi:type="ocl.ecore:VariableExp" name="pConstraint" referredVariable="/0/generateTypeClass/@body.0/@body.7/pConstraint">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Constraint"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Constraint/specification"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="pType" referredVariable="/0/generateTypeClass/pType">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
</argument>
</initExpression>
</letVariable>
</body>
<loopVariable name="pConstraint">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Constraint"/>
</loopVariable>
<iterSet xsi:type="ocl.ecore:IteratorExp" name="sortedBy" eType="/3/OrderedSet(Constraint)">
<source xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(Constraint)">
<source xsi:type="ocl.ecore:VariableExp" name="pType" referredVariable="/0/generateTypeClass/pType">
<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#//NamedElement/ownedRule"/>
</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/generateTypeClass/@body.0/@body.7/sortedBy/temp4">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Constraint"/>
</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#//Constraint"/>
</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="mtl:IfBlock">
<body xsi:type="mtl:ForBlock">
<body xsi:type="mtl:ForBlock">
<body xsi:type="mtl:LetBlock">
<body xsi:type="mtl:IfBlock">
<body xsi:type="mtl:IfBlock">
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;public static "/>
<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#//Type"/>
<source xsi:type="ocl.ecore:VariableExp" name="pOperation" referredVariable="/0/generateTypeClass/@body.0/@body.8/@body.0/pOperation">
<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#//TypedElement/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=" "/>
<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="pOperation" referredVariable="/0/generateTypeClass/@body.0/@body.8/@body.0/pOperation">
<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="("/>
<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="pType" referredVariable="/0/generateTypeClass/pType">
<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=" self"/>
<body xsi:type="mtl:ForBlock">
<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:PropertyCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
<source xsi:type="ocl.ecore:VariableExp" name="parameter" referredVariable="/0/generateTypeClass/@body.0/@body.8/@body.0/@body.0/@body.0/@body.0/@body.0/@body.7/parameter">
<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"/>
</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="parameter" referredVariable="/0/generateTypeClass/@body.0/@body.8/@body.0/@body.0/@body.0/@body.0/@body.0/@body.7/parameter">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Parameter"/>
</source>
<referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//NamedElement/name"/>
</body>
<loopVariable name="parameter">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Parameter"/>
</loopVariable>
<iterSet xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(Parameter)">
<source xsi:type="ocl.ecore:VariableExp" name="pOperation" referredVariable="/0/generateTypeClass/@body.0/@body.8/@body.0/pOperation">
<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"/>
</iterSet>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=") {&#xA;&#x9;&#x9;final &lt;%ExecutorManager%> evaluator = new &lt;%EcoreExecutorManager%>(this, null, &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/getQualifiedTablesClassName"/>
<argument xsi:type="ocl.ecore:VariableExp" name="pType" referredVariable="/0/generateTypeClass/pType">
<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/generateTypeClass/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);&#xA;&#x9;&#x9;final &lt;%ValueFactory%> valueFactory = evaluator.getValueFactory();&#xA;&#x9;&#x9;Library"/>
<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/emitOperationArity"/>
<argument xsi:type="ocl.ecore:VariableExp" name="genPackage" referredVariable="/0/generateTypeClass/genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</argument>
<argument 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="/3/OrderedSet(Parameter)">
<source xsi:type="ocl.ecore:VariableExp" name="pOperation" referredVariable="/0/generateTypeClass/@body.0/@body.8/@body.0/pOperation">
<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>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OrderedSet(T)_Class/size"/>
</argument>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=" codeGen = "/>
<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: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: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="pType" referredVariable="/0/generateTypeClass/pType">
<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"/>
</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: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="pOperation" referredVariable="/0/generateTypeClass/@body.0/@body.8/@body.0/pOperation">
<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"/>
</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: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="pConstraint" referredVariable="/0/generateTypeClass/@body.0/@body.8/@body.0/@body.0/pConstraint">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Constraint"/>
</source>
<referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Constraint/stereotype"/>
</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: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="pConstraint" referredVariable="/0/generateTypeClass/@body.0/@body.8/@body.0/@body.0/pConstraint">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Constraint"/>
</source>
<referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//NamedElement/name"/>
</argument>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=".INSTANCE;&#xA;&#x9;&#x9;try {&#xA;&#x9;&#x9;&#x9;final &lt;%Value%> result = codeGen.evaluate(evaluator, null, valueFactory.valueOf(self)"/>
<body xsi:type="mtl:ForBlock">
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=", valueFactory.valueOf("/>
<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="parameter" referredVariable="/0/generateTypeClass/@body.0/@body.8/@body.0/@body.0/@body.0/@body.0/@body.0/@body.15/parameter">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Parameter"/>
</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=")"/>
<loopVariable name="parameter">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Parameter"/>
</loopVariable>
<iterSet xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(Parameter)">
<source xsi:type="ocl.ecore:VariableExp" name="pOperation" referredVariable="/0/generateTypeClass/@body.0/@body.8/@body.0/pOperation">
<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"/>
</iterSet>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=");&#xA;&#x9;&#x9;&#x9;return ("/>
<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#//Type"/>
<source xsi:type="ocl.ecore:VariableExp" name="pOperation" referredVariable="/0/generateTypeClass/@body.0/@body.8/@body.0/pOperation">
<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#//TypedElement/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=") result.asEcoreObject();&#xA;&#x9;&#x9;} catch (&lt;%InvalidValueException%> e) {&#xA;&#x9;&#x9;&#x9;throw new WrappedException(e);&#xA;&#x9;&#x9;}&#xA;&#x9;}&#xA;&#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:BooleanLiteralExp" booleanSymbol="false">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean"/>
</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: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="pConstraint" referredVariable="/0/generateTypeClass/@body.0/@body.8/@body.0/@body.0/pConstraint">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Constraint"/>
</source>
<referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Constraint/stereotype"/>
</source>
<argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="body">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</argument>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String_Class/="/>
</argument>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Boolean_Class/and"/>
</ifExpr>
</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(Variable)">
<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#//Variable"/>
<item xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Variable"/>
<source xsi:type="ocl.ecore:VariableExp" name="expInOcl" referredVariable="/0/generateTypeClass/@body.0/@body.8/@body.0/@body.0/@body.0/expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl/contextVariable"/>
</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="&#x9;"/>
<body xsi:type="mtl:TemplateInvocation" definition="/0/generateOperationConstraint">
<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="expInOcl" referredVariable="/0/generateTypeClass/@body.0/@body.8/@body.0/@body.0/@body.0/expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="genPackage" referredVariable="/0/generateTypeClass/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/generateTypeClass/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="pType" referredVariable="/0/generateTypeClass/pType">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="pOperation" referredVariable="/0/generateTypeClass/@body.0/@body.8/@body.0/pOperation">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Operation"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="pConstraint" referredVariable="/0/generateTypeClass/@body.0/@body.8/@body.0/@body.0/pConstraint">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Constraint"/>
</argument>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;"/>
<letVariable name="expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
<initExpression xsi:type="mtl:QueryInvocation">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
<definition href="../common/elementQueries.emtl#/0/getExpressionInOcl"/>
<argument xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ValueSpecification"/>
<source xsi:type="ocl.ecore:VariableExp" name="pConstraint" referredVariable="/0/generateTypeClass/@body.0/@body.8/@body.0/@body.0/pConstraint">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Constraint"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Constraint/specification"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="pOperation" referredVariable="/0/generateTypeClass/@body.0/@body.8/@body.0/pOperation">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Operation"/>
</argument>
</initExpression>
</letVariable>
</body>
<loopVariable name="pConstraint">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Constraint"/>
</loopVariable>
<iterSet xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(Constraint)">
<source xsi:type="ocl.ecore:VariableExp" name="pOperation" referredVariable="/0/generateTypeClass/@body.0/@body.8/@body.0/pOperation">
<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#//NamedElement/ownedRule"/>
</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>
<loopVariable name="pOperation">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Operation"/>
</loopVariable>
<iterSet xsi:type="ocl.ecore:IteratorExp" name="sortedBy" eType="/3/OrderedSet(Operation)">
<source xsi:type="mtl:QueryInvocation" eType="/3/OrderedSet(Operation)">
<definition href="../common/pivotQueries.emtl#/0/getOperations"/>
<argument xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Class"/>
<source xsi:type="ocl.ecore:VariableExp" name="pType" referredVariable="/0/generateTypeClass/pType">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
</source>
<argument xsi:type="ocl.ecore:TypeExp" eType="/46/Class">
<referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Class"/>
</argument>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclAsType"/>
</argument>
</source>
<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/elementQueries.emtl#/0/getMoniker"/>
<argument xsi:type="ocl.ecore:VariableExp" name="temp1" referredVariable="/0/generateTypeClass/@body.0/@body.8/@body.0/sortedBy/temp5">
<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="temp5">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Operation"/>
</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="mtl:ForBlock">
<body xsi:type="mtl:ForBlock">
<body xsi:type="mtl:LetBlock">
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;"/>
<body xsi:type="mtl:TemplateInvocation" definition="/0/generatePropertyConstraint">
<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="expInOcl" referredVariable="/0/generateTypeClass/@body.0/@body.8/@body.1/@body.0/@body.0/expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="genPackage" referredVariable="/0/generateTypeClass/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/generateTypeClass/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="pType" referredVariable="/0/generateTypeClass/pType">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="pProperty" referredVariable="/0/generateTypeClass/@body.0/@body.8/@body.1/pProperty">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Property"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="pConstraint" referredVariable="/0/generateTypeClass/@body.0/@body.8/@body.1/@body.0/pConstraint">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Constraint"/>
</argument>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;"/>
<letVariable name="expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
<initExpression xsi:type="mtl:QueryInvocation">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
<definition href="../common/elementQueries.emtl#/0/getExpressionInOcl"/>
<argument xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ValueSpecification"/>
<source xsi:type="ocl.ecore:VariableExp" name="pConstraint" referredVariable="/0/generateTypeClass/@body.0/@body.8/@body.1/@body.0/pConstraint">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Constraint"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Constraint/specification"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="pProperty" referredVariable="/0/generateTypeClass/@body.0/@body.8/@body.1/pProperty">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Property"/>
</argument>
</initExpression>
</letVariable>
</body>
<loopVariable name="pConstraint">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Constraint"/>
</loopVariable>
<iterSet xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(Constraint)">
<source xsi:type="ocl.ecore:VariableExp" name="pProperty" referredVariable="/0/generateTypeClass/@body.0/@body.8/@body.1/pProperty">
<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#//NamedElement/ownedRule"/>
</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>
<loopVariable name="pProperty">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Property"/>
</loopVariable>
<iterSet xsi:type="ocl.ecore:IteratorExp" name="sortedBy" eType="/3/OrderedSet(Property)">
<source xsi:type="mtl:QueryInvocation" eType="/3/OrderedSet(Property)">
<definition href="../common/pivotQueries.emtl#/0/getProperties"/>
<argument xsi:type="ocl.ecore:OperationCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Class"/>
<source xsi:type="ocl.ecore:VariableExp" name="pType" referredVariable="/0/generateTypeClass/pType">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
</source>
<argument xsi:type="ocl.ecore:TypeExp" eType="/46/Class">
<referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Class"/>
</argument>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclAsType"/>
</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/generateTypeClass/@body.0/@body.8/@body.1/sortedBy/temp6">
<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="temp6">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Property"/>
</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>
<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:VariableExp" name="pType" referredVariable="/0/generateTypeClass/pType">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
</source>
<argument xsi:type="ocl.ecore:TypeExp" eType="/46/Class">
<referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Class"/>
</argument>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclIsKindOf"/>
</ifExpr>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="}&#xA;"/>
<letVariable name="className">
<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/+">
<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="pType" referredVariable="/0/generateTypeClass/pType">
<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"/>
</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/genPackageQueries.emtl#/0/getBodiesClassSuffix"/>
<argument xsi:type="ocl.ecore:VariableExp" name="genPackage" referredVariable="/0/generateTypeClass/genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</argument>
</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>
<parameter name="pType">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
</parameter>
</ownedModuleElement>
<ownedModuleElement xsi:type="mtl:Template" name="generateInvariant" visibility="Public">
<body xsi:type="mtl:LetBlock">
<body xsi:type="mtl:LetBlock">
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="/** &#xA; * Implementation of 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="pType" referredVariable="/0/generateInvariant/pType">
<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=" '"/>
<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="pConstraint" referredVariable="/0/generateInvariant/pConstraint">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Constraint"/>
</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="' invariant.&#xA; */&#xA;public static class "/>
<body xsi:type="ocl.ecore:VariableExp" name="className" referredVariable="/0/generateInvariant/@body.0/className">
<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=" extends &lt;%Abstract"/>
<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/emitOperationArity"/>
<argument xsi:type="ocl.ecore:VariableExp" name="genPackage" referredVariable="/0/generateInvariant/genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="arity" referredVariable="/0/generateInvariant/@body.0/@body.0/arity">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
</argument>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="%>&#xA;{&#xA;&#x9;public static "/>
<body xsi:type="ocl.ecore:VariableExp" name="className" referredVariable="/0/generateInvariant/@body.0/className">
<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=" INSTANCE = new "/>
<body xsi:type="ocl.ecore:VariableExp" name="className" referredVariable="/0/generateInvariant/@body.0/className">
<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;"/>
<body xsi:type="mtl:IfBlock">
<body xsi:type="mtl:LetBlock">
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;&#x9;/*&#xA;&#x9;"/>
<body xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/String_Class/trim">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<source 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/prettyPrint.1"/>
<argument xsi:type="ocl.ecore:VariableExp" name="expInOcl" referredVariable="/0/generateInvariant/expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
</argument>
</source>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;&#x9;*/&#xA;&#x9;public &lt;%Value%> evaluate(&lt;%DomainEvaluator%> evaluator, &lt;%DomainType%> returnType, final &lt;%Value%> "/>
<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/defineSymbolName"/>
<argument xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Variable"/>
<source xsi:type="ocl.ecore:VariableExp" name="expInOcl" referredVariable="/0/generateInvariant/expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl/contextVariable"/>
</argument>
<argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="self">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</argument>
</body>
<body xsi:type="mtl:IfBlock">
<body xsi:type="mtl:ForBlock">
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=", final &lt;%Value%> "/>
<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/defineSymbolName"/>
<argument xsi:type="ocl.ecore:VariableExp" name="parameter" referredVariable="/0/generateInvariant/@body.0/@body.0/@body.13/@body.0/@body.4/@body.0/parameter">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Variable"/>
</argument>
<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="parameter" referredVariable="/0/generateInvariant/@body.0/@body.0/@body.13/@body.0/@body.4/@body.0/parameter">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Variable"/>
</source>
<referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//NamedElement/name"/>
</argument>
</body>
<loopVariable name="parameter">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Variable"/>
</loopVariable>
<iterSet xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(Variable)">
<source xsi:type="ocl.ecore:VariableExp" name="expInOcl" referredVariable="/0/generateInvariant/expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl/parameterVariable"/>
</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:PropertyCallExp" eType="/3/OrderedSet(Variable)">
<source xsi:type="ocl.ecore:VariableExp" name="expInOcl" referredVariable="/0/generateInvariant/expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl/parameterVariable"/>
</source>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OrderedSet(T)_Class/notEmpty"/>
</ifExpr>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=") throws &lt;%InvalidValueException%> {&#xA;&#x9;&#x9;"/>
<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/constantTemplates.emtl#/0/emitConstants.1"/>
<argument xsi:type="ocl.ecore:VariableExp" name="expInOcl" referredVariable="/0/generateInvariant/expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="constants" referredVariable="/0/generateInvariant/@body.0/@body.0/@body.13/@body.0/constants">
<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;&#x9;&#x9;"/>
<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/expressionTemplates.emtl#/0/emitExpression.4"/>
<argument xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//OclExpression"/>
<source xsi:type="ocl.ecore:VariableExp" name="expInOcl" referredVariable="/0/generateInvariant/expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl/bodyExpression"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="pType" referredVariable="/0/generateInvariant/pType">
<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/generateInvariant/genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="expInOcl" referredVariable="/0/generateInvariant/expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
</argument>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;&#x9;&#x9;return "/>
<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/symbolTemplates.emtl#/0/symbolName.1"/>
<argument xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//OclExpression"/>
<source xsi:type="ocl.ecore:VariableExp" name="expInOcl" referredVariable="/0/generateInvariant/expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl/bodyExpression"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="expInOcl" referredVariable="/0/generateInvariant/expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
</argument>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=";&#xA;&#x9;}&#xA;"/>
<body xsi:type="mtl:IfBlock">
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;public static class Message extends &lt;%Abstract"/>
<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/emitOperationArity"/>
<argument xsi:type="ocl.ecore:VariableExp" name="genPackage" referredVariable="/0/generateInvariant/genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="arity" referredVariable="/0/generateInvariant/@body.0/@body.0/arity">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
</argument>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="%>&#xA;&#x9;{&#xA;&#x9;&#x9;public static "/>
<body xsi:type="ocl.ecore:VariableExp" name="className" referredVariable="/0/generateInvariant/@body.0/className">
<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=" INSTANCE = new "/>
<body xsi:type="ocl.ecore:VariableExp" name="className" referredVariable="/0/generateInvariant/@body.0/className">
<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;&#x9;&#xA;&#x9;&#x9;public &lt;%Value%> evaluate(&lt;%DomainEvaluator%> evaluator, &lt;%DomainType%> returnType, final &lt;%Value%> "/>
<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/defineSymbolName"/>
<argument xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Variable"/>
<source xsi:type="ocl.ecore:VariableExp" name="expInOcl" referredVariable="/0/generateInvariant/expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl/contextVariable"/>
</argument>
<argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="self">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</argument>
</body>
<body xsi:type="mtl:IfBlock">
<body xsi:type="mtl:ForBlock">
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;, &lt;%Value%> "/>
<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/defineSymbolName"/>
<argument xsi:type="ocl.ecore:VariableExp" name="parameter" referredVariable="/0/generateInvariant/@body.0/@body.0/@body.13/@body.0/@body.12/@body.8/@body.0/parameter">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Variable"/>
</argument>
<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="parameter" referredVariable="/0/generateInvariant/@body.0/@body.0/@body.13/@body.0/@body.12/@body.8/@body.0/parameter">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Variable"/>
</source>
<referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//NamedElement/name"/>
</argument>
</body>
<loopVariable name="parameter">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Variable"/>
</loopVariable>
<iterSet xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(Variable)">
<source xsi:type="ocl.ecore:VariableExp" name="expInOcl" referredVariable="/0/generateInvariant/expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl/parameterVariable"/>
</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:PropertyCallExp" eType="/3/OrderedSet(Variable)">
<source xsi:type="ocl.ecore:VariableExp" name="expInOcl" referredVariable="/0/generateInvariant/expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl/parameterVariable"/>
</source>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OrderedSet(T)_Class/notEmpty"/>
</ifExpr>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=") throws &lt;%InvalidValueException%> {&#xA;&#x9;&#x9;&#x9;"/>
<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/expressionTemplates.emtl#/0/emitExpression.4"/>
<argument xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//OclExpression"/>
<source xsi:type="ocl.ecore:VariableExp" name="expInOcl" referredVariable="/0/generateInvariant/expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl/messageExpression"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="pType" referredVariable="/0/generateInvariant/pType">
<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/generateInvariant/genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="expInOcl" referredVariable="/0/generateInvariant/expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
</argument>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;&#x9;&#x9;&#x9;return "/>
<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/symbolTemplates.emtl#/0/symbolName.1"/>
<argument xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//OclExpression"/>
<source xsi:type="ocl.ecore:VariableExp" name="expInOcl" referredVariable="/0/generateInvariant/expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl/messageExpression"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="expInOcl" referredVariable="/0/generateInvariant/expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
</argument>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=";&#xA;&#x9;&#x9;}&#xA;&#x9;}&#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:CollectionLiteralExp" eType="/3/Set(OclExpression)">
<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#//OclExpression"/>
<item xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//OclExpression"/>
<source xsi:type="ocl.ecore:VariableExp" name="expInOcl" referredVariable="/0/generateInvariant/expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl/messageExpression"/>
</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>
<letVariable name="constants">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<initExpression 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/constantTemplates.emtl#/0/gatherConstants"/>
<argument xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//OclExpression"/>
<source xsi:type="ocl.ecore:VariableExp" name="expInOcl" referredVariable="/0/generateInvariant/expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl/bodyExpression"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="genPackage" referredVariable="/0/generateInvariant/genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="expInOcl" referredVariable="/0/generateInvariant/expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
</argument>
</initExpression>
</letVariable>
</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(Variable)">
<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#//Variable"/>
<item xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Variable"/>
<source xsi:type="ocl.ecore:VariableExp" name="expInOcl" referredVariable="/0/generateInvariant/expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl/contextVariable"/>
</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>
<else>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;"/>
<body xsi:type="mtl:TemplateInvocation" definition="/0/generateErrorMessage">
<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="expInOcl" referredVariable="/0/generateInvariant/expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
</argument>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;"/>
</else>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="}"/>
<letVariable name="arity">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
<initExpression 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="/3/OrderedSet(Variable)">
<source xsi:type="ocl.ecore:VariableExp" name="expInOcl" referredVariable="/0/generateInvariant/expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl/parameterVariable"/>
</source>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OrderedSet(T)_Class/size"/>
</initExpression>
</letVariable>
</body>
<letVariable name="className">
<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/+">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<source xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="_invariant_">
<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="pConstraint" referredVariable="/0/generateInvariant/pConstraint">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Constraint"/>
</source>
<referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//NamedElement/name"/>
</argument>
</initExpression>
</letVariable>
</body>
<parameter name="expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
</parameter>
<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>
<parameter name="pType">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
</parameter>
<parameter name="pConstraint">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Constraint"/>
</parameter>
</ownedModuleElement>
<ownedModuleElement xsi:type="mtl:Template" name="generateOperationConstraint" visibility="Public">
<body xsi:type="mtl:LetBlock">
<body xsi:type="mtl:LetBlock">
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="/** &#xA; * Implementation of 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="pType" referredVariable="/0/generateOperationConstraint/pType">
<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="::"/>
<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="pOperation" referredVariable="/0/generateOperationConstraint/pOperation">
<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=" '"/>
<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="pConstraint" referredVariable="/0/generateOperationConstraint/pConstraint">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Constraint"/>
</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="' &lt;"/>
<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="pConstraint" referredVariable="/0/generateOperationConstraint/pConstraint">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Constraint"/>
</source>
<referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Constraint/stereotype"/>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=">.&#xA; */&#xA;public static class "/>
<body xsi:type="ocl.ecore:VariableExp" name="className" referredVariable="/0/generateOperationConstraint/@body.0/@body.0/className.3">
<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=" extends &lt;%Abstract"/>
<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/emitOperationArity"/>
<argument xsi:type="ocl.ecore:VariableExp" name="genPackage" referredVariable="/0/generateOperationConstraint/genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="arity" referredVariable="/0/generateOperationConstraint/@body.0/arity">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
</argument>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="%>&#xA;{&#xA;&#x9;public static "/>
<body xsi:type="ocl.ecore:VariableExp" name="className" referredVariable="/0/generateOperationConstraint/@body.0/@body.0/className.3">
<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=" INSTANCE = new "/>
<body xsi:type="ocl.ecore:VariableExp" name="className" referredVariable="/0/generateOperationConstraint/@body.0/@body.0/className.3">
<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;"/>
<body xsi:type="mtl:IfBlock">
<body xsi:type="mtl:LetBlock">
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;/*&#xA;&#x9;"/>
<body xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/String_Class/trim">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<source 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/prettyPrint.1"/>
<argument xsi:type="ocl.ecore:VariableExp" name="expInOcl" referredVariable="/0/generateOperationConstraint/expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
</argument>
</source>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;&#x9;*/&#xA;&#x9;public &lt;%Value%> evaluate(&lt;%DomainEvaluator%> evaluator, &lt;%DomainType%> returnType, final &lt;%Value%> "/>
<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/defineSymbolName"/>
<argument xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Variable"/>
<source xsi:type="ocl.ecore:VariableExp" name="expInOcl" referredVariable="/0/generateOperationConstraint/expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl/contextVariable"/>
</argument>
<argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="self">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</argument>
</body>
<body xsi:type="mtl:IfBlock">
<body xsi:type="mtl:ForBlock">
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=", final &lt;%Value%> "/>
<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/defineSymbolName"/>
<argument xsi:type="ocl.ecore:VariableExp" name="parameter" referredVariable="/0/generateOperationConstraint/@body.0/@body.0/@body.17/@body.0/@body.4/@body.0/parameter">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Variable"/>
</argument>
<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="parameter" referredVariable="/0/generateOperationConstraint/@body.0/@body.0/@body.17/@body.0/@body.4/@body.0/parameter">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Variable"/>
</source>
<referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//NamedElement/name"/>
</argument>
</body>
<loopVariable name="parameter">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Variable"/>
</loopVariable>
<iterSet xsi:type="ocl.ecore:PropertyCallExp" eType="/3/OrderedSet(Variable)">
<source xsi:type="ocl.ecore:VariableExp" name="expInOcl" referredVariable="/0/generateOperationConstraint/expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl/parameterVariable"/>
</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:PropertyCallExp" eType="/3/OrderedSet(Variable)">
<source xsi:type="ocl.ecore:VariableExp" name="expInOcl" referredVariable="/0/generateOperationConstraint/expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl/parameterVariable"/>
</source>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OrderedSet(T)_Class/notEmpty"/>
</ifExpr>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=") throws &lt;%InvalidValueException%> {&#xA;&#x9;&#x9;"/>
<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/constantTemplates.emtl#/0/emitConstants.1"/>
<argument xsi:type="ocl.ecore:VariableExp" name="expInOcl" referredVariable="/0/generateOperationConstraint/expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="constants" referredVariable="/0/generateOperationConstraint/@body.0/@body.0/@body.17/@body.0/constants">
<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;&#x9;&#x9;"/>
<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/expressionTemplates.emtl#/0/emitExpression.4"/>
<argument xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//OclExpression"/>
<source xsi:type="ocl.ecore:VariableExp" name="expInOcl" referredVariable="/0/generateOperationConstraint/expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl/bodyExpression"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="pType" referredVariable="/0/generateOperationConstraint/pType">
<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/generateOperationConstraint/genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="expInOcl" referredVariable="/0/generateOperationConstraint/expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
</argument>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;&#x9;&#x9;return "/>
<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/symbolTemplates.emtl#/0/symbolName.1"/>
<argument xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//OclExpression"/>
<source xsi:type="ocl.ecore:VariableExp" name="expInOcl" referredVariable="/0/generateOperationConstraint/expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl/bodyExpression"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="expInOcl" referredVariable="/0/generateOperationConstraint/expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
</argument>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=";&#xA;&#x9;}&#xA;"/>
<letVariable name="constants">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<initExpression 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/constantTemplates.emtl#/0/gatherConstants"/>
<argument xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//OclExpression"/>
<source xsi:type="ocl.ecore:VariableExp" name="expInOcl" referredVariable="/0/generateOperationConstraint/expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl/bodyExpression"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="genPackage" referredVariable="/0/generateOperationConstraint/genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="expInOcl" referredVariable="/0/generateOperationConstraint/expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
</argument>
</initExpression>
</letVariable>
</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(Variable)">
<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#//Variable"/>
<item xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Variable"/>
<source xsi:type="ocl.ecore:VariableExp" name="expInOcl" referredVariable="/0/generateOperationConstraint/expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl/contextVariable"/>
</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>
<else>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;"/>
<body xsi:type="mtl:TemplateInvocation" definition="/0/generateErrorMessage">
<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="expInOcl" referredVariable="/0/generateOperationConstraint/expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
</argument>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;"/>
</else>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="}"/>
<letVariable name="className">
<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/+">
<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: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:StringLiteralExp" stringSymbol="_">
<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="pOperation" referredVariable="/0/generateOperationConstraint/pOperation">
<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"/>
</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: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="pConstraint" referredVariable="/0/generateOperationConstraint/pConstraint">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Constraint"/>
</source>
<referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Constraint/stereotype"/>
</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: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="pConstraint" referredVariable="/0/generateOperationConstraint/pConstraint">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Constraint"/>
</source>
<referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//NamedElement/name"/>
</argument>
</initExpression>
</letVariable>
</body>
<letVariable name="arity">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
<initExpression 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="/3/OrderedSet(Variable)">
<source xsi:type="ocl.ecore:VariableExp" name="expInOcl" referredVariable="/0/generateOperationConstraint/expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl/parameterVariable"/>
</source>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OrderedSet(T)_Class/size"/>
</initExpression>
</letVariable>
</body>
<parameter name="expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
</parameter>
<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>
<parameter name="pType">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
</parameter>
<parameter name="pOperation">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Operation"/>
</parameter>
<parameter name="pConstraint">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Constraint"/>
</parameter>
</ownedModuleElement>
<ownedModuleElement xsi:type="mtl:Template" name="generatePropertyConstraint" visibility="Public">
<body xsi:type="mtl:LetBlock">
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="/** &#xA; * Implementation of 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="pType" referredVariable="/0/generatePropertyConstraint/pType">
<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="::"/>
<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="pProperty" referredVariable="/0/generatePropertyConstraint/pProperty">
<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=" '"/>
<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="pConstraint" referredVariable="/0/generatePropertyConstraint/pConstraint">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Constraint"/>
</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="' &lt;"/>
<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="pConstraint" referredVariable="/0/generatePropertyConstraint/pConstraint">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Constraint"/>
</source>
<referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Constraint/stereotype"/>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=">.&#xA; */&#xA;public static class "/>
<body xsi:type="ocl.ecore:VariableExp" name="className" referredVariable="/0/generatePropertyConstraint/@body.0/className.3">
<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=" extends &lt;%AbstractProperty%>&#xA;{&#xA;&#x9;public static "/>
<body xsi:type="ocl.ecore:VariableExp" name="className" referredVariable="/0/generatePropertyConstraint/@body.0/className.3">
<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=" INSTANCE = new "/>
<body xsi:type="ocl.ecore:VariableExp" name="className" referredVariable="/0/generatePropertyConstraint/@body.0/className.3">
<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;"/>
<body xsi:type="mtl:IfBlock">
<body xsi:type="mtl:LetBlock">
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;/*&#xA;&#x9;"/>
<body xsi:type="ocl.ecore:OperationCallExp" referredOperation="/1/String_Class/trim">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<source 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/prettyPrint.1"/>
<argument xsi:type="ocl.ecore:VariableExp" name="expInOcl" referredVariable="/0/generatePropertyConstraint/expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
</argument>
</source>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;&#x9;*/&#xA;&#x9;public &lt;%Value%> evaluate(&lt;%DomainEvaluator%> evaluator, &lt;%DomainType%> returnType, final &lt;%Value%> "/>
<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/defineSymbolName"/>
<argument xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Variable"/>
<source xsi:type="ocl.ecore:VariableExp" name="expInOcl" referredVariable="/0/generatePropertyConstraint/expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl/contextVariable"/>
</argument>
<argument xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="self">
<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=", &lt;%DomainProperty%> property) throws &lt;%InvalidValueException%> {&#xA;&#x9;&#x9;"/>
<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/constantTemplates.emtl#/0/emitConstants.1"/>
<argument xsi:type="ocl.ecore:VariableExp" name="expInOcl" referredVariable="/0/generatePropertyConstraint/expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="constants" referredVariable="/0/generatePropertyConstraint/@body.0/@body.15/@body.0/constants">
<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;&#x9;&#x9;"/>
<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/expressionTemplates.emtl#/0/emitExpression.4"/>
<argument xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//OclExpression"/>
<source xsi:type="ocl.ecore:VariableExp" name="expInOcl" referredVariable="/0/generatePropertyConstraint/expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl/bodyExpression"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="pType" referredVariable="/0/generatePropertyConstraint/pType">
<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/generatePropertyConstraint/genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="expInOcl" referredVariable="/0/generatePropertyConstraint/expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
</argument>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;&#x9;&#x9;return "/>
<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/symbolTemplates.emtl#/0/symbolName.1"/>
<argument xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//OclExpression"/>
<source xsi:type="ocl.ecore:VariableExp" name="expInOcl" referredVariable="/0/generatePropertyConstraint/expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl/bodyExpression"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="expInOcl" referredVariable="/0/generatePropertyConstraint/expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
</argument>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol=";&#xA;&#x9;}"/>
<letVariable name="constants">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<initExpression 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/constantTemplates.emtl#/0/gatherConstants"/>
<argument xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//OclExpression"/>
<source xsi:type="ocl.ecore:VariableExp" name="expInOcl" referredVariable="/0/generatePropertyConstraint/expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl/bodyExpression"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="genPackage" referredVariable="/0/generatePropertyConstraint/genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</argument>
<argument xsi:type="ocl.ecore:VariableExp" name="expInOcl" referredVariable="/0/generatePropertyConstraint/expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
</argument>
</initExpression>
</letVariable>
</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(Variable)">
<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#//Variable"/>
<item xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Variable"/>
<source xsi:type="ocl.ecore:VariableExp" name="expInOcl" referredVariable="/0/generatePropertyConstraint/expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl/contextVariable"/>
</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>
<else>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#x9;"/>
<body xsi:type="mtl:TemplateInvocation" definition="/0/generateErrorMessage">
<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="expInOcl" referredVariable="/0/generatePropertyConstraint/expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
</argument>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;"/>
</else>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="}"/>
<letVariable name="className">
<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/+">
<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: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:StringLiteralExp" stringSymbol="_">
<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="pProperty" referredVariable="/0/generatePropertyConstraint/pProperty">
<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"/>
</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: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="pConstraint" referredVariable="/0/generatePropertyConstraint/pConstraint">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Constraint"/>
</source>
<referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Constraint/stereotype"/>
</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: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="pConstraint" referredVariable="/0/generatePropertyConstraint/pConstraint">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Constraint"/>
</source>
<referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//NamedElement/name"/>
</argument>
</initExpression>
</letVariable>
</body>
<parameter name="expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
</parameter>
<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>
<parameter name="pType">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
</parameter>
<parameter name="pProperty">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Property"/>
</parameter>
<parameter name="pConstraint">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Constraint"/>
</parameter>
</ownedModuleElement>
<ownedModuleElement xsi:type="mtl:Template" name="generateErrorMessage" visibility="Public">
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="/*&#xA;"/>
<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:OperationCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//StringLiteralExp"/>
<source xsi:type="ocl.ecore:PropertyCallExp">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//OclExpression"/>
<source xsi:type="ocl.ecore:VariableExp" name="expInOcl" referredVariable="/0/generateErrorMessage/expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
</source>
<referredProperty xsi:type="ecore:EReference" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl/messageExpression"/>
</source>
<argument xsi:type="ocl.ecore:TypeExp" eType="/46/StringLiteralExp">
<referredType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//StringLiteralExp"/>
</argument>
<referredOperation xsi:type="ecore:EOperation" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny_Class/oclAsType"/>
</source>
<referredProperty xsi:type="ecore:EAttribute" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//StringLiteralExp/stringSymbol"/>
</body>
<body xsi:type="ocl.ecore:StringLiteralExp" stringSymbol="&#xA;*/"/>
<parameter name="expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
</parameter>
</ownedModuleElement>
</mtl:Module>
<ecore:EPackage name="additions">
<eClassifiers xsi:type="ecore:EClass" name="String_Class">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<references href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</eAnnotations>
<eOperations name="replaceAll">
<eAnnotations source="MTL non-standard"/>
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<eParameters name="substring">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</eParameters>
<eParameters name="replacement">
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</eParameters>
</eOperations>
<eOperations name="trim">
<eAnnotations source="MTL non-standard"/>
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
</eOperations>
<eOperations name="+">
<eAnnotations source="MTL non-standard"/>
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<eParameters name="other">
<eType xsi:type="ocl.ecore:AnyType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/OclAny"/>
</eParameters>
</eOperations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Integer_Class">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<references href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Integer"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Real_Class">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<references href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/Real"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="EObject_Class">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<references href="http://www.eclipse.org/emf/2002/Ecore#//EObject"/>
</eAnnotations>
<eOperations name="generateBodies">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<contents xsi:type="ocl.ecore:Constraint"/>
</eAnnotations>
<eAnnotations source="MTL" references="/0/generateBodies"/>
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<eParameters name="genModel">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenModel"/>
</eParameters>
</eOperations>
<eOperations name="generateType">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<contents xsi:type="ocl.ecore:Constraint"/>
</eAnnotations>
<eAnnotations source="MTL" references="/0/generateType"/>
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<eParameters name="genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</eParameters>
<eParameters name="pPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package"/>
</eParameters>
<eParameters name="pType">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
</eParameters>
</eOperations>
<eOperations name="generateTypeClass">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<contents xsi:type="ocl.ecore:Constraint"/>
</eAnnotations>
<eAnnotations source="MTL" references="/0/generateTypeClass"/>
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<eParameters name="genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</eParameters>
<eParameters name="pPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package"/>
</eParameters>
<eParameters name="pType">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
</eParameters>
</eOperations>
<eOperations name="generateInvariant">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<contents xsi:type="ocl.ecore:Constraint"/>
</eAnnotations>
<eAnnotations source="MTL" references="/0/generateInvariant"/>
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<eParameters name="expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
</eParameters>
<eParameters name="genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</eParameters>
<eParameters name="pPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package"/>
</eParameters>
<eParameters name="pType">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
</eParameters>
<eParameters name="pConstraint">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Constraint"/>
</eParameters>
</eOperations>
<eOperations name="generateOperationConstraint">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<contents xsi:type="ocl.ecore:Constraint"/>
</eAnnotations>
<eAnnotations source="MTL" references="/0/generateOperationConstraint"/>
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<eParameters name="expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
</eParameters>
<eParameters name="genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</eParameters>
<eParameters name="pPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package"/>
</eParameters>
<eParameters name="pType">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
</eParameters>
<eParameters name="pOperation">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Operation"/>
</eParameters>
<eParameters name="pConstraint">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Constraint"/>
</eParameters>
</eOperations>
<eOperations name="generatePropertyConstraint">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<contents xsi:type="ocl.ecore:Constraint"/>
</eAnnotations>
<eAnnotations source="MTL" references="/0/generatePropertyConstraint"/>
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<eParameters name="expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
</eParameters>
<eParameters name="genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</eParameters>
<eParameters name="pPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package"/>
</eParameters>
<eParameters name="pType">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Type"/>
</eParameters>
<eParameters name="pProperty">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Property"/>
</eParameters>
<eParameters name="pConstraint">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Constraint"/>
</eParameters>
</eOperations>
<eOperations name="generateErrorMessage">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<contents xsi:type="ocl.ecore:Constraint"/>
</eAnnotations>
<eAnnotations source="MTL" references="/0/generateErrorMessage"/>
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<eParameters name="expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>
</eParameters>
</eOperations>
<eOperations name="gatherConstants">
<eAnnotations source="http://www.eclipse.org/ocl/1.1.0/OCL">
<contents xsi:type="ocl.ecore:Constraint"/>
</eAnnotations>
<eAnnotations source="MTL">
<references href="../common/constantTemplates.emtl#/0/gatherConstants"/>
</eAnnotations>
<eType xsi:type="ocl.ecore:PrimitiveType" href="http://www.eclipse.org/ocl/1.1.0/oclstdlib.ecore#/0/String"/>
<eParameters name="ast">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Element"/>
</eParameters>
<eParameters name="genPackage">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/emf/2002/GenModel#//GenPackage"/>
</eParameters>
<eParameters name="expInOcl">
<eType xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//ExpressionInOcl"/>