blob: 2cf8293282c5b6e4c22adffbf25e4159e9a8077e [file] [log] [blame]
<?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="QVTRelation"
nsURI="http://www.eclipse.org/qvt/1.0/QVTRelation" nsPrefix="eqvtr">
<eClassifiers xsi:type="ecore:EClass" name="DomainPattern" eSuperTypes="../../org.eclipse.qvt.declarative.ecore.qvtbase/model/QVTBase.ecore#//Pattern">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
<details key="constraints" value="EveryVariableIsDefinedByRelation&#xD;&#xA;RootTemplateExpressionIsBoundToRootVariable&#xD;&#xA;RootTemplateExpressionTypeIsRootVariableType&#xD;&#xA;"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="templateExpression" eType="ecore:EClass ../../org.eclipse.qvt.declarative.ecore.qvttemplate/model/QVTTemplate.ecore#//TemplateExp"
containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Key" eSuperTypes="../../org.eclipse.emf.ecore/model/Ecore.ecore#//EModelElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
<details key="constraints" value="AtLeastOnePart&#xD;&#xA;IdentifiesTypeIsDeclaredByTransformation&#xD;&#xA;EveryPartIsDeclaredByIdentifies&#xD;&#xA;EveryOppositePartReferencesIdentifies&#xD;&#xA;"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="identifies" lowerBound="1"
eType="ecore:EClass ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="part" ordered="false" upperBound="-1"
eType="ecore:EClass ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EStructuralFeature"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="transformation" eType="#//RelationalTransformation"
transient="true" eOpposite="#//RelationalTransformation/ownedKey"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="oppositePart" ordered="false"
upperBound="-1" eType="ecore:EClass ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EReference">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="oppositeKey"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="OppositePropertyCallExp" eSuperTypes="../../org.eclipse.ocl.ecore/model/OCLEcore.ecore#//ecore/PropertyCallExp">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
<details key="constraints" value="PropertyIsReference&#xD;&#xA;PropertyIsUnidirectional"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Relation" eSuperTypes="../../org.eclipse.qvt.declarative.ecore.qvtbase/model/QVTBase.ecore#//Rule">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
<details key="constraints" value="AtLeastTwoDomains&#xD;&#xA;DomainTypedModelsMatchModelParameters&#xD;&#xA;EveryDomainIsARelationDomain&#xD;&#xA;NonTopLevelIsNotInvokedWarning&#xD;&#xA;RelationImplsAreUniqueWarning&#xD;&#xA;VariablesAreUnique&#xD;&#xA;WhenTypesAreDeclaredByRelation&#xD;&#xA;WhenVariablesAreDefinedByRelation&#xD;&#xA;WhereTypesAreDeclaredByRelation&#xD;&#xA;WhereVariablesAreDefinedByRelation&#xD;&#xA;"/>
</eAnnotations>
<eOperations name="getRelationalTransformation" lowerBound="1" eType="#//RelationalTransformation"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="isTopLevel" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
unsettable="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="variable" ordered="false"
upperBound="-1" eType="ecore:EClass ../../org.eclipse.ocl.ecore/model/OCLEcore.ecore#//ecore/Variable"
containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="operationalImpl" ordered="false"
upperBound="-1" eType="#//RelationImplementation" containment="true" eOpposite="#//RelationImplementation/relation"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="when" eType="ecore:EClass ../../org.eclipse.qvt.declarative.ecore.qvtbase/model/QVTBase.ecore#//Pattern"
containment="true">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="whenOwner"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="where" eType="ecore:EClass ../../org.eclipse.qvt.declarative.ecore.qvtbase/model/QVTBase.ecore#//Pattern"
containment="true">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="whereOwner"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="RelationDomain" eSuperTypes="../../org.eclipse.qvt.declarative.ecore.qvtbase/model/QVTBase.ecore#//Domain">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
<details key="constraints" value="WellFormedName&#xD;&#xA;TypedModelExistsWarning&#xD;&#xA;PrimitiveDomainIsUnnamed&#xD;&#xA;RootVariableIsDefinedByRelation&#xD;&#xA;RootVariableTypeIsDeclaredByDomainTypedModel&#xD;&#xA;EveryEnforceableVariableIsMatchedOrAssigned&#xD;&#xA;"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="pattern" eType="#//DomainPattern"
containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="rootVariable" lowerBound="1"
eType="ecore:EClass ../../org.eclipse.ocl.ecore/model/OCLEcore.ecore#//ecore/Variable"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="defaultAssignment" ordered="false"
upperBound="-1" eType="#//RelationDomainAssignment" containment="true">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="owner"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="RelationDomainAssignment" eSuperTypes="../../org.eclipse.emf.ecore/model/Ecore.ecore#//EModelElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
<details key="constraints" value="VariableDefinedByRelation&#xD;&#xA;VariableTypeMatchesValueType&#xD;&#xA;"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="variable" lowerBound="1"
eType="ecore:EClass ../../org.eclipse.ocl.ecore/model/OCLEcore.ecore#//ecore/Variable">
<eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
<details key="body" value="domainAssignment"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="valueExp" 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="domainAssignment"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="RelationImplementation" eSuperTypes="../../org.eclipse.emf.ecore/model/Ecore.ecore#//EModelElement">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
<details key="constraints" value="InDirectionOfIsDefinedByTransformation&#xD;&#xA;EveryParameterTypeMatchesDomainRootVariableType&#xD;&#xA;"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="relation" eType="#//Relation"
transient="true" eOpposite="#//Relation/operationalImpl"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="impl" lowerBound="1" eType="ecore:EClass ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EOperation"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="inDirectionOf" lowerBound="1"
eType="ecore:EClass ../../org.eclipse.qvt.declarative.ecore.qvtbase/model/QVTBase.ecore#//TypedModel"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="RelationCallExp" eSuperTypes="../../org.eclipse.ocl.ecore/model/OCLEcore.ecore#//ecore/OCLExpression">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
<details key="constraints" value="PatternExists&#xD;&#xA;RelationExists&#xD;&#xA;InvokedFromWhenOrWhereClause&#xD;&#xA;ReferredRelationDeclaredByTransformation&#xD;&#xA;ReferredRelationArgumentNumberMatches&#xD;&#xA;EveryWhenReferredRelationArgumentTypeMatches&#xD;&#xA;EveryWhereReferredRelationArgumentTypeIsMatchableWarning&#xD;&#xA;TypeIsBoolean&#xD;&#xA;"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="argument" lowerBound="2"
upperBound="-1" eType="ecore:EClass ../../org.eclipse.ocl.ecore/model/OCLEcore.ecore#//ecore/OCLExpression"
containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="referredRelation" lowerBound="1"
eType="#//Relation"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="RelationalTransformation" eSuperTypes="../../org.eclipse.qvt.declarative.ecore.qvtbase/model/QVTBase.ecore#//Transformation">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
<details key="constraints" value="UniqueClassifierNames&#xD;&#xA;EveryRuleIsARelation&#xD;&#xA;KeysAreUnique"/>
</eAnnotations>
<eOperations name="getRelation" lowerBound="1" eType="#//Relation">
<eParameters name="name" lowerBound="1" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EReference" name="ownedKey" ordered="false"
upperBound="-1" eType="#//Key" containment="true" eOpposite="#//Key/transformation"/>
</eClassifiers>
</ecore:EPackage>