blob: a0c262cb56163f521393d52ff635c0da4d02d0f2 [file] [log] [blame]
<?xml version="1.0" encoding="ASCII"?>
<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmi:id="ImperativeOCL" name="ImperativeOCL" nsURI="http://schema.omg.org/spec/QVT/20140401/ImperativeOCL"
nsPrefix="imperativeocl">
<eClassifiers xsi:type="ecore:EClass" xmi:id="ImperativeOCL.AltExp" name="AltExp"
eSuperTypes="#ImperativeOCL.ImperativeExpression">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.AltExp.body"
name="body" lowerBound="1" eType="ecore:EClass EssentialOCL.ecore#EssentialOCL.OclExpression"
containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="altBodyOwner"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.AltExp.condition"
name="condition" lowerBound="1" eType="ecore:EClass EssentialOCL.ecore#EssentialOCL.OclExpression"
containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="altCondOwner"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="ImperativeOCL.AssertExp" name="AssertExp"
eSuperTypes="#ImperativeOCL.ImperativeExpression">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.AssertExp.assertion"
name="assertion" lowerBound="1" eType="ecore:EClass EssentialOCL.ecore#EssentialOCL.OclExpression"
containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="assertOwner"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.AssertExp.log"
name="log" eType="#ImperativeOCL.LogExp" containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="assertExp"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="ImperativeOCL.AssertExp.severity"
name="severity" eType="#ImperativeOCL.SeverityKind" defaultValueLiteral="error"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="ImperativeOCL.AssignExp" name="AssignExp"
eSuperTypes="#ImperativeOCL.ImperativeExpression">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.AssignExp.defaultValue"
name="defaultValue" eType="ecore:EClass EssentialOCL.ecore#EssentialOCL.OclExpression"
containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="defaultOwner"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="ImperativeOCL.AssignExp.isReset"
name="isReset" eType="ecore:EDataType PrimitiveTypes.ecore#PrimitiveTypes.Boolean"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.AssignExp.left"
name="left" lowerBound="1" eType="ecore:EClass EssentialOCL.ecore#EssentialOCL.OclExpression"
containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="leftOwner"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.AssignExp.value"
name="value" upperBound="-1" eType="ecore:EClass EssentialOCL.ecore#EssentialOCL.OclExpression"
containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="valueOwner"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="ImperativeOCL.BlockExp" name="BlockExp"
eSuperTypes="#ImperativeOCL.ImperativeExpression">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.BlockExp.body"
name="body" upperBound="-1" eType="ecore:EClass EssentialOCL.ecore#EssentialOCL.OclExpression"
containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="blockOwner"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="ImperativeOCL.BreakExp" name="BreakExp"
eSuperTypes="#ImperativeOCL.ImperativeExpression"/>
<eClassifiers xsi:type="ecore:EClass" xmi:id="ImperativeOCL.CatchExp" name="CatchExp"
eSuperTypes="#ImperativeOCL.ImperativeExpression">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.CatchExp.body"
name="body" upperBound="-1" eType="ecore:EClass EssentialOCL.ecore#EssentialOCL.OclExpression"
containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="catchExp"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.CatchExp.exception"
name="exception" lowerBound="1" upperBound="-1" eType="ecore:EClass EMOF.ecore#EMOF.Type">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="catchExp"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="exceptionVariable" eType="ecore:EClass EssentialOCL.ecore#EssentialOCL.Variable"
containment="true">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="catchExp"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="ImperativeOCL.ComputeExp" name="ComputeExp"
eSuperTypes="#ImperativeOCL.ImperativeExpression">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.ComputeExp.body"
name="body" lowerBound="1" eType="ecore:EClass EssentialOCL.ecore#EssentialOCL.OclExpression"
containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="computeOwner"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.ComputeExp.returnedElement"
name="returnedElement" lowerBound="1" eType="ecore:EClass EssentialOCL.ecore#EssentialOCL.Variable"
containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="computeOwner"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="ImperativeOCL.ContinueExp" name="ContinueExp"
eSuperTypes="#ImperativeOCL.ImperativeExpression"/>
<eClassifiers xsi:type="ecore:EClass" xmi:id="ImperativeOCL.DictLiteralExp" name="DictLiteralExp"
eSuperTypes="EssentialOCL.ecore#EssentialOCL.LiteralExp">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.DictLiteralExp.part"
name="part" ordered="false" upperBound="-1" eType="#ImperativeOCL.DictLiteralPart"
containment="true" resolveProxies="false" eOpposite="#//DictLiteralPart/partOwner"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="ImperativeOCL.DictLiteralPart" name="DictLiteralPart"
eSuperTypes="EMOF.ecore#EMOF.Element">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.DictLiteralPart.key"
name="key" lowerBound="1" eType="ecore:EClass EssentialOCL.ecore#EssentialOCL.OclExpression"
containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="keyOwner"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.DictLiteralPart.value"
name="value" lowerBound="1" eType="ecore:EClass EssentialOCL.ecore#EssentialOCL.OclExpression"
containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="valOwner"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="partOwner" lowerBound="1"
eType="#ImperativeOCL.DictLiteralExp" eOpposite="#ImperativeOCL.DictLiteralExp.part"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="ImperativeOCL.DictionaryType" name="DictionaryType"
eSuperTypes="EssentialOCL.ecore#EssentialOCL.CollectionType">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.DictionaryType.keyType"
name="keyType" eType="ecore:EClass EMOF.ecore#EMOF.Type">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="keyDict"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="ImperativeOCL.ForExp" name="ForExp"
eSuperTypes="#ImperativeOCL.ImperativeLoopExp"/>
<eClassifiers xsi:type="ecore:EClass" xmi:id="ImperativeOCL.ImperativeExpression"
name="ImperativeExpression" abstract="true" eSuperTypes="EssentialOCL.ecore#EssentialOCL.OclExpression"/>
<eClassifiers xsi:type="ecore:EClass" xmi:id="ImperativeOCL.ImperativeIterateExp"
name="ImperativeIterateExp" eSuperTypes="#ImperativeOCL.ImperativeLoopExp">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.ImperativeIterateExp.target"
name="target" eType="ecore:EClass EssentialOCL.ecore#EssentialOCL.Variable"
containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="tgtOwner"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="ImperativeOCL.ImperativeLoopExp" name="ImperativeLoopExp"
abstract="true" eSuperTypes="EssentialOCL.ecore#EssentialOCL.LoopExp #ImperativeOCL.ImperativeExpression">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.ImperativeLoopExp.condition"
name="condition" eType="ecore:EClass EssentialOCL.ecore#EssentialOCL.OclExpression"
containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="loopCondOwner"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="ImperativeOCL.InstantiationExp" name="InstantiationExp"
eSuperTypes="#ImperativeOCL.ImperativeExpression">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.InstantiationExp.argument"
name="argument" upperBound="-1" eType="ecore:EClass EssentialOCL.ecore#EssentialOCL.OclExpression"
containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="argOwner"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.InstantiationExp.extent"
name="extent" eType="ecore:EClass EssentialOCL.ecore#EssentialOCL.Variable">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="instantiationExp"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.InstantiationExp.instantiatedClass"
name="instantiatedClass" lowerBound="1" eType="ecore:EClass EMOF.ecore#EMOF.Class">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="instantiationExp"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="initializationOperation"
eType="ecore:EClass EMOF.ecore#EMOF.Operation">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="instantiationExp"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="ImperativeOCL.ListLiteralExp" name="ListLiteralExp"
eSuperTypes="EssentialOCL.ecore#EssentialOCL.LiteralExp">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.ListLiteralExp.element"
name="element" upperBound="-1" eType="ecore:EClass EssentialOCL.ecore#EssentialOCL.OclExpression"
containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="listLiteralExp"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="ImperativeOCL.ListType" name="ListType"
eSuperTypes="EssentialOCL.ecore#EssentialOCL.CollectionType"/>
<eClassifiers xsi:type="ecore:EClass" xmi:id="ImperativeOCL.LogExp" name="LogExp"
eSuperTypes="EssentialOCL.ecore#EssentialOCL.OperationCallExp #ImperativeOCL.ImperativeExpression">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.LogExp.condition"
name="condition" eType="ecore:EClass EssentialOCL.ecore#EssentialOCL.OclExpression"
containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="logOwner"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="ImperativeOCL.RaiseExp" name="RaiseExp"
eSuperTypes="#ImperativeOCL.ImperativeExpression">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.RaiseExp.argument"
name="argument" eType="ecore:EClass EssentialOCL.ecore#EssentialOCL.OclExpression"
containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="raiseExp"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.RaiseExp.exception"
name="exception" lowerBound="1" eType="ecore:EClass EMOF.ecore#EMOF.Type">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="raiseExpression"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="ImperativeOCL.ReturnExp" name="ReturnExp"
eSuperTypes="#ImperativeOCL.ImperativeExpression">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.ReturnExp.value"
name="value" eType="ecore:EClass EssentialOCL.ecore#EssentialOCL.OclExpression"
containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="returnExp"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" xmi:id="ImperativeOCL.SeverityKind" name="SeverityKind">
<eLiterals xmi:id="ImperativeOCL.SeverityKind.error" name="error"/>
<eLiterals xmi:id="ImperativeOCL.SeverityKind.warning" name="warning" value="1"/>
<eLiterals xmi:id="ImperativeOCL.SeverityKind.fatal" name="fatal" value="2"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="ImperativeOCL.SwitchExp" name="SwitchExp"
eSuperTypes="#ImperativeOCL.ImperativeExpression">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.SwitchExp.alternativePart"
name="alternativePart" upperBound="-1" eType="#ImperativeOCL.AltExp" containment="true"
resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="altOwner"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.SwitchExp.elsePart"
name="elsePart" eType="ecore:EClass EssentialOCL.ecore#EssentialOCL.OclExpression"
containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="elsePartOwner"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="ImperativeOCL.TryExp" name="TryExp"
eSuperTypes="#ImperativeOCL.ImperativeExpression">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.TryExp.exceptClause"
name="exceptClause" upperBound="-1" eType="#ImperativeOCL.CatchExp" containment="true"
resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="exceptOwner"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.TryExp.tryBody"
name="tryBody" upperBound="-1" eType="ecore:EClass EssentialOCL.ecore#EssentialOCL.OclExpression"
containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="tryBodyOwner"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="ImperativeOCL.Typedef" name="Typedef"
eSuperTypes="EMOF.ecore#EMOF.Class">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.Typedef.base"
name="base" lowerBound="1" eType="ecore:EClass EMOF.ecore#EMOF.Type">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="typedef"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.Typedef.condition"
name="condition" eType="ecore:EClass EssentialOCL.ecore#EssentialOCL.OclExpression"
containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="typedef"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="ImperativeOCL.UnlinkExp" name="UnlinkExp"
eSuperTypes="#ImperativeOCL.ImperativeExpression">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.UnlinkExp.item"
name="item" lowerBound="1" eType="ecore:EClass EssentialOCL.ecore#EssentialOCL.OclExpression"
containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="itemUnlink"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.UnlinkExp.target"
name="target" lowerBound="1" eType="ecore:EClass EssentialOCL.ecore#EssentialOCL.OclExpression"
containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="tgtUnlink"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="ImperativeOCL.VariableInitExp" name="VariableInitExp"
eSuperTypes="#ImperativeOCL.ImperativeExpression">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.VariableInitExp.referredVariable"
name="referredVariable" lowerBound="1" eType="ecore:EClass EssentialOCL.ecore#EssentialOCL.Variable"
containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="declaration"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="ImperativeOCL.VariableInitExp.withResult"
name="withResult" eType="ecore:EDataType PrimitiveTypes.ecore#PrimitiveTypes.Boolean"
defaultValueLiteral="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="ImperativeOCL.WhileExp" name="WhileExp"
eSuperTypes="#ImperativeOCL.ImperativeExpression">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.WhileExp.body"
name="body" lowerBound="1" eType="ecore:EClass EssentialOCL.ecore#EssentialOCL.OclExpression"
containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="whileOwner"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.WhileExp.condition"
name="condition" lowerBound="1" eType="ecore:EClass EssentialOCL.ecore#EssentialOCL.OclExpression"
containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="whileExpression"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
</ecore:EPackage>