blob: 8aa773b376f76d87c32d7d76b8902d1c15260328 [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="EssentialOCL" name="EssentialOCL" nsURI="http://schema.omg.org/spec/QVT/1.1/essentialocl.xml" nsPrefix="essentialocl">
<eClassifiers xsi:type="ecore:EClass" xmi:id="EssentialOCL.AnyType" name="AnyType">
<eSuperTypes href="EMOF.ecore#EMOF.Type"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="EssentialOCL.BagType" name="BagType" eSuperTypes="EssentialOCL.CollectionType"/>
<eClassifiers xsi:type="ecore:EClass" xmi:id="EssentialOCL.BooleanLiteralExp" name="BooleanLiteralExp" eSuperTypes="EssentialOCL.PrimitiveLiteralExp">
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="EssentialOCL.BooleanLiteralExp.booleanSymbol" name="booleanSymbol">
<eType xsi:type="ecore:EDataType" href="EMOF.ecore#PrimitiveTypes.Boolean"/>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="EssentialOCL.CallExp" name="CallExp" abstract="true" eSuperTypes="EssentialOCL.OclExpression">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="EssentialOCL.CallExp.source" name="source" eType="EssentialOCL.OclExpression" containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="appliedElement"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="EssentialOCL.CollectionItem" name="CollectionItem" eSuperTypes="EssentialOCL.CollectionLiteralPart">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="EssentialOCL.CollectionItem.item" name="item" lowerBound="1" eType="EssentialOCL.OclExpression" containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" xmi:id="EssentialOCL.CollectionKind" name="CollectionKind">
<eLiterals xmi:id="EssentialOCL.CollectionKind.Set" name="Set"/>
<eLiterals xmi:id="EssentialOCL.CollectionKind.OrderedSet" name="OrderedSet" value="1"/>
<eLiterals xmi:id="EssentialOCL.CollectionKind.Bag" name="Bag" value="2"/>
<eLiterals xmi:id="EssentialOCL.CollectionKind.Sequence" name="Sequence" value="3"/>
<eLiterals xmi:id="EssentialOCL.CollectionKind.Collection" name="Collection" value="4"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="EssentialOCL.CollectionLiteralExp" name="CollectionLiteralExp" eSuperTypes="EssentialOCL.LiteralExp">
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="EssentialOCL.CollectionLiteralExp.kind" name="kind" eType="EssentialOCL.CollectionKind"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="EssentialOCL.CollectionLiteralExp.part" name="part" ordered="false" upperBound="-1" eType="EssentialOCL.CollectionLiteralPart" containment="true" resolveProxies="false" eOpposite="EssentialOCL.CollectionLiteralPart.collectionLiteralExp"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="EssentialOCL.CollectionLiteralPart" name="CollectionLiteralPart" abstract="true">
<eSuperTypes href="EMOF.ecore#EMOF.TypedElement"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="EssentialOCL.CollectionLiteralPart.collectionLiteralExp" name="collectionLiteralExp" lowerBound="1" eType="EssentialOCL.CollectionLiteralExp" transient="true" resolveProxies="false" eOpposite="EssentialOCL.CollectionLiteralExp.part"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="EssentialOCL.CollectionRange" name="CollectionRange" eSuperTypes="EssentialOCL.CollectionLiteralPart">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="EssentialOCL.CollectionRange.first" name="first" lowerBound="1" eType="EssentialOCL.OclExpression" containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="firstOwner"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="EssentialOCL.CollectionRange.last" name="last" lowerBound="1" eType="EssentialOCL.OclExpression" containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="lastOwner"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="EssentialOCL.CollectionType" name="CollectionType">
<eSuperTypes href="EMOF.ecore#EMOF.DataType"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="EssentialOCL.CollectionType.elementType" name="elementType" lowerBound="1">
<eType xsi:type="ecore:EClass" href="EMOF.ecore#EMOF.Type"/>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="EssentialOCL.EnumLiteralExp" name="EnumLiteralExp" eSuperTypes="EssentialOCL.LiteralExp">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="EssentialOCL.EnumLiteralExp.referredEnumLiteral" name="referredEnumLiteral">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="literalExp"/>
</eAnnotations>
<eType xsi:type="ecore:EClass" href="EMOF.ecore#EMOF.EnumerationLiteral"/>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="EssentialOCL.ExpressionInOcl" name="ExpressionInOcl">
<eSuperTypes href="EMOF.ecore#EMOF.TypedElement"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="EssentialOCL.ExpressionInOcl.bodyExpression" name="bodyExpression" lowerBound="1" eType="EssentialOCL.OclExpression" containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="topExpression"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="EssentialOCL.ExpressionInOcl.contextVariable" name="contextVariable" eType="EssentialOCL.Variable" containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="selfOwner"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="EssentialOCL.ExpressionInOcl.generatedType" name="generatedType" ordered="false" upperBound="-1" containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="owningExpression"/>
</eAnnotations>
<eType xsi:type="ecore:EClass" href="EMOF.ecore#EMOF.Type"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="EssentialOCL.ExpressionInOcl.parameterVariable" name="parameterVariable" ordered="false" upperBound="-1" eType="EssentialOCL.Variable" containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="varOwner"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="EssentialOCL.ExpressionInOcl.resultVariable" name="resultVariable" eType="EssentialOCL.Variable" containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="resultOwner"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="EssentialOCL.FeatureCallExp" name="FeatureCallExp" abstract="true" eSuperTypes="EssentialOCL.CallExp"/>
<eClassifiers xsi:type="ecore:EClass" xmi:id="EssentialOCL.IfExp" name="IfExp" eSuperTypes="EssentialOCL.OclExpression">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="EssentialOCL.IfExp.condition" name="condition" lowerBound="1" eType="EssentialOCL.OclExpression" containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="ifOwner"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="EssentialOCL.IfExp.elseExpression" name="elseExpression" lowerBound="1" eType="EssentialOCL.OclExpression" containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="elseOwner"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="EssentialOCL.IfExp.thenExpression" name="thenExpression" lowerBound="1" eType="EssentialOCL.OclExpression" containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="thenOwner"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="EssentialOCL.IntegerLiteralExp" name="IntegerLiteralExp" eSuperTypes="EssentialOCL.NumericLiteralExp">
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="EssentialOCL.IntegerLiteralExp.integerSymbol" name="integerSymbol">
<eType xsi:type="ecore:EDataType" href="EMOF.ecore#PrimitiveTypes.Integer"/>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="EssentialOCL.InvalidLiteralExp" name="InvalidLiteralExp" eSuperTypes="EssentialOCL.LiteralExp"/>
<eClassifiers xsi:type="ecore:EClass" xmi:id="EssentialOCL.InvalidType" name="InvalidType">
<eSuperTypes href="EMOF.ecore#EMOF.Type"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="EssentialOCL.IterateExp" name="IterateExp" eSuperTypes="EssentialOCL.LoopExp">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="EssentialOCL.IterateExp.result" name="result" eType="EssentialOCL.Variable" containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="baseExp"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="EssentialOCL.IteratorExp" name="IteratorExp" eSuperTypes="EssentialOCL.LoopExp"/>
<eClassifiers xsi:type="ecore:EClass" xmi:id="EssentialOCL.LetExp" name="LetExp" eSuperTypes="EssentialOCL.OclExpression">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="EssentialOCL.LetExp.in" name="in" lowerBound="1" eType="EssentialOCL.OclExpression" containment="true" resolveProxies="false"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="EssentialOCL.LetExp.variable" name="variable" lowerBound="1" eType="EssentialOCL.Variable" containment="true" resolveProxies="false" eOpposite="EssentialOCL.Variable.letExp"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="EssentialOCL.LiteralExp" name="LiteralExp" abstract="true" eSuperTypes="EssentialOCL.OclExpression"/>
<eClassifiers xsi:type="ecore:EClass" xmi:id="EssentialOCL.LoopExp" name="LoopExp" abstract="true" eSuperTypes="EssentialOCL.CallExp EssentialOCL.OclExpression">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="EssentialOCL.LoopExp.body" name="body" lowerBound="1" eType="EssentialOCL.OclExpression" containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="loopBodyOwner"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="EssentialOCL.LoopExp.iterator" name="iterator" upperBound="-1" eType="EssentialOCL.Variable" containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="EssentialOCL.NavigationCallExp" name="NavigationCallExp" eSuperTypes="EssentialOCL.FeatureCallExp"/>
<eClassifiers xsi:type="ecore:EClass" xmi:id="EssentialOCL.NullLiteralExp" name="NullLiteralExp" eSuperTypes="EssentialOCL.LiteralExp"/>
<eClassifiers xsi:type="ecore:EClass" xmi:id="EssentialOCL.NumericLiteralExp" name="NumericLiteralExp" abstract="true" eSuperTypes="EssentialOCL.PrimitiveLiteralExp"/>
<eClassifiers xsi:type="ecore:EClass" xmi:id="EssentialOCL.OclExpression" name="OclExpression" abstract="true">
<eSuperTypes href="EMOF.ecore#EMOF.TypedElement"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="EssentialOCL.OperationCallExp" name="OperationCallExp" eSuperTypes="EssentialOCL.FeatureCallExp">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="EssentialOCL.OperationCallExp.argument" name="argument" upperBound="-1" eType="EssentialOCL.OclExpression" containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="parentCall"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="EssentialOCL.OperationCallExp.referredOperation" name="referredOperation">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="referringExp"/>
</eAnnotations>
<eType xsi:type="ecore:EClass" href="EMOF.ecore#EMOF.Operation"/>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="EssentialOCL.OrderedSetType" name="OrderedSetType" eSuperTypes="EssentialOCL.CollectionType"/>
<eClassifiers xsi:type="ecore:EClass" xmi:id="EssentialOCL.PrimitiveLiteralExp" name="PrimitiveLiteralExp" abstract="true" eSuperTypes="EssentialOCL.LiteralExp"/>
<eClassifiers xsi:type="ecore:EClass" xmi:id="EssentialOCL.PropertyCallExp" name="PropertyCallExp" eSuperTypes="EssentialOCL.NavigationCallExp">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="EssentialOCL.PropertyCallExp.referredProperty" name="referredProperty">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="referringExp"/>
</eAnnotations>
<eType xsi:type="ecore:EClass" href="EMOF.ecore#EMOF.Property"/>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="EssentialOCL.RealLiteralExp" name="RealLiteralExp" eSuperTypes="EssentialOCL.NumericLiteralExp">
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="EssentialOCL.RealLiteralExp.realSymbol" name="realSymbol">
<eType xsi:type="ecore:EDataType" href="EMOF.ecore#PrimitiveTypes.Real"/>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="EssentialOCL.SequenceType" name="SequenceType" eSuperTypes="EssentialOCL.CollectionType"/>
<eClassifiers xsi:type="ecore:EClass" xmi:id="EssentialOCL.SetType" name="SetType" eSuperTypes="EssentialOCL.CollectionType"/>
<eClassifiers xsi:type="ecore:EClass" xmi:id="EssentialOCL.StringLiteralExp" name="StringLiteralExp" eSuperTypes="EssentialOCL.PrimitiveLiteralExp">
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="EssentialOCL.StringLiteralExp.stringSymbol" name="stringSymbol">
<eType xsi:type="ecore:EDataType" href="EMOF.ecore#PrimitiveTypes.String"/>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="EssentialOCL.TemplateParameterType" name="TemplateParameterType">
<eSuperTypes href="EMOF.ecore#EMOF.Type"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="EssentialOCL.TemplateParameterType.specification" name="specification">
<eType xsi:type="ecore:EDataType" href="EMOF.ecore#PrimitiveTypes.String"/>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="EssentialOCL.TupleLiteralExp" name="TupleLiteralExp" eSuperTypes="EssentialOCL.LiteralExp">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="EssentialOCL.TupleLiteralExp.part" name="part" ordered="false" upperBound="-1" eType="EssentialOCL.TupleLiteralPart" containment="true" resolveProxies="false" eOpposite="EssentialOCL.TupleLiteralPart.tupleLiteralExp"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="EssentialOCL.TupleLiteralPart" name="TupleLiteralPart">
<eSuperTypes href="EMOF.ecore#EMOF.TypedElement"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="EssentialOCL.TupleLiteralPart.attribute" name="attribute">
<eType xsi:type="ecore:EClass" href="EMOF.ecore#EMOF.Property"/>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="EssentialOCL.TupleLiteralPart.tupleLiteralExp" name="tupleLiteralExp" eType="EssentialOCL.TupleLiteralExp" transient="true" resolveProxies="false" eOpposite="EssentialOCL.TupleLiteralExp.part"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="EssentialOCL.TupleLiteralPart.value" name="value" lowerBound="1" eType="EssentialOCL.OclExpression" containment="true" resolveProxies="false"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="EssentialOCL.TupleType" name="TupleType">
<eSuperTypes href="EMOF.ecore#EMOF.Class"/>
<eSuperTypes href="EMOF.ecore#EMOF.DataType"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="EssentialOCL.TypeExp" name="TypeExp" eSuperTypes="EssentialOCL.OclExpression">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="EssentialOCL.TypeExp.referredType" name="referredType">
<eType xsi:type="ecore:EClass" href="EMOF.ecore#EMOF.Type"/>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="EssentialOCL.UnlimitedNaturalExp" name="UnlimitedNaturalExp" eSuperTypes="EssentialOCL.NumericLiteralExp">
<eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="EssentialOCL.UnlimitedNaturalExp.symbol" name="symbol">
<eType xsi:type="ecore:EDataType" href="EMOF.ecore#PrimitiveTypes.UnlimitedNatural"/>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="EssentialOCL.Variable" name="Variable">
<eSuperTypes href="EMOF.ecore#EMOF.TypedElement"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="EssentialOCL.Variable.initExpression" name="initExpression" eType="EssentialOCL.OclExpression" containment="true" resolveProxies="false">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="initializedElement"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="EssentialOCL.Variable.letExp" name="letExp" eType="EssentialOCL.LetExp" transient="true" resolveProxies="false" eOpposite="EssentialOCL.LetExp.variable"/>
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="EssentialOCL.Variable.representedParameter" name="representedParameter">
<eType xsi:type="ecore:EClass" href="EMOF.ecore#EMOF.Parameter"/>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="EssentialOCL.VariableExp" name="VariableExp" eSuperTypes="EssentialOCL.OclExpression">
<eStructuralFeatures xsi:type="ecore:EReference" xmi:id="EssentialOCL.VariableExp.referredVariable" name="referredVariable" eType="EssentialOCL.Variable">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="referringExp"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" xmi:id="EssentialOCL.VoidType" name="VoidType">
<eSuperTypes href="EMOF.ecore#EMOF.Type"/>
</eClassifiers>
</ecore:EPackage>