diff options
author | Ed Willink | 2017-07-18 16:08:22 +0000 |
---|---|---|
committer | Ed Willink | 2017-08-04 14:18:04 +0000 |
commit | 7a342222fa723e4a8d6ef7fbcae693e8bf836e90 (patch) | |
tree | daac805cd3da0dc261c41b3b8c3063d16483fb7f | |
parent | 53e7c9e76fb365eba050a33f048838a9abd36618 (diff) | |
download | org.eclipse.qvtd-7a342222fa723e4a8d6ef7fbcae693e8bf836e90.tar.gz org.eclipse.qvtd-7a342222fa723e4a8d6ef7fbcae693e8bf836e90.tar.xz org.eclipse.qvtd-7a342222fa723e4a8d6ef7fbcae693e8bf836e90.zip |
[unrelated] Add two missing QVTr container relationships
12 files changed, 379 insertions, 37 deletions
diff --git a/plugins/org.eclipse.qvtd.pivot.qvtrelation/emf-gen/org/eclipse/qvtd/pivot/qvtrelation/DomainPattern.java b/plugins/org.eclipse.qvtd.pivot.qvtrelation/emf-gen/org/eclipse/qvtd/pivot/qvtrelation/DomainPattern.java index d23090e96..ab7212f56 100644 --- a/plugins/org.eclipse.qvtd.pivot.qvtrelation/emf-gen/org/eclipse/qvtd/pivot/qvtrelation/DomainPattern.java +++ b/plugins/org.eclipse.qvtd.pivot.qvtrelation/emf-gen/org/eclipse/qvtd/pivot/qvtrelation/DomainPattern.java @@ -22,6 +22,7 @@ import org.eclipse.qvtd.pivot.qvttemplate.TemplateExp; * The following features are supported: * </p> * <ul> + * <li>{@link org.eclipse.qvtd.pivot.qvtrelation.DomainPattern#getRelationDomain <em>Relation Domain</em>}</li> * <li>{@link org.eclipse.qvtd.pivot.qvtrelation.DomainPattern#getTemplateExpression <em>Template Expression</em>}</li> * </ul> * @@ -31,6 +32,35 @@ import org.eclipse.qvtd.pivot.qvttemplate.TemplateExp; */ public interface DomainPattern extends Pattern { /** + * Returns the value of the '<em><b>Relation Domain</b></em>' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.pivot.qvtrelation.RelationDomain#getPattern <em>Pattern</em>}'. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Relation Domain</em>' reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Relation Domain</em>' container reference. + * @see #setRelationDomain(RelationDomain) + * @see org.eclipse.qvtd.pivot.qvtrelation.QVTrelationPackage#getDomainPattern_RelationDomain() + * @see org.eclipse.qvtd.pivot.qvtrelation.RelationDomain#getPattern + * @model opposite="pattern" required="true" transient="false" + * annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException(); // FIXME Unimplemented http://www.eclipse.org/qvt/2015/QVTrelation!DomainPattern!relationDomain'" + * @generated + */ + RelationDomain getRelationDomain(); + + /** + * Sets the value of the '{@link org.eclipse.qvtd.pivot.qvtrelation.DomainPattern#getRelationDomain <em>Relation Domain</em>}' container reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Relation Domain</em>' container reference. + * @see #getRelationDomain() + * @generated + */ + void setRelationDomain(RelationDomain value); + + /** * Returns the value of the '<em><b>Template Expression</b></em>' containment reference. * <!-- begin-user-doc --> * <p> diff --git a/plugins/org.eclipse.qvtd.pivot.qvtrelation/emf-gen/org/eclipse/qvtd/pivot/qvtrelation/QVTrelationPackage.java b/plugins/org.eclipse.qvtd.pivot.qvtrelation/emf-gen/org/eclipse/qvtd/pivot/qvtrelation/QVTrelationPackage.java index 1f0bb7b37..ad2078e15 100644 --- a/plugins/org.eclipse.qvtd.pivot.qvtrelation/emf-gen/org/eclipse/qvtd/pivot/qvtrelation/QVTrelationPackage.java +++ b/plugins/org.eclipse.qvtd.pivot.qvtrelation/emf-gen/org/eclipse/qvtd/pivot/qvtrelation/QVTrelationPackage.java @@ -140,13 +140,22 @@ public interface QVTrelationPackage extends EPackage { int DOMAIN_PATTERN__BINDS_TO = QVTbasePackage.PATTERN__BINDS_TO; /** + * The feature id for the '<em><b>Relation Domain</b></em>' container reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int DOMAIN_PATTERN__RELATION_DOMAIN = QVTbasePackage.PATTERN_FEATURE_COUNT + 0; + + /** * The feature id for the '<em><b>Template Expression</b></em>' containment reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int DOMAIN_PATTERN__TEMPLATE_EXPRESSION = QVTbasePackage.PATTERN_FEATURE_COUNT + 0; + int DOMAIN_PATTERN__TEMPLATE_EXPRESSION = QVTbasePackage.PATTERN_FEATURE_COUNT + 1; /** * The number of structural features of the '<em>Domain Pattern</em>' class. @@ -155,7 +164,7 @@ public interface QVTrelationPackage extends EPackage { * @generated * @ordered */ - int DOMAIN_PATTERN_FEATURE_COUNT = QVTbasePackage.PATTERN_FEATURE_COUNT + 1; + int DOMAIN_PATTERN_FEATURE_COUNT = QVTbasePackage.PATTERN_FEATURE_COUNT + 2; /** * The operation id for the '<em>All Owned Elements</em>' operation. @@ -1027,13 +1036,22 @@ public interface QVTrelationPackage extends EPackage { int RELATION_DOMAIN_ASSIGNMENT__OWNED_EXTENSIONS = PivotPackage.ELEMENT__OWNED_EXTENSIONS; /** + * The feature id for the '<em><b>Owner</b></em>' container reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int RELATION_DOMAIN_ASSIGNMENT__OWNER = PivotPackage.ELEMENT_FEATURE_COUNT + 0; + + /** * The feature id for the '<em><b>Value Exp</b></em>' containment reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int RELATION_DOMAIN_ASSIGNMENT__VALUE_EXP = PivotPackage.ELEMENT_FEATURE_COUNT + 0; + int RELATION_DOMAIN_ASSIGNMENT__VALUE_EXP = PivotPackage.ELEMENT_FEATURE_COUNT + 1; /** * The feature id for the '<em><b>Variable</b></em>' reference. @@ -1042,7 +1060,7 @@ public interface QVTrelationPackage extends EPackage { * @generated * @ordered */ - int RELATION_DOMAIN_ASSIGNMENT__VARIABLE = PivotPackage.ELEMENT_FEATURE_COUNT + 1; + int RELATION_DOMAIN_ASSIGNMENT__VARIABLE = PivotPackage.ELEMENT_FEATURE_COUNT + 2; /** * The number of structural features of the '<em>Relation Domain Assignment</em>' class. @@ -1051,7 +1069,7 @@ public interface QVTrelationPackage extends EPackage { * @generated * @ordered */ - int RELATION_DOMAIN_ASSIGNMENT_FEATURE_COUNT = PivotPackage.ELEMENT_FEATURE_COUNT + 2; + int RELATION_DOMAIN_ASSIGNMENT_FEATURE_COUNT = PivotPackage.ELEMENT_FEATURE_COUNT + 3; /** * The operation id for the '<em>All Owned Elements</em>' operation. @@ -2132,6 +2150,17 @@ public interface QVTrelationPackage extends EPackage { EClass getDomainPattern(); /** + * Returns the meta object for the container reference '{@link org.eclipse.qvtd.pivot.qvtrelation.DomainPattern#getRelationDomain <em>Relation Domain</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the container reference '<em>Relation Domain</em>'. + * @see org.eclipse.qvtd.pivot.qvtrelation.DomainPattern#getRelationDomain() + * @see #getDomainPattern() + * @generated + */ + EReference getDomainPattern_RelationDomain(); + + /** * Returns the meta object for the containment reference '{@link org.eclipse.qvtd.pivot.qvtrelation.DomainPattern#getTemplateExpression <em>Template Expression</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -2467,6 +2496,17 @@ public interface QVTrelationPackage extends EPackage { EClass getRelationDomainAssignment(); /** + * Returns the meta object for the container reference '{@link org.eclipse.qvtd.pivot.qvtrelation.RelationDomainAssignment#getOwner <em>Owner</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the container reference '<em>Owner</em>'. + * @see org.eclipse.qvtd.pivot.qvtrelation.RelationDomainAssignment#getOwner() + * @see #getRelationDomainAssignment() + * @generated + */ + EReference getRelationDomainAssignment_Owner(); + + /** * Returns the meta object for the containment reference '{@link org.eclipse.qvtd.pivot.qvtrelation.RelationDomainAssignment#getValueExp <em>Value Exp</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -2635,6 +2675,14 @@ public interface QVTrelationPackage extends EPackage { EClass DOMAIN_PATTERN = eINSTANCE.getDomainPattern(); /** + * The meta object literal for the '<em><b>Relation Domain</b></em>' container reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference DOMAIN_PATTERN__RELATION_DOMAIN = eINSTANCE.getDomainPattern_RelationDomain(); + + /** * The meta object literal for the '<em><b>Template Expression</b></em>' containment reference feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -2901,6 +2949,14 @@ public interface QVTrelationPackage extends EPackage { EClass RELATION_DOMAIN_ASSIGNMENT = eINSTANCE.getRelationDomainAssignment(); /** + * The meta object literal for the '<em><b>Owner</b></em>' container reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference RELATION_DOMAIN_ASSIGNMENT__OWNER = eINSTANCE.getRelationDomainAssignment_Owner(); + + /** * The meta object literal for the '<em><b>Value Exp</b></em>' containment reference feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> diff --git a/plugins/org.eclipse.qvtd.pivot.qvtrelation/emf-gen/org/eclipse/qvtd/pivot/qvtrelation/QVTrelationTables.java b/plugins/org.eclipse.qvtd.pivot.qvtrelation/emf-gen/org/eclipse/qvtd/pivot/qvtrelation/QVTrelationTables.java index 5392a645a..21c3d5a74 100644 --- a/plugins/org.eclipse.qvtd.pivot.qvtrelation/emf-gen/org/eclipse/qvtd/pivot/qvtrelation/QVTrelationTables.java +++ b/plugins/org.eclipse.qvtd.pivot.qvtrelation/emf-gen/org/eclipse/qvtd/pivot/qvtrelation/QVTrelationTables.java @@ -371,8 +371,8 @@ public class QVTrelationTables Operations.init(); } - public static final @NonNull ExecutorProperty _DomainPattern__templateExpression = new EcoreExecutorProperty(QVTrelationPackage.Literals.DOMAIN_PATTERN__TEMPLATE_EXPRESSION, Types._DomainPattern, 0); - public static final @NonNull ExecutorProperty _DomainPattern__RelationDomain__pattern = new ExecutorPropertyWithImplementation("RelationDomain", Types._DomainPattern, 1, new EcoreLibraryOppositeProperty(QVTrelationPackage.Literals.RELATION_DOMAIN__PATTERN)); + public static final @NonNull ExecutorProperty _DomainPattern__relationDomain = new EcoreExecutorProperty(QVTrelationPackage.Literals.DOMAIN_PATTERN__RELATION_DOMAIN, Types._DomainPattern, 0); + public static final @NonNull ExecutorProperty _DomainPattern__templateExpression = new EcoreExecutorProperty(QVTrelationPackage.Literals.DOMAIN_PATTERN__TEMPLATE_EXPRESSION, Types._DomainPattern, 1); public static final @NonNull ExecutorProperty _Key__identifies = new EcoreExecutorProperty(QVTrelationPackage.Literals.KEY__IDENTIFIES, Types._Key, 0); public static final @NonNull ExecutorProperty _Key__oppositePart = new EcoreExecutorProperty(QVTrelationPackage.Literals.KEY__OPPOSITE_PART, Types._Key, 1); @@ -393,9 +393,9 @@ public class QVTrelationTables public static final @NonNull ExecutorProperty _RelationDomain__pattern = new EcoreExecutorProperty(QVTrelationPackage.Literals.RELATION_DOMAIN__PATTERN, Types._RelationDomain, 1); public static final @NonNull ExecutorProperty _RelationDomain__rootVariable = new EcoreExecutorProperty(QVTrelationPackage.Literals.RELATION_DOMAIN__ROOT_VARIABLE, Types._RelationDomain, 2); - public static final @NonNull ExecutorProperty _RelationDomainAssignment__valueExp = new EcoreExecutorProperty(QVTrelationPackage.Literals.RELATION_DOMAIN_ASSIGNMENT__VALUE_EXP, Types._RelationDomainAssignment, 0); - public static final @NonNull ExecutorProperty _RelationDomainAssignment__variable = new EcoreExecutorProperty(QVTrelationPackage.Literals.RELATION_DOMAIN_ASSIGNMENT__VARIABLE, Types._RelationDomainAssignment, 1); - public static final @NonNull ExecutorProperty _RelationDomainAssignment__owner__defaultAssignment = new ExecutorPropertyWithImplementation("owner", Types._RelationDomainAssignment, 2, new EcoreLibraryOppositeProperty(QVTrelationPackage.Literals.RELATION_DOMAIN__DEFAULT_ASSIGNMENT)); + public static final @NonNull ExecutorProperty _RelationDomainAssignment__owner = new EcoreExecutorProperty(QVTrelationPackage.Literals.RELATION_DOMAIN_ASSIGNMENT__OWNER, Types._RelationDomainAssignment, 0); + public static final @NonNull ExecutorProperty _RelationDomainAssignment__valueExp = new EcoreExecutorProperty(QVTrelationPackage.Literals.RELATION_DOMAIN_ASSIGNMENT__VALUE_EXP, Types._RelationDomainAssignment, 1); + public static final @NonNull ExecutorProperty _RelationDomainAssignment__variable = new EcoreExecutorProperty(QVTrelationPackage.Literals.RELATION_DOMAIN_ASSIGNMENT__VARIABLE, Types._RelationDomainAssignment, 2); public static final @NonNull ExecutorProperty _RelationImplementation__impl = new EcoreExecutorProperty(QVTrelationPackage.Literals.RELATION_IMPLEMENTATION__IMPL, Types._RelationImplementation, 0); public static final @NonNull ExecutorProperty _RelationImplementation__inDirectionOf = new EcoreExecutorProperty(QVTrelationPackage.Literals.RELATION_IMPLEMENTATION__IN_DIRECTION_OF, Types._RelationImplementation, 1); @@ -1144,6 +1144,7 @@ public class QVTrelationTables } private static final @NonNull ExecutorProperty @NonNull [] _DomainPattern = { + QVTrelationTables.Properties._DomainPattern__relationDomain, QVTrelationTables.Properties._DomainPattern__templateExpression }; @@ -1174,6 +1175,7 @@ public class QVTrelationTables }; private static final @NonNull ExecutorProperty @NonNull [] _RelationDomainAssignment = { + QVTrelationTables.Properties._RelationDomainAssignment__owner, QVTrelationTables.Properties._RelationDomainAssignment__valueExp, QVTrelationTables.Properties._RelationDomainAssignment__variable }; diff --git a/plugins/org.eclipse.qvtd.pivot.qvtrelation/emf-gen/org/eclipse/qvtd/pivot/qvtrelation/RelationDomain.java b/plugins/org.eclipse.qvtd.pivot.qvtrelation/emf-gen/org/eclipse/qvtd/pivot/qvtrelation/RelationDomain.java index 34f470408..4695bf1e6 100644 --- a/plugins/org.eclipse.qvtd.pivot.qvtrelation/emf-gen/org/eclipse/qvtd/pivot/qvtrelation/RelationDomain.java +++ b/plugins/org.eclipse.qvtd.pivot.qvtrelation/emf-gen/org/eclipse/qvtd/pivot/qvtrelation/RelationDomain.java @@ -39,6 +39,7 @@ public interface RelationDomain extends Domain { /** * Returns the value of the '<em><b>Default Assignment</b></em>' containment reference list. * The list contents are of type {@link org.eclipse.qvtd.pivot.qvtrelation.RelationDomainAssignment}. + * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.pivot.qvtrelation.RelationDomainAssignment#getOwner <em>Owner</em>}'. * <!-- begin-user-doc --> * <p> * If the meaning of the '<em>Default Assignment</em>' containment reference list isn't clear, @@ -47,8 +48,8 @@ public interface RelationDomain extends Domain { * <!-- end-user-doc --> * @return the value of the '<em>Default Assignment</em>' containment reference list. * @see org.eclipse.qvtd.pivot.qvtrelation.QVTrelationPackage#getRelationDomain_DefaultAssignment() - * @model containment="true" ordered="false" - * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='owner'" + * @see org.eclipse.qvtd.pivot.qvtrelation.RelationDomainAssignment#getOwner + * @model opposite="owner" containment="true" ordered="false" * annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException(); // FIXME Unimplemented http://www.eclipse.org/qvt/2015/QVTrelation!RelationDomain!defaultAssignment'" * @generated */ @@ -57,6 +58,7 @@ public interface RelationDomain extends Domain { /** * Returns the value of the '<em><b>Pattern</b></em>' containment reference list. * The list contents are of type {@link org.eclipse.qvtd.pivot.qvtrelation.DomainPattern}. + * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.pivot.qvtrelation.DomainPattern#getRelationDomain <em>Relation Domain</em>}'. * <!-- begin-user-doc --> * <p> * If the meaning of the '<em>Pattern</em>' containment reference isn't clear, @@ -65,7 +67,8 @@ public interface RelationDomain extends Domain { * <!-- end-user-doc --> * @return the value of the '<em>Pattern</em>' containment reference list. * @see org.eclipse.qvtd.pivot.qvtrelation.QVTrelationPackage#getRelationDomain_Pattern() - * @model containment="true" + * @see org.eclipse.qvtd.pivot.qvtrelation.DomainPattern#getRelationDomain + * @model opposite="relationDomain" containment="true" * annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException(); // FIXME Unimplemented http://www.eclipse.org/qvt/2015/QVTrelation!RelationDomain!pattern'" * @generated */ diff --git a/plugins/org.eclipse.qvtd.pivot.qvtrelation/emf-gen/org/eclipse/qvtd/pivot/qvtrelation/RelationDomainAssignment.java b/plugins/org.eclipse.qvtd.pivot.qvtrelation/emf-gen/org/eclipse/qvtd/pivot/qvtrelation/RelationDomainAssignment.java index a2d8b4108..be10f6656 100644 --- a/plugins/org.eclipse.qvtd.pivot.qvtrelation/emf-gen/org/eclipse/qvtd/pivot/qvtrelation/RelationDomainAssignment.java +++ b/plugins/org.eclipse.qvtd.pivot.qvtrelation/emf-gen/org/eclipse/qvtd/pivot/qvtrelation/RelationDomainAssignment.java @@ -25,6 +25,7 @@ import org.eclipse.ocl.pivot.Variable; * The following features are supported: * </p> * <ul> + * <li>{@link org.eclipse.qvtd.pivot.qvtrelation.RelationDomainAssignment#getOwner <em>Owner</em>}</li> * <li>{@link org.eclipse.qvtd.pivot.qvtrelation.RelationDomainAssignment#getValueExp <em>Value Exp</em>}</li> * <li>{@link org.eclipse.qvtd.pivot.qvtrelation.RelationDomainAssignment#getVariable <em>Variable</em>}</li> * </ul> @@ -35,6 +36,35 @@ import org.eclipse.ocl.pivot.Variable; */ public interface RelationDomainAssignment extends Element { /** + * Returns the value of the '<em><b>Owner</b></em>' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.pivot.qvtrelation.RelationDomain#getDefaultAssignment <em>Default Assignment</em>}'. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Owner</em>' container reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Owner</em>' container reference. + * @see #setOwner(RelationDomain) + * @see org.eclipse.qvtd.pivot.qvtrelation.QVTrelationPackage#getRelationDomainAssignment_Owner() + * @see org.eclipse.qvtd.pivot.qvtrelation.RelationDomain#getDefaultAssignment + * @model opposite="defaultAssignment" required="true" transient="false" + * annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException(); // FIXME Unimplemented http://www.eclipse.org/qvt/2015/QVTrelation!RelationDomainAssignment!owner'" + * @generated + */ + RelationDomain getOwner(); + + /** + * Sets the value of the '{@link org.eclipse.qvtd.pivot.qvtrelation.RelationDomainAssignment#getOwner <em>Owner</em>}' container reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Owner</em>' container reference. + * @see #getOwner() + * @generated + */ + void setOwner(RelationDomain value); + + /** * Returns the value of the '<em><b>Value Exp</b></em>' containment reference. * <!-- begin-user-doc --> * <p> diff --git a/plugins/org.eclipse.qvtd.pivot.qvtrelation/emf-gen/org/eclipse/qvtd/pivot/qvtrelation/impl/DomainPatternImpl.java b/plugins/org.eclipse.qvtd.pivot.qvtrelation/emf-gen/org/eclipse/qvtd/pivot/qvtrelation/impl/DomainPatternImpl.java index fa612b4a2..4975b50ec 100644 --- a/plugins/org.eclipse.qvtd.pivot.qvtrelation/emf-gen/org/eclipse/qvtd/pivot/qvtrelation/impl/DomainPatternImpl.java +++ b/plugins/org.eclipse.qvtd.pivot.qvtrelation/emf-gen/org/eclipse/qvtd/pivot/qvtrelation/impl/DomainPatternImpl.java @@ -15,11 +15,13 @@ import org.eclipse.emf.common.notify.NotificationChain; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.InternalEObject; import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.util.EcoreUtil; import org.eclipse.jdt.annotation.NonNull; import org.eclipse.ocl.pivot.util.Visitor; import org.eclipse.qvtd.pivot.qvtbase.impl.PatternImpl; import org.eclipse.qvtd.pivot.qvtrelation.DomainPattern; import org.eclipse.qvtd.pivot.qvtrelation.QVTrelationPackage; +import org.eclipse.qvtd.pivot.qvtrelation.RelationDomain; import org.eclipse.qvtd.pivot.qvtrelation.util.QVTrelationVisitor; import org.eclipse.qvtd.pivot.qvttemplate.TemplateExp; @@ -31,6 +33,7 @@ import org.eclipse.qvtd.pivot.qvttemplate.TemplateExp; * The following features are implemented: * </p> * <ul> + * <li>{@link org.eclipse.qvtd.pivot.qvtrelation.impl.DomainPatternImpl#getRelationDomain <em>Relation Domain</em>}</li> * <li>{@link org.eclipse.qvtd.pivot.qvtrelation.impl.DomainPatternImpl#getTemplateExpression <em>Template Expression</em>}</li> * </ul> * @@ -72,6 +75,49 @@ public class DomainPatternImpl extends PatternImpl implements DomainPattern { * @generated */ @Override + public RelationDomain getRelationDomain() { + if (eContainerFeatureID() != QVTrelationPackage.DOMAIN_PATTERN__RELATION_DOMAIN) return null; + return (RelationDomain)eInternalContainer(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetRelationDomain(RelationDomain newRelationDomain, NotificationChain msgs) { + msgs = eBasicSetContainer((InternalEObject)newRelationDomain, QVTrelationPackage.DOMAIN_PATTERN__RELATION_DOMAIN, msgs); + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void setRelationDomain(RelationDomain newRelationDomain) { + if (newRelationDomain != eInternalContainer() || (eContainerFeatureID() != QVTrelationPackage.DOMAIN_PATTERN__RELATION_DOMAIN && newRelationDomain != null)) { + if (EcoreUtil.isAncestor(this, newRelationDomain)) + throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); + NotificationChain msgs = null; + if (eInternalContainer() != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newRelationDomain != null) + msgs = ((InternalEObject)newRelationDomain).eInverseAdd(this, QVTrelationPackage.RELATION_DOMAIN__PATTERN, RelationDomain.class, msgs); + msgs = basicSetRelationDomain(newRelationDomain, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, QVTrelationPackage.DOMAIN_PATTERN__RELATION_DOMAIN, newRelationDomain, newRelationDomain)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override public TemplateExp getTemplateExpression() { return templateExpression; } @@ -117,8 +163,26 @@ public class DomainPatternImpl extends PatternImpl implements DomainPattern { * @generated */ @Override + public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case QVTrelationPackage.DOMAIN_PATTERN__RELATION_DOMAIN: + if (eInternalContainer() != null) + msgs = eBasicRemoveFromContainer(msgs); + return basicSetRelationDomain((RelationDomain)otherEnd, msgs); + } + return super.eInverseAdd(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { switch (featureID) { + case QVTrelationPackage.DOMAIN_PATTERN__RELATION_DOMAIN: + return basicSetRelationDomain(null, msgs); case QVTrelationPackage.DOMAIN_PATTERN__TEMPLATE_EXPRESSION: return basicSetTemplateExpression(null, msgs); } @@ -131,8 +195,24 @@ public class DomainPatternImpl extends PatternImpl implements DomainPattern { * @generated */ @Override + public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) { + switch (eContainerFeatureID()) { + case QVTrelationPackage.DOMAIN_PATTERN__RELATION_DOMAIN: + return eInternalContainer().eInverseRemove(this, QVTrelationPackage.RELATION_DOMAIN__PATTERN, RelationDomain.class, msgs); + } + return super.eBasicRemoveFromContainerFeature(msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override public Object eGet(int featureID, boolean resolve, boolean coreType) { switch (featureID) { + case QVTrelationPackage.DOMAIN_PATTERN__RELATION_DOMAIN: + return getRelationDomain(); case QVTrelationPackage.DOMAIN_PATTERN__TEMPLATE_EXPRESSION: return getTemplateExpression(); } @@ -147,6 +227,9 @@ public class DomainPatternImpl extends PatternImpl implements DomainPattern { @Override public void eSet(int featureID, Object newValue) { switch (featureID) { + case QVTrelationPackage.DOMAIN_PATTERN__RELATION_DOMAIN: + setRelationDomain((RelationDomain)newValue); + return; case QVTrelationPackage.DOMAIN_PATTERN__TEMPLATE_EXPRESSION: setTemplateExpression((TemplateExp)newValue); return; @@ -162,6 +245,9 @@ public class DomainPatternImpl extends PatternImpl implements DomainPattern { @Override public void eUnset(int featureID) { switch (featureID) { + case QVTrelationPackage.DOMAIN_PATTERN__RELATION_DOMAIN: + setRelationDomain((RelationDomain)null); + return; case QVTrelationPackage.DOMAIN_PATTERN__TEMPLATE_EXPRESSION: setTemplateExpression((TemplateExp)null); return; @@ -177,6 +263,8 @@ public class DomainPatternImpl extends PatternImpl implements DomainPattern { @Override public boolean eIsSet(int featureID) { switch (featureID) { + case QVTrelationPackage.DOMAIN_PATTERN__RELATION_DOMAIN: + return getRelationDomain() != null; case QVTrelationPackage.DOMAIN_PATTERN__TEMPLATE_EXPRESSION: return templateExpression != null; } diff --git a/plugins/org.eclipse.qvtd.pivot.qvtrelation/emf-gen/org/eclipse/qvtd/pivot/qvtrelation/impl/QVTrelationPackageImpl.java b/plugins/org.eclipse.qvtd.pivot.qvtrelation/emf-gen/org/eclipse/qvtd/pivot/qvtrelation/impl/QVTrelationPackageImpl.java index d7be740e3..49f1cf270 100644 --- a/plugins/org.eclipse.qvtd.pivot.qvtrelation/emf-gen/org/eclipse/qvtd/pivot/qvtrelation/impl/QVTrelationPackageImpl.java +++ b/plugins/org.eclipse.qvtd.pivot.qvtrelation/emf-gen/org/eclipse/qvtd/pivot/qvtrelation/impl/QVTrelationPackageImpl.java @@ -213,7 +213,7 @@ public class QVTrelationPackageImpl extends EPackageImpl implements QVTrelationP * @generated */ @Override - public EReference getDomainPattern_TemplateExpression() { + public EReference getDomainPattern_RelationDomain() { return (EReference)domainPatternEClass.getEStructuralFeatures().get(0); } @@ -223,6 +223,16 @@ public class QVTrelationPackageImpl extends EPackageImpl implements QVTrelationP * @generated */ @Override + public EReference getDomainPattern_TemplateExpression() { + return (EReference)domainPatternEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override public EClass getKey() { return keyEClass; } @@ -533,7 +543,7 @@ public class QVTrelationPackageImpl extends EPackageImpl implements QVTrelationP * @generated */ @Override - public EReference getRelationDomainAssignment_ValueExp() { + public EReference getRelationDomainAssignment_Owner() { return (EReference)relationDomainAssignmentEClass.getEStructuralFeatures().get(0); } @@ -543,7 +553,7 @@ public class QVTrelationPackageImpl extends EPackageImpl implements QVTrelationP * @generated */ @Override - public EReference getRelationDomainAssignment_Variable() { + public EReference getRelationDomainAssignment_ValueExp() { return (EReference)relationDomainAssignmentEClass.getEStructuralFeatures().get(1); } @@ -553,6 +563,16 @@ public class QVTrelationPackageImpl extends EPackageImpl implements QVTrelationP * @generated */ @Override + public EReference getRelationDomainAssignment_Variable() { + return (EReference)relationDomainAssignmentEClass.getEStructuralFeatures().get(2); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override public EOperation getRelationDomainAssignment__ValidateCompatibleTypeForValue__DiagnosticChain_Map() { return relationDomainAssignmentEClass.getEOperations().get(0); } @@ -687,6 +707,7 @@ public class QVTrelationPackageImpl extends EPackageImpl implements QVTrelationP // Create classes and their features domainPatternEClass = createEClass(DOMAIN_PATTERN); + createEReference(domainPatternEClass, DOMAIN_PATTERN__RELATION_DOMAIN); createEReference(domainPatternEClass, DOMAIN_PATTERN__TEMPLATE_EXPRESSION); keyEClass = createEClass(KEY); @@ -724,6 +745,7 @@ public class QVTrelationPackageImpl extends EPackageImpl implements QVTrelationP createEOperation(relationDomainEClass, RELATION_DOMAIN___VALIDATE_RELATION_DOMAIN_ASSIGNMENTS_ARE_UNIQUE__DIAGNOSTICCHAIN_MAP); relationDomainAssignmentEClass = createEClass(RELATION_DOMAIN_ASSIGNMENT); + createEReference(relationDomainAssignmentEClass, RELATION_DOMAIN_ASSIGNMENT__OWNER); createEReference(relationDomainAssignmentEClass, RELATION_DOMAIN_ASSIGNMENT__VALUE_EXP); createEReference(relationDomainAssignmentEClass, RELATION_DOMAIN_ASSIGNMENT__VARIABLE); createEOperation(relationDomainAssignmentEClass, RELATION_DOMAIN_ASSIGNMENT___VALIDATE_COMPATIBLE_TYPE_FOR_VALUE__DIAGNOSTICCHAIN_MAP); @@ -791,6 +813,7 @@ public class QVTrelationPackageImpl extends EPackageImpl implements QVTrelationP // Initialize classes, features, and operations; add parameters initEClass(domainPatternEClass, DomainPattern.class, "DomainPattern", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getDomainPattern_RelationDomain(), this.getRelationDomain(), this.getRelationDomain_Pattern(), "relationDomain", null, 1, 1, DomainPattern.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getDomainPattern_TemplateExpression(), theQVTtemplatePackage.getTemplateExp(), null, "templateExpression", null, 0, 1, DomainPattern.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(keyEClass, Key.class, "Key", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); @@ -910,8 +933,8 @@ public class QVTrelationPackageImpl extends EPackageImpl implements QVTrelationP addEParameter(op, g1, "context", 0, 1, IS_UNIQUE, IS_ORDERED); initEClass(relationDomainEClass, RelationDomain.class, "RelationDomain", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEReference(getRelationDomain_DefaultAssignment(), this.getRelationDomainAssignment(), null, "defaultAssignment", null, 0, -1, RelationDomain.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); - initEReference(getRelationDomain_Pattern(), this.getDomainPattern(), null, "pattern", null, 0, -1, RelationDomain.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getRelationDomain_DefaultAssignment(), this.getRelationDomainAssignment(), this.getRelationDomainAssignment_Owner(), "defaultAssignment", null, 0, -1, RelationDomain.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEReference(getRelationDomain_Pattern(), this.getDomainPattern(), this.getDomainPattern_RelationDomain(), "pattern", null, 0, -1, RelationDomain.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getRelationDomain_RootVariable(), thePivotPackage.getVariable(), null, "rootVariable", null, 1, -1, RelationDomain.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); op = initEOperation(getRelationDomain__ValidateRelationDomainAssignmentsAreUnique__DiagnosticChain_Map(), ecorePackage.getEBoolean(), "validateRelationDomainAssignmentsAreUnique", 0, 1, IS_UNIQUE, IS_ORDERED); @@ -924,6 +947,7 @@ public class QVTrelationPackageImpl extends EPackageImpl implements QVTrelationP addEParameter(op, g1, "context", 0, 1, IS_UNIQUE, IS_ORDERED); initEClass(relationDomainAssignmentEClass, RelationDomainAssignment.class, "RelationDomainAssignment", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getRelationDomainAssignment_Owner(), this.getRelationDomain(), this.getRelationDomain_DefaultAssignment(), "owner", null, 1, 1, RelationDomainAssignment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getRelationDomainAssignment_ValueExp(), thePivotPackage.getOCLExpression(), null, "valueExp", null, 1, 1, RelationDomainAssignment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getRelationDomainAssignment_Variable(), thePivotPackage.getVariable(), null, "variable", null, 1, 1, RelationDomainAssignment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); @@ -1037,12 +1061,6 @@ public class QVTrelationPackageImpl extends EPackageImpl implements QVTrelationP "body", "relationCallExp" }); addAnnotation - (getRelationDomain_DefaultAssignment(), - source, - new String[] { - "body", "owner" - }); - addAnnotation (getRelationDomainAssignment_ValueExp(), source, new String[] { diff --git a/plugins/org.eclipse.qvtd.pivot.qvtrelation/emf-gen/org/eclipse/qvtd/pivot/qvtrelation/impl/RelationDomainAssignmentImpl.java b/plugins/org.eclipse.qvtd.pivot.qvtrelation/emf-gen/org/eclipse/qvtd/pivot/qvtrelation/impl/RelationDomainAssignmentImpl.java index e40511ae6..a5b5493f4 100644 --- a/plugins/org.eclipse.qvtd.pivot.qvtrelation/emf-gen/org/eclipse/qvtd/pivot/qvtrelation/impl/RelationDomainAssignmentImpl.java +++ b/plugins/org.eclipse.qvtd.pivot.qvtrelation/emf-gen/org/eclipse/qvtd/pivot/qvtrelation/impl/RelationDomainAssignmentImpl.java @@ -19,6 +19,7 @@ import org.eclipse.emf.common.util.EList; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.InternalEObject; import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.util.EcoreUtil; import org.eclipse.jdt.annotation.NonNull; import org.eclipse.jdt.annotation.Nullable; import org.eclipse.ocl.pivot.OCLExpression; @@ -34,6 +35,7 @@ import org.eclipse.ocl.pivot.util.Visitor; import org.eclipse.ocl.pivot.utilities.ValueUtil; import org.eclipse.qvtd.pivot.qvtrelation.QVTrelationPackage; import org.eclipse.qvtd.pivot.qvtrelation.QVTrelationTables; +import org.eclipse.qvtd.pivot.qvtrelation.RelationDomain; import org.eclipse.qvtd.pivot.qvtrelation.RelationDomainAssignment; import org.eclipse.qvtd.pivot.qvtrelation.util.QVTrelationVisitor; @@ -45,6 +47,7 @@ import org.eclipse.qvtd.pivot.qvtrelation.util.QVTrelationVisitor; * The following features are implemented: * </p> * <ul> + * <li>{@link org.eclipse.qvtd.pivot.qvtrelation.impl.RelationDomainAssignmentImpl#getOwner <em>Owner</em>}</li> * <li>{@link org.eclipse.qvtd.pivot.qvtrelation.impl.RelationDomainAssignmentImpl#getValueExp <em>Value Exp</em>}</li> * <li>{@link org.eclipse.qvtd.pivot.qvtrelation.impl.RelationDomainAssignmentImpl#getVariable <em>Variable</em>}</li> * </ul> @@ -97,6 +100,49 @@ public class RelationDomainAssignmentImpl extends ElementImpl implements Relatio * @generated */ @Override + public RelationDomain getOwner() { + if (eContainerFeatureID() != QVTrelationPackage.RELATION_DOMAIN_ASSIGNMENT__OWNER) return null; + return (RelationDomain)eInternalContainer(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetOwner(RelationDomain newOwner, NotificationChain msgs) { + msgs = eBasicSetContainer((InternalEObject)newOwner, QVTrelationPackage.RELATION_DOMAIN_ASSIGNMENT__OWNER, msgs); + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void setOwner(RelationDomain newOwner) { + if (newOwner != eInternalContainer() || (eContainerFeatureID() != QVTrelationPackage.RELATION_DOMAIN_ASSIGNMENT__OWNER && newOwner != null)) { + if (EcoreUtil.isAncestor(this, newOwner)) + throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); + NotificationChain msgs = null; + if (eInternalContainer() != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newOwner != null) + msgs = ((InternalEObject)newOwner).eInverseAdd(this, QVTrelationPackage.RELATION_DOMAIN__DEFAULT_ASSIGNMENT, RelationDomain.class, msgs); + msgs = basicSetOwner(newOwner, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, QVTrelationPackage.RELATION_DOMAIN_ASSIGNMENT__OWNER, newOwner, newOwner)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override public OCLExpression getValueExp() { return valueExp; } @@ -232,8 +278,26 @@ public class RelationDomainAssignmentImpl extends ElementImpl implements Relatio * @generated */ @Override + public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case QVTrelationPackage.RELATION_DOMAIN_ASSIGNMENT__OWNER: + if (eInternalContainer() != null) + msgs = eBasicRemoveFromContainer(msgs); + return basicSetOwner((RelationDomain)otherEnd, msgs); + } + return super.eInverseAdd(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { switch (featureID) { + case QVTrelationPackage.RELATION_DOMAIN_ASSIGNMENT__OWNER: + return basicSetOwner(null, msgs); case QVTrelationPackage.RELATION_DOMAIN_ASSIGNMENT__VALUE_EXP: return basicSetValueExp(null, msgs); } @@ -246,8 +310,24 @@ public class RelationDomainAssignmentImpl extends ElementImpl implements Relatio * @generated */ @Override + public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) { + switch (eContainerFeatureID()) { + case QVTrelationPackage.RELATION_DOMAIN_ASSIGNMENT__OWNER: + return eInternalContainer().eInverseRemove(this, QVTrelationPackage.RELATION_DOMAIN__DEFAULT_ASSIGNMENT, RelationDomain.class, msgs); + } + return super.eBasicRemoveFromContainerFeature(msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override public Object eGet(int featureID, boolean resolve, boolean coreType) { switch (featureID) { + case QVTrelationPackage.RELATION_DOMAIN_ASSIGNMENT__OWNER: + return getOwner(); case QVTrelationPackage.RELATION_DOMAIN_ASSIGNMENT__VALUE_EXP: return getValueExp(); case QVTrelationPackage.RELATION_DOMAIN_ASSIGNMENT__VARIABLE: @@ -265,6 +345,9 @@ public class RelationDomainAssignmentImpl extends ElementImpl implements Relatio @Override public void eSet(int featureID, Object newValue) { switch (featureID) { + case QVTrelationPackage.RELATION_DOMAIN_ASSIGNMENT__OWNER: + setOwner((RelationDomain)newValue); + return; case QVTrelationPackage.RELATION_DOMAIN_ASSIGNMENT__VALUE_EXP: setValueExp((OCLExpression)newValue); return; @@ -283,6 +366,9 @@ public class RelationDomainAssignmentImpl extends ElementImpl implements Relatio @Override public void eUnset(int featureID) { switch (featureID) { + case QVTrelationPackage.RELATION_DOMAIN_ASSIGNMENT__OWNER: + setOwner((RelationDomain)null); + return; case QVTrelationPackage.RELATION_DOMAIN_ASSIGNMENT__VALUE_EXP: setValueExp((OCLExpression)null); return; @@ -301,6 +387,8 @@ public class RelationDomainAssignmentImpl extends ElementImpl implements Relatio @Override public boolean eIsSet(int featureID) { switch (featureID) { + case QVTrelationPackage.RELATION_DOMAIN_ASSIGNMENT__OWNER: + return getOwner() != null; case QVTrelationPackage.RELATION_DOMAIN_ASSIGNMENT__VALUE_EXP: return valueExp != null; case QVTrelationPackage.RELATION_DOMAIN_ASSIGNMENT__VARIABLE: diff --git a/plugins/org.eclipse.qvtd.pivot.qvtrelation/emf-gen/org/eclipse/qvtd/pivot/qvtrelation/impl/RelationDomainImpl.java b/plugins/org.eclipse.qvtd.pivot.qvtrelation/emf-gen/org/eclipse/qvtd/pivot/qvtrelation/impl/RelationDomainImpl.java index 987247cf2..f224fa165 100644 --- a/plugins/org.eclipse.qvtd.pivot.qvtrelation/emf-gen/org/eclipse/qvtd/pivot/qvtrelation/impl/RelationDomainImpl.java +++ b/plugins/org.eclipse.qvtd.pivot.qvtrelation/emf-gen/org/eclipse/qvtd/pivot/qvtrelation/impl/RelationDomainImpl.java @@ -20,7 +20,7 @@ import org.eclipse.emf.common.util.DiagnosticChain; import org.eclipse.emf.common.util.EList; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.InternalEObject; -import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList; import org.eclipse.emf.ecore.util.EObjectResolvingEList; import org.eclipse.emf.ecore.util.InternalEList; import org.eclipse.jdt.annotation.NonNull; @@ -115,7 +115,7 @@ public class RelationDomainImpl extends DomainImpl implements RelationDomain { @Override public @NonNull EList<RelationDomainAssignment> getDefaultAssignment() { if (defaultAssignment == null) { - defaultAssignment = new EObjectContainmentEList<RelationDomainAssignment>(RelationDomainAssignment.class, this, QVTrelationPackage.RELATION_DOMAIN__DEFAULT_ASSIGNMENT); + defaultAssignment = new EObjectContainmentWithInverseEList<RelationDomainAssignment>(RelationDomainAssignment.class, this, QVTrelationPackage.RELATION_DOMAIN__DEFAULT_ASSIGNMENT, QVTrelationPackage.RELATION_DOMAIN_ASSIGNMENT__OWNER); } return defaultAssignment; } @@ -129,7 +129,7 @@ public class RelationDomainImpl extends DomainImpl implements RelationDomain { @Override public @NonNull EList<DomainPattern> getPattern() { if (pattern == null) { - pattern = new EObjectContainmentEList<DomainPattern>(DomainPattern.class, this, QVTrelationPackage.RELATION_DOMAIN__PATTERN); + pattern = new EObjectContainmentWithInverseEList<DomainPattern>(DomainPattern.class, this, QVTrelationPackage.RELATION_DOMAIN__PATTERN, QVTrelationPackage.DOMAIN_PATTERN__RELATION_DOMAIN); } return pattern; } @@ -215,6 +215,23 @@ public class RelationDomainImpl extends DomainImpl implements RelationDomain { * <!-- end-user-doc --> * @generated */ + @SuppressWarnings("unchecked") + @Override + public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case QVTrelationPackage.RELATION_DOMAIN__DEFAULT_ASSIGNMENT: + return ((InternalEList<InternalEObject>)(InternalEList<?>)getDefaultAssignment()).basicAdd(otherEnd, msgs); + case QVTrelationPackage.RELATION_DOMAIN__PATTERN: + return ((InternalEList<InternalEObject>)(InternalEList<?>)getPattern()).basicAdd(otherEnd, msgs); + } + return super.eInverseAdd(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ @Override public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { switch (featureID) { diff --git a/plugins/org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore b/plugins/org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore index 4d8d77fc4..0ba47eee6 100644 --- a/plugins/org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore +++ b/plugins/org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore @@ -9,6 +9,9 @@ </eAnnotations> <eClassifiers xsi:type="ecore:EClass" xmi:id="T-qvtrelation-DomainPattern" name="DomainPattern" eSuperTypes="../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore#T-qvtbase-Pattern"> + <eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-qvtrelation-DomainPattern-relationDomain" + name="relationDomain" lowerBound="1" eType="#T-qvtrelation-RelationDomain" + eOpposite="#F-qvtrelation-RelationDomain-pattern"/> <eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-qvtrelation-DomainPattern-templateExpression" name="templateExpression" eType="ecore:EClass ../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore#T-qvttemplate-TemplateExp" containment="true"/> @@ -261,13 +264,10 @@ </eOperations> <eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-qvtrelation-RelationDomain-defaultAssignment" name="defaultAssignment" ordered="false" upperBound="-1" eType="#T-qvtrelation-RelationDomainAssignment" - containment="true"> - <eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"> - <details key="body" value="owner"/> - </eAnnotations> - </eStructuralFeatures> + containment="true" eOpposite="#F-qvtrelation-RelationDomainAssignment-owner"/> <eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-qvtrelation-RelationDomain-pattern" - name="pattern" upperBound="-1" eType="#T-qvtrelation-DomainPattern" containment="true"/> + name="pattern" upperBound="-1" eType="#T-qvtrelation-DomainPattern" containment="true" + eOpposite="#F-qvtrelation-DomainPattern-relationDomain"/> <eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-qvtrelation-RelationDomain-rootVariable" name="rootVariable" lowerBound="1" upperBound="-1" eType="ecore:EClass ../../org.eclipse.ocl.pivot/model/Pivot.ecore#T-pivot-Variable"/> </eClassifiers> @@ -288,6 +288,8 @@ </eGenericType> </eParameters> </eOperations> + <eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-qvtrelation-RelationDomainAssignment-owner" + name="owner" lowerBound="1" eType="#T-qvtrelation-RelationDomain" eOpposite="#F-qvtrelation-RelationDomain-defaultAssignment"/> <eStructuralFeatures xsi:type="ecore:EReference" xmi:id="F-qvtrelation-RelationDomainAssignment-valueExp" name="valueExp" lowerBound="1" eType="ecore:EClass ../../org.eclipse.ocl.pivot/model/Pivot.ecore#T-pivot-OCLExpression" containment="true"> diff --git a/plugins/org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.genmodel b/plugins/org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.genmodel index 62dcd5e46..1f16298d6 100644 --- a/plugins/org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.genmodel +++ b/plugins/org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.genmodel @@ -18,6 +18,7 @@ contentTypeIdentifier="org.eclipse.qvtd.qvtrelation" fileExtensions="qvtras" ecorePackage="QVTrelation.ecore#P-qvtrelation"> <genClasses ecoreClass="QVTrelation.ecore#T-qvtrelation-DomainPattern"> + <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference QVTrelation.ecore#F-qvtrelation-DomainPattern-relationDomain"/> <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference QVTrelation.ecore#F-qvtrelation-DomainPattern-templateExpression"/> </genClasses> <genClasses ecoreClass="QVTrelation.ecore#T-qvtrelation-Key"> @@ -91,6 +92,7 @@ </genOperations> </genClasses> <genClasses ecoreClass="QVTrelation.ecore#T-qvtrelation-RelationDomainAssignment"> + <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference QVTrelation.ecore#F-qvtrelation-RelationDomainAssignment-owner"/> <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference QVTrelation.ecore#F-qvtrelation-RelationDomainAssignment-valueExp"/> <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference QVTrelation.ecore#F-qvtrelation-RelationDomainAssignment-variable"/> <genOperations ecoreOperation="QVTrelation.ecore#//RelationDomainAssignment/validateCompatibleTypeForValue"> diff --git a/plugins/org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelationStructural.ecore b/plugins/org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelationStructural.ecore index 8f53e25e7..a9afc566f 100644 --- a/plugins/org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelationStructural.ecore +++ b/plugins/org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelationStructural.ecore @@ -1,6 +1,7 @@ <?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" - xmi:id="P.qvtrelation" name="qvtrelation" nsURI="http://www.eclipse.org/qvt/2015/QVTrelation" nsPrefix="qvtr"> +<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="P.qvtrelation" name="qvtrelation" nsURI="http://www.eclipse.org/qvt/2015/QVTrelation" + nsPrefix="qvtr"> <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> <details key="invocationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"/> <details key="settingDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"/> @@ -8,6 +9,8 @@ </eAnnotations> <eClassifiers xsi:type="ecore:EClass" xmi:id="T.qvtrelation.DomainPattern" name="DomainPattern" eSuperTypes="../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore#T-qvtbase-Pattern"> + <eStructuralFeatures xsi:type="ecore:EReference" name="relationDomain" lowerBound="1" + eType="#T.qvtrelation.RelationDomain" eOpposite="#p.qvtrelation.RelationDomain.pattern"/> <eStructuralFeatures xsi:type="ecore:EReference" xmi:id="p.qvtrelation.DomainPattern.templateExpression" name="templateExpression" eType="ecore:EClass ../../org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore#T-qvttemplate-TemplateExp" containment="true"/> @@ -80,18 +83,21 @@ eSuperTypes="../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore#T-qvtbase-Domain"> <eStructuralFeatures xsi:type="ecore:EReference" xmi:id="p.qvtrelation.RelationDomain.defaultAssignment" name="defaultAssignment" ordered="false" upperBound="-1" eType="#T.qvtrelation.RelationDomainAssignment" - containment="true"> + containment="true" eOpposite="#//RelationDomainAssignment/owner"> <eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName"> <details key="body" value="owner"/> </eAnnotations> </eStructuralFeatures> <eStructuralFeatures xsi:type="ecore:EReference" xmi:id="p.qvtrelation.RelationDomain.pattern" - name="pattern" upperBound="-1" eType="#T.qvtrelation.DomainPattern" containment="true"/> + name="pattern" upperBound="-1" eType="#T.qvtrelation.DomainPattern" containment="true" + eOpposite="#//DomainPattern/relationDomain"/> <eStructuralFeatures xsi:type="ecore:EReference" xmi:id="p.qvtrelation.RelationDomain.rootVariable" name="rootVariable" lowerBound="1" upperBound="-1" eType="ecore:EClass ../../org.eclipse.ocl.pivot/model/Pivot.ecore#T-pivot-Variable"/> </eClassifiers> <eClassifiers xsi:type="ecore:EClass" xmi:id="T.qvtrelation.RelationDomainAssignment" name="RelationDomainAssignment" eSuperTypes="../../org.eclipse.ocl.pivot/model/Pivot.ecore#T-pivot-Element"> + <eStructuralFeatures xsi:type="ecore:EReference" name="owner" lowerBound="1" eType="#T.qvtrelation.RelationDomain" + eOpposite="#p.qvtrelation.RelationDomain.defaultAssignment"/> <eStructuralFeatures xsi:type="ecore:EReference" xmi:id="p.qvtrelation.RelationDomainAssignment.valueExp" name="valueExp" lowerBound="1" eType="ecore:EClass ../../org.eclipse.ocl.pivot/model/Pivot.ecore#T-pivot-OCLExpression" containment="true"> |