<?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
RootTemplateExpressionIsBoundToRootVariable
RootTemplateExpressionTypeIsRootVariableType
"/> | |
</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
IdentifiesTypeIsDeclaredByTransformation
EveryPartIsDeclaredByIdentifies
EveryOppositePartReferencesIdentifies
"/> | |
</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
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
DomainTypedModelsMatchModelParameters
EveryDomainIsARelationDomain
NonTopLevelIsNotInvokedWarning
RelationImplsAreUniqueWarning
VariablesAreUnique
WhenTypesAreDeclaredByRelation
WhenVariablesAreDefinedByRelation
WhereTypesAreDeclaredByRelation
WhereVariablesAreDefinedByRelation
"/> | |
</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
TypedModelExistsWarning
PrimitiveDomainIsUnnamed
RootVariableIsDefinedByRelation
RootVariableTypeIsDeclaredByDomainTypedModel
EveryEnforceableVariableIsMatchedOrAssigned
"/> | |
</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
VariableTypeMatchesValueType
"/> | |
</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
EveryParameterTypeMatchesDomainRootVariableType
"/> | |
</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
RelationExists
InvokedFromWhenOrWhereClause
ReferredRelationDeclaredByTransformation
ReferredRelationArgumentNumberMatches
EveryWhenReferredRelationArgumentTypeMatches
EveryWhereReferredRelationArgumentTypeIsMatchableWarning
TypeIsBoolean
"/> | |
</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
EveryRuleIsARelation
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> |