blob: 4936cdb2046ab6e533ba601989d0872641eac25b [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/1.1/imperativeocl.xml" 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" containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="altBodyOwner"/>
</eAnnotations>
<eType xsi:type="ecore:EClass" href="EssentialOCL.ecore#EssentialOCL.OclExpression"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.AltExp.condition" name="condition" lowerBound="1" containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="altCondOwner"/>
</eAnnotations>
<eType xsi:type="ecore:EClass" href="EssentialOCL.ecore#EssentialOCL.OclExpression"/>
</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" containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="assertOwner"/>
</eAnnotations>
<eType xsi:type="ecore:EClass" href="EssentialOCL.ecore#EssentialOCL.OclExpression"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.AssertExp.log" name="log" eType="ImperativeOCL.LogExp" containment="true" resolveProxies="false"/>
<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" containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="defaultOwner"/>
</eAnnotations>
<eType xsi:type="ecore:EClass" href="EssentialOCL.ecore#EssentialOCL.OclExpression"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="ImperativeOCL.AssignExp.isReset" name="isReset">
<eType xsi:type="ecore:EDataType" href="EMOF.ecore#PrimitiveTypes.Boolean"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.AssignExp.left" name="left" lowerBound="1" containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="leftOwner"/>
</eAnnotations>
<eType xsi:type="ecore:EClass" href="EssentialOCL.ecore#EssentialOCL.OclExpression"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.AssignExp.value" name="value" upperBound="-1" containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="valueOwner"/>
</eAnnotations>
<eType xsi:type="ecore:EClass" href="EssentialOCL.ecore#EssentialOCL.OclExpression"/>
</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" containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="blockOwner"/>
</eAnnotations>
<eType xsi:type="ecore:EClass" href="EssentialOCL.ecore#EssentialOCL.OclExpression"/>
</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" containment="true" resolveProxies="false">
<eType xsi:type="ecore:EClass" href="EssentialOCL.ecore#EssentialOCL.OclExpression"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.CatchExp.exception" name="exception" upperBound="-1">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="tryExpression"/>
</eAnnotations>
<eType xsi:type="ecore:EClass" href="EMOF.ecore#EMOF.Type"/>
</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" containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="computeOwner"/>
</eAnnotations>
<eType xsi:type="ecore:EClass" href="EssentialOCL.ecore#EssentialOCL.OclExpression"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.ComputeExp.returnedElement" name="returnedElement" lowerBound="1" containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="computeOwner"/>
</eAnnotations>
<eType xsi:type="ecore:EClass" href="EssentialOCL.ecore#EssentialOCL.Variable"/>
</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 href="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">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="partOwner"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="ImperativeOCL.DictLiteralPart" name="DictLiteralPart">
<eSuperTypes href="EMOF.ecore#EMOF.Element"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.DictLiteralPart.key" name="key" lowerBound="1" containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="keyOwner"/>
</eAnnotations>
<eType xsi:type="ecore:EClass" href="EssentialOCL.ecore#EssentialOCL.OclExpression"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.DictLiteralPart.value" name="value" lowerBound="1" containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="valOwner"/>
</eAnnotations>
<eType xsi:type="ecore:EClass" href="EssentialOCL.ecore#EssentialOCL.OclExpression"/>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="ImperativeOCL.DictionaryType" name="DictionaryType">
<eSuperTypes href="EssentialOCL.ecore#EssentialOCL.CollectionType"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.DictionaryType.keyType" name="keyType">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="keyDict"/>
</eAnnotations>
<eType xsi:type="ecore:EClass" href="EMOF.ecore#EMOF.Type"/>
</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 href="EssentialOCL.ecore#EssentialOCL.OclExpression"/>
</eClassifiers>
<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" containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="tgtOwner"/>
</eAnnotations>
<eType xsi:type="ecore:EClass" href="EssentialOCL.ecore#EssentialOCL.Variable"/>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="ImperativeOCL.ImperativeLoopExp" name="ImperativeLoopExp" abstract="true">
<eSuperTypes href="EssentialOCL.ecore#EssentialOCL.LoopExp"/>
<eSuperTypes href="#ImperativeOCL.ImperativeExpression"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.ImperativeLoopExp.condition" name="condition" containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="loopCondOwner"/>
</eAnnotations>
<eType xsi:type="ecore:EClass" href="EssentialOCL.ecore#EssentialOCL.OclExpression"/>
</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" containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="argOwner"/>
</eAnnotations>
<eType xsi:type="ecore:EClass" href="EssentialOCL.ecore#EssentialOCL.OclExpression"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.InstantiationExp.extent" name="extent">
<eType xsi:type="ecore:EClass" href="EssentialOCL.ecore#EssentialOCL.Variable"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.InstantiationExp.instantiatedClass" name="instantiatedClass" lowerBound="1">
<eType xsi:type="ecore:EClass" href="EMOF.ecore#EMOF.Class"/>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="ImperativeOCL.ListLiteralExp" name="ListLiteralExp">
<eSuperTypes href="EssentialOCL.ecore#EssentialOCL.LiteralExp"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.ListLiteralExp.element" name="element" upperBound="-1" containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="elementOwner"/>
</eAnnotations>
<eType xsi:type="ecore:EClass" href="EssentialOCL.ecore#EssentialOCL.OclExpression"/>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="ImperativeOCL.ListType" name="ListType">
<eSuperTypes href="EssentialOCL.ecore#EssentialOCL.CollectionType"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="ImperativeOCL.LogExp" name="LogExp">
<eSuperTypes href="EssentialOCL.ecore#EssentialOCL.OperationCallExp"/>
<eSuperTypes href="#ImperativeOCL.ImperativeExpression"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.LogExp.condition" name="condition" containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="logOwner"/>
</eAnnotations>
<eType xsi:type="ecore:EClass" href="EssentialOCL.ecore#EssentialOCL.OclExpression"/>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="ImperativeOCL.OrderedTupleLiteralExp" name="OrderedTupleLiteralExp">
<eSuperTypes href="EssentialOCL.ecore#EssentialOCL.LiteralExp"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.OrderedTupleLiteralExp.part" name="part" upperBound="-1" eType="ImperativeOCL.OrderedTupleLiteralPart" containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="partOwner"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="ImperativeOCL.OrderedTupleLiteralPart" name="OrderedTupleLiteralPart">
<eSuperTypes href="EMOF.ecore#EMOF.Element"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.OrderedTupleLiteralPart.value" name="value" lowerBound="1" containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="tupValOwner"/>
</eAnnotations>
<eType xsi:type="ecore:EClass" href="EssentialOCL.ecore#EssentialOCL.OclExpression"/>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="ImperativeOCL.OrderedTupleType" name="OrderedTupleType">
<eSuperTypes href="EMOF.ecore#EMOF.Class"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.OrderedTupleType.elementType" name="elementType" upperBound="-1">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="eltTuple"/>
</eAnnotations>
<eType xsi:type="ecore:EClass" href="EMOF.ecore#EMOF.Type"/>
</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" containment="true" resolveProxies="false">
<eType xsi:type="ecore:EClass" href="EssentialOCL.ecore#EssentialOCL.OclExpression"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.RaiseExp.exception" name="exception" lowerBound="1">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="raiseExpression"/>
</eAnnotations>
<eType xsi:type="ecore:EClass" href="EMOF.ecore#EMOF.Type"/>
</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" containment="true" resolveProxies="false">
<eType xsi:type="ecore:EClass" href="EssentialOCL.ecore#EssentialOCL.OclExpression"/>
</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" containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="elsePartOwner"/>
</eAnnotations>
<eType xsi:type="ecore:EClass" href="EssentialOCL.ecore#EssentialOCL.OclExpression"/>
</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" containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="tryBodyOwner"/>
</eAnnotations>
<eType xsi:type="ecore:EClass" href="EssentialOCL.ecore#EssentialOCL.OclExpression"/>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="ImperativeOCL.Typedef" name="Typedef">
<eSuperTypes href="EMOF.ecore#EMOF.Class"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.Typedef.base" name="base" lowerBound="1">
<eType xsi:type="ecore:EClass" href="EMOF.ecore#EMOF.Type"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.Typedef.condition" name="condition" containment="true" resolveProxies="false">
<eType xsi:type="ecore:EClass" href="EssentialOCL.ecore#EssentialOCL.OclExpression"/>
</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" containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="itemUnlink"/>
</eAnnotations>
<eType xsi:type="ecore:EClass" href="EssentialOCL.ecore#EssentialOCL.OclExpression"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.UnlinkExp.target" name="target" lowerBound="1" containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="tgtUnlink"/>
</eAnnotations>
<eType xsi:type="ecore:EClass" href="EssentialOCL.ecore#EssentialOCL.OclExpression"/>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="ImperativeOCL.UnpackExp" name="UnpackExp" eSuperTypes="ImperativeOCL.ImperativeExpression">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.UnpackExp.source" name="source" lowerBound="1" containment="true" resolveProxies="false">
<eType xsi:type="ecore:EClass" href="EssentialOCL.ecore#EssentialOCL.OclExpression"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.UnpackExp.targetVariable" name="targetVariable" lowerBound="1" upperBound="-1">
<eType xsi:type="ecore:EClass" href="EssentialOCL.ecore#EssentialOCL.Variable"/>
</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" containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="declaration"/>
</eAnnotations>
<eType xsi:type="ecore:EClass" href="EssentialOCL.ecore#EssentialOCL.Variable"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="ImperativeOCL.VariableInitExp.withResult" name="withResult" defaultValueLiteral="false">
<eType xsi:type="ecore:EDataType" href="EMOF.ecore#PrimitiveTypes.Boolean"/>
</eStructuralFeatures>
</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" containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="whileOwner"/>
</eAnnotations>
<eType xsi:type="ecore:EClass" href="EssentialOCL.ecore#EssentialOCL.OclExpression"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.WhileExp.condition" name="condition" lowerBound="1" containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="whileExpression"/>
</eAnnotations>
<eType xsi:type="ecore:EClass" href="EssentialOCL.ecore#EssentialOCL.OclExpression"/>
</eStructuralFeatures>
</eClassifiers>
</ecore:EPackage>