blob: f9cfb11b0d3ec06dfe357772ef8f950e9fd6d29d [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://www.eclipse.org/qvt/pivot/1.0/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 ../../org.eclipse.ocl.pivot/model/Pivot.ecore#//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 ../../org.eclipse.ocl.pivot/model/Pivot.ecore#//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 ../../org.eclipse.ocl.pivot/model/Pivot.ecore#//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"/>
<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 ../../org.eclipse.ocl.pivot/model/Pivot.ecore#//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 ../../org.eclipse.ocl.pivot/model/Pivot.ecore#//Boolean"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.AssignExp.left"
name="left" lowerBound="1" eType="ecore:EClass ../../org.eclipse.ocl.pivot/model/Pivot.ecore#//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 ../../org.eclipse.ocl.pivot/model/Pivot.ecore#//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 ../../org.eclipse.ocl.pivot/model/Pivot.ecore#//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 ../../org.eclipse.ocl.pivot/model/Pivot.ecore#//OCLExpression"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.CatchExp.exception"
name="exception" upperBound="-1" eType="ecore:EClass ../../org.eclipse.ocl.pivot/model/Pivot.ecore#//Type">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="tryExpression"/>
</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 ../../org.eclipse.ocl.pivot/model/Pivot.ecore#//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 ../../org.eclipse.ocl.pivot/model/Pivot.ecore#//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="../../org.eclipse.ocl.pivot/model/Pivot.ecore#//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="../../org.eclipse.ocl.pivot/model/Pivot.ecore#//Element">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.DictLiteralPart.key"
name="key" lowerBound="1" eType="ecore:EClass ../../org.eclipse.ocl.pivot/model/Pivot.ecore#//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 ../../org.eclipse.ocl.pivot/model/Pivot.ecore#//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>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="ImperativeOCL.DictionaryType" name="DictionaryType"
eSuperTypes="../../org.eclipse.ocl.pivot/model/Pivot.ecore#//CollectionType">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.DictionaryType.keyType"
name="keyType" eType="ecore:EClass ../../org.eclipse.ocl.pivot/model/Pivot.ecore#//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="../../org.eclipse.ocl.pivot/model/Pivot.ecore#//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 ../../org.eclipse.ocl.pivot/model/Pivot.ecore#//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="../../org.eclipse.ocl.pivot/model/Pivot.ecore#//LoopExp #ImperativeOCL.ImperativeExpression">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.ImperativeLoopExp.condition"
name="condition" eType="ecore:EClass ../../org.eclipse.ocl.pivot/model/Pivot.ecore#//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 ../../org.eclipse.ocl.pivot/model/Pivot.ecore#//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 ../../org.eclipse.ocl.pivot/model/Pivot.ecore#//Variable"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.InstantiationExp.instantiatedClass"
name="instantiatedClass" lowerBound="1" eType="ecore:EClass ../../org.eclipse.ocl.pivot/model/Pivot.ecore#//Class"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="ImperativeOCL.ListLiteralExp" name="ListLiteralExp"
eSuperTypes="../../org.eclipse.ocl.pivot/model/Pivot.ecore#//LiteralExp">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.ListLiteralExp.element"
name="element" upperBound="-1" eType="ecore:EClass ../../org.eclipse.ocl.pivot/model/Pivot.ecore#//OCLExpression"
containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="elementOwner"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="ImperativeOCL.ListType" name="ListType"
eSuperTypes="../../org.eclipse.ocl.pivot/model/Pivot.ecore#//CollectionType"/>
<eClassifiers xsi:type="ecore:EClass" xmi:id="ImperativeOCL.LogExp" name="LogExp"
eSuperTypes="../../org.eclipse.ocl.pivot/model/Pivot.ecore#//OperationCallExp #ImperativeOCL.ImperativeExpression">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.LogExp.condition"
name="condition" eType="ecore:EClass ../../org.eclipse.ocl.pivot/model/Pivot.ecore#//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.OrderedTupleLiteralExp"
name="OrderedTupleLiteralExp" eSuperTypes="../../org.eclipse.ocl.pivot/model/Pivot.ecore#//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="../../org.eclipse.ocl.pivot/model/Pivot.ecore#//Element">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.OrderedTupleLiteralPart.value"
name="value" lowerBound="1" eType="ecore:EClass ../../org.eclipse.ocl.pivot/model/Pivot.ecore#//OCLExpression"
containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="tupValOwner"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="ImperativeOCL.OrderedTupleType" name="OrderedTupleType"
eSuperTypes="../../org.eclipse.ocl.pivot/model/Pivot.ecore#//Class">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.OrderedTupleType.elementType"
name="elementType" upperBound="-1" eType="ecore:EClass ../../org.eclipse.ocl.pivot/model/Pivot.ecore#//Type">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="eltTuple"/>
</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 ../../org.eclipse.ocl.pivot/model/Pivot.ecore#//OCLExpression"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.RaiseExp.exception"
name="exception" lowerBound="1" eType="ecore:EClass ../../org.eclipse.ocl.pivot/model/Pivot.ecore#//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 ../../org.eclipse.ocl.pivot/model/Pivot.ecore#//OCLExpression"
containment="true" resolveProxies="false"/>
</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 ../../org.eclipse.ocl.pivot/model/Pivot.ecore#//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 ../../org.eclipse.ocl.pivot/model/Pivot.ecore#//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="../../org.eclipse.ocl.pivot/model/Pivot.ecore#//Class">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.Typedef.base"
name="base" lowerBound="1" eType="ecore:EClass ../../org.eclipse.ocl.pivot/model/Pivot.ecore#//Type"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.Typedef.condition"
name="condition" eType="ecore:EClass ../../org.eclipse.ocl.pivot/model/Pivot.ecore#//OCLExpression"
containment="true" resolveProxies="false"/>
</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 ../../org.eclipse.ocl.pivot/model/Pivot.ecore#//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 ../../org.eclipse.ocl.pivot/model/Pivot.ecore#//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.UnpackExp" name="UnpackExp"
eSuperTypes="#ImperativeOCL.ImperativeExpression">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.UnpackExp.source"
name="source" lowerBound="1" eType="ecore:EClass ../../org.eclipse.ocl.pivot/model/Pivot.ecore#//OCLExpression"
containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="ImperativeOCL.UnpackExp.targetVariable"
name="targetVariable" lowerBound="1" upperBound="-1" eType="ecore:EClass ../../org.eclipse.ocl.pivot/model/Pivot.ecore#//Variable"/>
</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 ../../org.eclipse.ocl.pivot/model/Pivot.ecore#//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 ../../org.eclipse.ocl.pivot/model/Pivot.ecore#//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 ../../org.eclipse.ocl.pivot/model/Pivot.ecore#//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 ../../org.eclipse.ocl.pivot/model/Pivot.ecore#//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>