| <?xml version="1.0" encoding="UTF-8"?> |
| <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" name="ImperativeOCL" |
| nsURI="http://www.eclipse.org/qvt/1.0/ImperativeOCL" nsPrefix="eimpocl"> |
| <eClassifiers xsi:type="ecore:EClass" name="AltExp" eSuperTypes="#//ImperativeExpression"> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="body" lowerBound="1" eType="ecore:EClass ../../org.eclipse.ocl.ecore/model/OCLEcore.ecore#//ecore/OCLExpression" |
| containment="true"> |
| <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" name="condition" lowerBound="1" |
| eType="ecore:EClass ../../org.eclipse.ocl.ecore/model/OCLEcore.ecore#//ecore/OCLExpression" |
| containment="true"> |
| <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" name="AssertExp" eSuperTypes="#//ImperativeExpression"> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="assertion" lowerBound="1" |
| eType="ecore:EClass ../../org.eclipse.ocl.ecore/model/OCLEcore.ecore#//ecore/OCLExpression" |
| containment="true"> |
| <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" name="log" eType="#//LogExp" |
| containment="true"/> |
| <eStructuralFeatures xsi:type="ecore:EAttribute" name="severity" eType="#//SeverityKind" |
| defaultValueLiteral="error"/> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="AssignExp" eSuperTypes="#//ImperativeExpression"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> |
| <details key="constraints" value="WellFormedLeftExp checkLeftAndValueExpConformance"/> |
| </eAnnotations> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="defaultValue" eType="ecore:EClass ../../org.eclipse.ocl.ecore/model/OCLEcore.ecore#//ecore/OCLExpression" |
| containment="true"> |
| <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" name="isReset" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean" |
| unsettable="true"/> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="left" lowerBound="1" eType="ecore:EClass ../../org.eclipse.ocl.ecore/model/OCLEcore.ecore#//ecore/OCLExpression" |
| containment="true"> |
| <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" name="value" upperBound="-1" |
| eType="ecore:EClass ../../org.eclipse.ocl.ecore/model/OCLEcore.ecore#//ecore/OCLExpression" |
| containment="true"> |
| <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" name="BlockExp" eSuperTypes="#//ImperativeExpression"> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="body" upperBound="-1" eType="ecore:EClass ../../org.eclipse.ocl.ecore/model/OCLEcore.ecore#//ecore/OCLExpression" |
| containment="true"> |
| <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" name="BreakExp" eSuperTypes="#//ImperativeExpression"/> |
| <eClassifiers xsi:type="ecore:EClass" name="CatchExp" eSuperTypes="#//ImperativeExpression"> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="body" upperBound="-1" eType="ecore:EClass ../../org.eclipse.ocl.ecore/model/OCLEcore.ecore#//ecore/OCLExpression" |
| containment="true"/> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="exception" upperBound="-1" |
| eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EClassifier"> |
| <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" name="ComputeExp" eSuperTypes="#//ImperativeExpression"> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="body" lowerBound="1" eType="ecore:EClass ../../org.eclipse.ocl.ecore/model/OCLEcore.ecore#//ecore/OCLExpression" |
| containment="true"> |
| <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" name="returnedElement" lowerBound="1" |
| eType="ecore:EClass ../../org.eclipse.ocl.ecore/model/OCLEcore.ecore#//ecore/Variable" |
| containment="true"> |
| <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" name="ContinueExp" eSuperTypes="#//ImperativeExpression"/> |
| <eClassifiers xsi:type="ecore:EClass" name="DictLiteralExp" eSuperTypes="../../org.eclipse.ocl.ecore/model/OCLEcore.ecore#//ecore/LiteralExp"> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="part" ordered="false" upperBound="-1" |
| eType="#//DictLiteralPart" containment="true"> |
| <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" name="DictLiteralPart" eSuperTypes="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EModelElement"> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="key" lowerBound="1" eType="ecore:EClass ../../org.eclipse.ocl.ecore/model/OCLEcore.ecore#//ecore/OCLExpression" |
| containment="true"> |
| <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" name="value" lowerBound="1" eType="ecore:EClass ../../org.eclipse.ocl.ecore/model/OCLEcore.ecore#//ecore/OCLExpression" |
| containment="true"> |
| <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" name="DictionaryType" eSuperTypes="../../org.eclipse.ocl.ecore/model/OCLEcore.ecore#//ecore/CollectionType"> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="keyType" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EClassifier"> |
| <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" name="ForExp" eSuperTypes="#//ImperativeLoopExp"/> |
| <eClassifiers xsi:type="ecore:EClass" name="ImperativeExpression" abstract="true" |
| eSuperTypes="../../org.eclipse.ocl.ecore/model/OCLEcore.ecore#//ecore/OCLExpression"/> |
| <eClassifiers xsi:type="ecore:EClass" name="ImperativeIterateExp" eSuperTypes="#//ImperativeLoopExp"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> |
| <details key="constraints" value="WellFormedName WellFormedTargetVar WellFormedBody WellFormedCondition"/> |
| </eAnnotations> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="target" eType="ecore:EClass ../../org.eclipse.ocl.ecore/model/OCLEcore.ecore#//ecore/Variable" |
| containment="true"> |
| <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" name="ImperativeLoopExp" abstract="true" eSuperTypes="../../org.eclipse.ocl.ecore/model/OCLEcore.ecore#//ecore/LoopExp #//ImperativeExpression"> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="condition" eType="ecore:EClass ../../org.eclipse.ocl.ecore/model/OCLEcore.ecore#//ecore/OCLExpression" |
| containment="true"> |
| <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" name="InstantiationExp" eSuperTypes="#//ImperativeExpression"> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="argument" upperBound="-1" |
| eType="ecore:EClass ../../org.eclipse.ocl.ecore/model/OCLEcore.ecore#//ecore/OCLExpression" |
| containment="true"> |
| <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" name="extent" eType="ecore:EClass ../../org.eclipse.ocl.ecore/model/OCLEcore.ecore#//ecore/Variable"/> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="instantiatedClass" lowerBound="1" |
| eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EClass"/> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="ListLiteralExp" eSuperTypes="../../org.eclipse.ocl.ecore/model/OCLEcore.ecore#//ecore/LiteralExp"> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="element" upperBound="-1" |
| eType="ecore:EClass ../../org.eclipse.ocl.ecore/model/OCLEcore.ecore#//ecore/OCLExpression" |
| containment="true"> |
| <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" name="ListType" eSuperTypes="../../org.eclipse.ocl.ecore/model/OCLEcore.ecore#//ecore/CollectionType"/> |
| <eClassifiers xsi:type="ecore:EClass" name="LogExp" eSuperTypes="../../org.eclipse.ocl.ecore/model/OCLEcore.ecore#//ecore/OperationCallExp #//ImperativeExpression"> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="condition" eType="ecore:EClass ../../org.eclipse.ocl.ecore/model/OCLEcore.ecore#//ecore/OCLExpression" |
| containment="true"> |
| <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" name="OrderedTupleLiteralExp" eSuperTypes="../../org.eclipse.ocl.ecore/model/OCLEcore.ecore#//ecore/LiteralExp"> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="part" upperBound="-1" eType="#//OrderedTupleLiteralPart" |
| containment="true"> |
| <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" name="OrderedTupleLiteralPart" eSuperTypes="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EModelElement"> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="value" lowerBound="1" eType="ecore:EClass ../../org.eclipse.ocl.ecore/model/OCLEcore.ecore#//ecore/OCLExpression" |
| containment="true"> |
| <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" name="OrderedTupleType" eSuperTypes="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EClass"> |
| <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> |
| <details key="constraints" value="WellFormedName"/> |
| </eAnnotations> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="elementType" upperBound="-1" |
| eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EClassifier"> |
| <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" name="RaiseExp" eSuperTypes="#//ImperativeExpression"> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="argument" eType="ecore:EClass ../../org.eclipse.ocl.ecore/model/OCLEcore.ecore#//ecore/OCLExpression" |
| containment="true"/> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="exception" lowerBound="1" |
| eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EClassifier"> |
| <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" name="ReturnExp" eSuperTypes="#//ImperativeExpression"> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="value" eType="ecore:EClass ../../org.eclipse.ocl.ecore/model/OCLEcore.ecore#//ecore/OCLExpression" |
| containment="true"/> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EEnum" name="SeverityKind"> |
| <eLiterals name="error"/> |
| <eLiterals name="warning" value="1"/> |
| <eLiterals name="fatal" value="2"/> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="SwitchExp" eSuperTypes="#//ImperativeExpression"> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="alternativePart" upperBound="-1" |
| eType="#//AltExp" containment="true"> |
| <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" name="elsePart" eType="ecore:EClass ../../org.eclipse.ocl.ecore/model/OCLEcore.ecore#//ecore/OCLExpression" |
| containment="true"> |
| <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" name="TryExp" eSuperTypes="#//ImperativeExpression"> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="exceptClause" upperBound="-1" |
| eType="#//CatchExp" containment="true"> |
| <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" name="tryBody" upperBound="-1" |
| eType="ecore:EClass ../../org.eclipse.ocl.ecore/model/OCLEcore.ecore#//ecore/OCLExpression" |
| containment="true"> |
| <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" name="Typedef" eSuperTypes="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EClass"> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="base" lowerBound="1" eType="ecore:EClass platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EClassifier"/> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="condition" eType="ecore:EClass ../../org.eclipse.ocl.ecore/model/OCLEcore.ecore#//ecore/OCLExpression" |
| containment="true"/> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="UnlinkExp" eSuperTypes="#//ImperativeExpression"> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="item" lowerBound="1" eType="ecore:EClass ../../org.eclipse.ocl.ecore/model/OCLEcore.ecore#//ecore/OCLExpression" |
| containment="true"> |
| <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" name="target" lowerBound="1" |
| eType="ecore:EClass ../../org.eclipse.ocl.ecore/model/OCLEcore.ecore#//ecore/OCLExpression" |
| containment="true"> |
| <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" name="UnpackExp" eSuperTypes="#//ImperativeExpression"> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="source" lowerBound="1" |
| eType="ecore:EClass ../../org.eclipse.ocl.ecore/model/OCLEcore.ecore#//ecore/OCLExpression" |
| containment="true"/> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="targetVariable" lowerBound="1" |
| upperBound="-1" eType="ecore:EClass ../../org.eclipse.ocl.ecore/model/OCLEcore.ecore#//ecore/Variable"/> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="VariableInitExp" eSuperTypes="#//ImperativeExpression"> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="referredVariable" lowerBound="1" |
| eType="ecore:EClass ../../org.eclipse.ocl.ecore/model/OCLEcore.ecore#//ecore/Variable" |
| containment="true"> |
| <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" name="withResult" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean" |
| defaultValueLiteral="false"/> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="WhileExp" eSuperTypes="#//ImperativeExpression"> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="body" lowerBound="1" eType="ecore:EClass ../../org.eclipse.ocl.ecore/model/OCLEcore.ecore#//ecore/OCLExpression" |
| containment="true"> |
| <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" name="condition" lowerBound="1" |
| eType="ecore:EClass ../../org.eclipse.ocl.ecore/model/OCLEcore.ecore#//ecore/OCLExpression" |
| containment="true"> |
| <eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"> |
| <details key="body" value="whileExpression"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| </eClassifiers> |
| </ecore:EPackage> |