From 3c5d7ebaaaee10114a19b50b1b2374b64e310a20 Mon Sep 17 00:00:00 2001 From: Fabian Brosig <fabian.brosig@uni-wuerzburg.de> Date: Thu, 7 Aug 2014 14:23:36 +0000 Subject: [PATCH] corrected the association between Relationship and InterfaceProvidingRequiringEntity to be bidirectional (with InterfaceProvidingRequiringEntity being the container) git-svn-id: https://se1.informatik.uni-wuerzburg.de/usvn/svn/code/DMM/trunk@16338 9e42b895-fcda-4063-8a3b-11be15eb1bbd --- .../model/parameterdependency.ecore | 3 +- .../model/repository.ecore | 3 +- .../model/repository.ecore.oclinecore | 2 +- .../ParameterdependenciesPackage.java | 12 +-- .../parameterdependencies/Relationship.java | 12 +-- .../ParameterdependenciesPackageImpl.java | 2 +- .../impl/RelationshipImpl.java | 82 ++++++++++++------- .../InterfaceProvidingRequiringEntity.java | 8 +- .../repository/RepositoryPackage.java | 18 ++-- .../ComposedProvidingRequiringEntityImpl.java | 9 +- ...InterfaceProvidingRequiringEntityImpl.java | 9 +- .../impl/RepositoryPackageImpl.java | 2 +- 12 files changed, 102 insertions(+), 60 deletions(-) diff --git a/edu.kit.ipd.descartes.mm.applicationlevel/model/parameterdependency.ecore b/edu.kit.ipd.descartes.mm.applicationlevel/model/parameterdependency.ecore index b2038b35..8f4eabfb 100644 --- a/edu.kit.ipd.descartes.mm.applicationlevel/model/parameterdependency.ecore +++ b/edu.kit.ipd.descartes.mm.applicationlevel/model/parameterdependency.ecore @@ -77,7 +77,8 @@ <details key="EnforceExplicitDescriptionWhenExplicitCharacterizationType" value="
			self.characterization = RelationshipCharacterizationType::EXPLICIT implies explicitDescription <> null"/> </eAnnotations> <eStructuralFeatures xsi:type="ecore:EReference" name="surroundingEntity" lowerBound="1" - eType="ecore:EClass repository.ecore#//InterfaceProvidingRequiringEntity"/> + eType="ecore:EClass repository.ecore#//InterfaceProvidingRequiringEntity" + eOpposite="repository.ecore#//InterfaceProvidingRequiringEntity/relationships"/> <eStructuralFeatures xsi:type="ecore:EAttribute" name="characterization" lowerBound="1" eType="#//RelationshipCharacterizationType"/> <eStructuralFeatures xsi:type="ecore:EReference" name="explicitDescription" eType="ecore:EClass functions.ecore#//ExplicitDescription" diff --git a/edu.kit.ipd.descartes.mm.applicationlevel/model/repository.ecore b/edu.kit.ipd.descartes.mm.applicationlevel/model/repository.ecore index c047df27..623bcbb5 100644 --- a/edu.kit.ipd.descartes.mm.applicationlevel/model/repository.ecore +++ b/edu.kit.ipd.descartes.mm.applicationlevel/model/repository.ecore @@ -47,7 +47,8 @@ ordered="false" upperBound="-1" eType="ecore:EClass servicebehavior.ecore#//CoarseGrainedBehavior" containment="true"/> <eStructuralFeatures xsi:type="ecore:EReference" name="relationships" ordered="false" - upperBound="-1" eType="ecore:EClass parameterdependency.ecore#//Relationship"/> + upperBound="-1" eType="ecore:EClass parameterdependency.ecore#//Relationship" + containment="true" eOpposite="parameterdependency.ecore#//Relationship/surroundingEntity"/> </eClassifiers> <eClassifiers xsi:type="ecore:EClass" name="Import"> <eStructuralFeatures xsi:type="ecore:EAttribute" name="importURI" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> diff --git a/edu.kit.ipd.descartes.mm.applicationlevel/model/repository.ecore.oclinecore b/edu.kit.ipd.descartes.mm.applicationlevel/model/repository.ecore.oclinecore index 2ba8154a..63e69338 100644 --- a/edu.kit.ipd.descartes.mm.applicationlevel/model/repository.ecore.oclinecore +++ b/edu.kit.ipd.descartes.mm.applicationlevel/model/repository.ecore.oclinecore @@ -24,7 +24,7 @@ package repository : repository = 'http://www.descartes-research.net/metamodel/r abstract class InterfaceProvidingRequiringEntity extends InterfaceProvidingEntity, InterfaceRequiringEntity { property coarseGrainedBehavior : servicebehavior_0::CoarseGrainedBehavior[*] { composes }; - property relationships#surroundingEntity : parameterdependency_0::Relationship[*]; + property relationships#surroundingEntity : parameterdependency_0::Relationship[*] { composes }; invariant AtMostOneCoarseGrainedBehaviorPerProvidedService: not self.coarseGrainedBehavior->isEmpty() implies self.coarseGrainedBehavior->isUnique(cgb1 | cgb1.describedSignature); diff --git a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/ParameterdependenciesPackage.java b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/ParameterdependenciesPackage.java index b4d8ff13..1b719d9a 100644 --- a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/ParameterdependenciesPackage.java +++ b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/ParameterdependenciesPackage.java @@ -347,7 +347,7 @@ public interface ParameterdependenciesPackage extends EPackage { int RELATIONSHIP = 7; /** - * The feature id for the '<em><b>Surrounding Entity</b></em>' reference. + * The feature id for the '<em><b>Surrounding Entity</b></em>' container reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated @@ -393,7 +393,7 @@ public interface ParameterdependenciesPackage extends EPackage { int DEPENDENCY_RELATIONSHIP = 8; /** - * The feature id for the '<em><b>Surrounding Entity</b></em>' reference. + * The feature id for the '<em><b>Surrounding Entity</b></em>' container reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated @@ -457,7 +457,7 @@ public interface ParameterdependenciesPackage extends EPackage { int DEPENDENCY_PROPAGATION_RELATIONSHIP = 9; /** - * The feature id for the '<em><b>Surrounding Entity</b></em>' reference. + * The feature id for the '<em><b>Surrounding Entity</b></em>' container reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated @@ -1119,10 +1119,10 @@ public interface ParameterdependenciesPackage extends EPackage { EClass getRelationship(); /** - * Returns the meta object for the reference '{@link edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.Relationship#getSurroundingEntity <em>Surrounding Entity</em>}'. + * Returns the meta object for the container reference '{@link edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.Relationship#getSurroundingEntity <em>Surrounding Entity</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for the reference '<em>Surrounding Entity</em>'. + * @return the meta object for the container reference '<em>Surrounding Entity</em>'. * @see edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.Relationship#getSurroundingEntity() * @see #getRelationship() * @generated @@ -1604,7 +1604,7 @@ public interface ParameterdependenciesPackage extends EPackage { EClass RELATIONSHIP = eINSTANCE.getRelationship(); /** - * The meta object literal for the '<em><b>Surrounding Entity</b></em>' reference feature. + * The meta object literal for the '<em><b>Surrounding Entity</b></em>' container reference feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated diff --git a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/Relationship.java b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/Relationship.java index be4e44db..0361e419 100644 --- a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/Relationship.java +++ b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/Relationship.java @@ -31,26 +31,28 @@ import org.eclipse.emf.ecore.EObject; */ public interface Relationship extends EObject { /** - * Returns the value of the '<em><b>Surrounding Entity</b></em>' reference. + * Returns the value of the '<em><b>Surrounding Entity</b></em>' container reference. + * It is bidirectional and its opposite is '{@link edu.kit.ipd.descartes.mm.applicationlevel.repository.InterfaceProvidingRequiringEntity#getRelationships <em>Relationships</em>}'. * <!-- begin-user-doc --> * <p> * If the meaning of the '<em>Surrounding Entity</em>' reference isn't clear, * there really should be more of a description here... * </p> * <!-- end-user-doc --> - * @return the value of the '<em>Surrounding Entity</em>' reference. + * @return the value of the '<em>Surrounding Entity</em>' container reference. * @see #setSurroundingEntity(InterfaceProvidingRequiringEntity) * @see edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.ParameterdependenciesPackage#getRelationship_SurroundingEntity() - * @model required="true" + * @see edu.kit.ipd.descartes.mm.applicationlevel.repository.InterfaceProvidingRequiringEntity#getRelationships + * @model opposite="relationships" required="true" transient="false" * @generated */ InterfaceProvidingRequiringEntity getSurroundingEntity(); /** - * Sets the value of the '{@link edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.Relationship#getSurroundingEntity <em>Surrounding Entity</em>}' reference. + * Sets the value of the '{@link edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.Relationship#getSurroundingEntity <em>Surrounding Entity</em>}' container reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @param value the new value of the '<em>Surrounding Entity</em>' reference. + * @param value the new value of the '<em>Surrounding Entity</em>' container reference. * @see #getSurroundingEntity() * @generated */ diff --git a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/impl/ParameterdependenciesPackageImpl.java b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/impl/ParameterdependenciesPackageImpl.java index dfbc398f..e641d14b 100644 --- a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/impl/ParameterdependenciesPackageImpl.java +++ b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/impl/ParameterdependenciesPackageImpl.java @@ -860,7 +860,7 @@ public class ParameterdependenciesPackageImpl extends EPackageImpl implements Pa initEAttribute(getShadowParameter_Description(), ecorePackage.getEString(), "description", null, 1, 1, ShadowParameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(relationshipEClass, Relationship.class, "Relationship", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEReference(getRelationship_SurroundingEntity(), theRepositoryPackage.getInterfaceProvidingRequiringEntity(), null, "surroundingEntity", null, 1, 1, Relationship.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getRelationship_SurroundingEntity(), theRepositoryPackage.getInterfaceProvidingRequiringEntity(), theRepositoryPackage.getInterfaceProvidingRequiringEntity_Relationships(), "surroundingEntity", null, 1, 1, Relationship.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getRelationship_Characterization(), this.getRelationshipCharacterizationType(), "characterization", null, 1, 1, Relationship.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getRelationship_ExplicitDescription(), theFunctionsPackage.getExplicitDescription(), null, "explicitDescription", null, 0, 1, Relationship.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); diff --git a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/impl/RelationshipImpl.java b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/impl/RelationshipImpl.java index 1226738b..1d68483f 100644 --- a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/impl/RelationshipImpl.java +++ b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/parameterdependencies/impl/RelationshipImpl.java @@ -11,6 +11,7 @@ import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.Relations import edu.kit.ipd.descartes.mm.applicationlevel.repository.InterfaceProvidingRequiringEntity; +import edu.kit.ipd.descartes.mm.applicationlevel.repository.RepositoryPackage; import org.eclipse.emf.common.notify.Notification; import org.eclipse.emf.common.notify.NotificationChain; @@ -19,6 +20,7 @@ import org.eclipse.emf.ecore.InternalEObject; import org.eclipse.emf.ecore.impl.ENotificationImpl; import org.eclipse.emf.ecore.impl.EObjectImpl; +import org.eclipse.emf.ecore.util.EcoreUtil; /** * <!-- begin-user-doc --> @@ -36,16 +38,6 @@ import org.eclipse.emf.ecore.impl.EObjectImpl; * @generated */ public abstract class RelationshipImpl extends EObjectImpl implements Relationship { - /** - * The cached value of the '{@link #getSurroundingEntity() <em>Surrounding Entity</em>}' reference. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see #getSurroundingEntity() - * @generated - * @ordered - */ - protected InterfaceProvidingRequiringEntity surroundingEntity; - /** * The default value of the '{@link #getCharacterization() <em>Characterization</em>}' attribute. * <!-- begin-user-doc --> @@ -101,15 +93,8 @@ public abstract class RelationshipImpl extends EObjectImpl implements Relationsh * @generated */ public InterfaceProvidingRequiringEntity getSurroundingEntity() { - if (surroundingEntity != null && surroundingEntity.eIsProxy()) { - InternalEObject oldSurroundingEntity = (InternalEObject)surroundingEntity; - surroundingEntity = (InterfaceProvidingRequiringEntity)eResolveProxy(oldSurroundingEntity); - if (surroundingEntity != oldSurroundingEntity) { - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.RESOLVE, ParameterdependenciesPackage.RELATIONSHIP__SURROUNDING_ENTITY, oldSurroundingEntity, surroundingEntity)); - } - } - return surroundingEntity; + if (eContainerFeatureID() != ParameterdependenciesPackage.RELATIONSHIP__SURROUNDING_ENTITY) return null; + return (InterfaceProvidingRequiringEntity)eInternalContainer(); } /** @@ -117,8 +102,9 @@ public abstract class RelationshipImpl extends EObjectImpl implements Relationsh * <!-- end-user-doc --> * @generated */ - public InterfaceProvidingRequiringEntity basicGetSurroundingEntity() { - return surroundingEntity; + public NotificationChain basicSetSurroundingEntity(InterfaceProvidingRequiringEntity newSurroundingEntity, NotificationChain msgs) { + msgs = eBasicSetContainer((InternalEObject)newSurroundingEntity, ParameterdependenciesPackage.RELATIONSHIP__SURROUNDING_ENTITY, msgs); + return msgs; } /** @@ -127,10 +113,19 @@ public abstract class RelationshipImpl extends EObjectImpl implements Relationsh * @generated */ public void setSurroundingEntity(InterfaceProvidingRequiringEntity newSurroundingEntity) { - InterfaceProvidingRequiringEntity oldSurroundingEntity = surroundingEntity; - surroundingEntity = newSurroundingEntity; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, ParameterdependenciesPackage.RELATIONSHIP__SURROUNDING_ENTITY, oldSurroundingEntity, surroundingEntity)); + if (newSurroundingEntity != eInternalContainer() || (eContainerFeatureID() != ParameterdependenciesPackage.RELATIONSHIP__SURROUNDING_ENTITY && newSurroundingEntity != null)) { + if (EcoreUtil.isAncestor(this, newSurroundingEntity)) + throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); + NotificationChain msgs = null; + if (eInternalContainer() != null) + msgs = eBasicRemoveFromContainer(msgs); + if (newSurroundingEntity != null) + msgs = ((InternalEObject)newSurroundingEntity).eInverseAdd(this, RepositoryPackage.INTERFACE_PROVIDING_REQUIRING_ENTITY__RELATIONSHIPS, InterfaceProvidingRequiringEntity.class, msgs); + msgs = basicSetSurroundingEntity(newSurroundingEntity, msgs); + if (msgs != null) msgs.dispatch(); + } + else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ParameterdependenciesPackage.RELATIONSHIP__SURROUNDING_ENTITY, newSurroundingEntity, newSurroundingEntity)); } /** @@ -197,6 +192,22 @@ public abstract class RelationshipImpl extends EObjectImpl implements Relationsh eNotify(new ENotificationImpl(this, Notification.SET, ParameterdependenciesPackage.RELATIONSHIP__EXPLICIT_DESCRIPTION, newExplicitDescription, newExplicitDescription)); } + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case ParameterdependenciesPackage.RELATIONSHIP__SURROUNDING_ENTITY: + if (eInternalContainer() != null) + msgs = eBasicRemoveFromContainer(msgs); + return basicSetSurroundingEntity((InterfaceProvidingRequiringEntity)otherEnd, msgs); + } + return super.eInverseAdd(otherEnd, featureID, msgs); + } + /** * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -205,12 +216,28 @@ public abstract class RelationshipImpl extends EObjectImpl implements Relationsh @Override public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { switch (featureID) { + case ParameterdependenciesPackage.RELATIONSHIP__SURROUNDING_ENTITY: + return basicSetSurroundingEntity(null, msgs); case ParameterdependenciesPackage.RELATIONSHIP__EXPLICIT_DESCRIPTION: return basicSetExplicitDescription(null, msgs); } return super.eInverseRemove(otherEnd, featureID, msgs); } + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) { + switch (eContainerFeatureID()) { + case ParameterdependenciesPackage.RELATIONSHIP__SURROUNDING_ENTITY: + return eInternalContainer().eInverseRemove(this, RepositoryPackage.INTERFACE_PROVIDING_REQUIRING_ENTITY__RELATIONSHIPS, InterfaceProvidingRequiringEntity.class, msgs); + } + return super.eBasicRemoveFromContainerFeature(msgs); + } + /** * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -220,8 +247,7 @@ public abstract class RelationshipImpl extends EObjectImpl implements Relationsh public Object eGet(int featureID, boolean resolve, boolean coreType) { switch (featureID) { case ParameterdependenciesPackage.RELATIONSHIP__SURROUNDING_ENTITY: - if (resolve) return getSurroundingEntity(); - return basicGetSurroundingEntity(); + return getSurroundingEntity(); case ParameterdependenciesPackage.RELATIONSHIP__CHARACTERIZATION: return getCharacterization(); case ParameterdependenciesPackage.RELATIONSHIP__EXPLICIT_DESCRIPTION: @@ -281,7 +307,7 @@ public abstract class RelationshipImpl extends EObjectImpl implements Relationsh public boolean eIsSet(int featureID) { switch (featureID) { case ParameterdependenciesPackage.RELATIONSHIP__SURROUNDING_ENTITY: - return surroundingEntity != null; + return getSurroundingEntity() != null; case ParameterdependenciesPackage.RELATIONSHIP__CHARACTERIZATION: return characterization != CHARACTERIZATION_EDEFAULT; case ParameterdependenciesPackage.RELATIONSHIP__EXPLICIT_DESCRIPTION: diff --git a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/repository/InterfaceProvidingRequiringEntity.java b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/repository/InterfaceProvidingRequiringEntity.java index ee8aa801..8866a930 100644 --- a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/repository/InterfaceProvidingRequiringEntity.java +++ b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/repository/InterfaceProvidingRequiringEntity.java @@ -46,17 +46,19 @@ public interface InterfaceProvidingRequiringEntity extends InterfaceProvidingEnt EList<CoarseGrainedBehavior> getCoarseGrainedBehavior(); /** - * Returns the value of the '<em><b>Relationships</b></em>' reference list. + * Returns the value of the '<em><b>Relationships</b></em>' containment reference list. * The list contents are of type {@link edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.Relationship}. + * It is bidirectional and its opposite is '{@link edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.Relationship#getSurroundingEntity <em>Surrounding Entity</em>}'. * <!-- begin-user-doc --> * <p> * If the meaning of the '<em>Relationships</em>' reference list isn't clear, * there really should be more of a description here... * </p> * <!-- end-user-doc --> - * @return the value of the '<em>Relationships</em>' reference list. + * @return the value of the '<em>Relationships</em>' containment reference list. * @see edu.kit.ipd.descartes.mm.applicationlevel.repository.RepositoryPackage#getInterfaceProvidingRequiringEntity_Relationships() - * @model ordered="false" + * @see edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.Relationship#getSurroundingEntity + * @model opposite="surroundingEntity" containment="true" ordered="false" * @generated */ EList<Relationship> getRelationships(); diff --git a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/repository/RepositoryPackage.java b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/repository/RepositoryPackage.java index 91b1da67..5aa1d65a 100644 --- a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/repository/RepositoryPackage.java +++ b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/repository/RepositoryPackage.java @@ -264,7 +264,7 @@ public interface RepositoryPackage extends EPackage { int INTERFACE_PROVIDING_REQUIRING_ENTITY__COARSE_GRAINED_BEHAVIOR = INTERFACE_PROVIDING_ENTITY_FEATURE_COUNT + 1; /** - * The feature id for the '<em><b>Relationships</b></em>' reference list. + * The feature id for the '<em><b>Relationships</b></em>' containment reference list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated @@ -602,7 +602,7 @@ public interface RepositoryPackage extends EPackage { int COMPOSED_PROVIDING_REQUIRING_ENTITY__COARSE_GRAINED_BEHAVIOR = COMPOSED_STRUCTURE_FEATURE_COUNT + 3; /** - * The feature id for the '<em><b>Relationships</b></em>' reference list. + * The feature id for the '<em><b>Relationships</b></em>' containment reference list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated @@ -931,7 +931,7 @@ public interface RepositoryPackage extends EPackage { int REPOSITORY_COMPONENT__COARSE_GRAINED_BEHAVIOR = INTERFACE_PROVIDING_REQUIRING_ENTITY__COARSE_GRAINED_BEHAVIOR; /** - * The feature id for the '<em><b>Relationships</b></em>' reference list. + * The feature id for the '<em><b>Relationships</b></em>' containment reference list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated @@ -1022,7 +1022,7 @@ public interface RepositoryPackage extends EPackage { int BASIC_COMPONENT__COARSE_GRAINED_BEHAVIOR = REPOSITORY_COMPONENT__COARSE_GRAINED_BEHAVIOR; /** - * The feature id for the '<em><b>Relationships</b></em>' reference list. + * The feature id for the '<em><b>Relationships</b></em>' containment reference list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated @@ -1177,7 +1177,7 @@ public interface RepositoryPackage extends EPackage { int COMPOSITE_COMPONENT__COARSE_GRAINED_BEHAVIOR = REPOSITORY_COMPONENT__COARSE_GRAINED_BEHAVIOR; /** - * The feature id for the '<em><b>Relationships</b></em>' reference list. + * The feature id for the '<em><b>Relationships</b></em>' containment reference list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated @@ -1304,7 +1304,7 @@ public interface RepositoryPackage extends EPackage { int SUB_SYSTEM__COARSE_GRAINED_BEHAVIOR = REPOSITORY_COMPONENT__COARSE_GRAINED_BEHAVIOR; /** - * The feature id for the '<em><b>Relationships</b></em>' reference list. + * The feature id for the '<em><b>Relationships</b></em>' containment reference list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated @@ -2058,10 +2058,10 @@ public interface RepositoryPackage extends EPackage { EReference getInterfaceProvidingRequiringEntity_CoarseGrainedBehavior(); /** - * Returns the meta object for the reference list '{@link edu.kit.ipd.descartes.mm.applicationlevel.repository.InterfaceProvidingRequiringEntity#getRelationships <em>Relationships</em>}'. + * Returns the meta object for the containment reference list '{@link edu.kit.ipd.descartes.mm.applicationlevel.repository.InterfaceProvidingRequiringEntity#getRelationships <em>Relationships</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for the reference list '<em>Relationships</em>'. + * @return the meta object for the containment reference list '<em>Relationships</em>'. * @see edu.kit.ipd.descartes.mm.applicationlevel.repository.InterfaceProvidingRequiringEntity#getRelationships() * @see #getInterfaceProvidingRequiringEntity() * @generated @@ -2940,7 +2940,7 @@ public interface RepositoryPackage extends EPackage { EReference INTERFACE_PROVIDING_REQUIRING_ENTITY__COARSE_GRAINED_BEHAVIOR = eINSTANCE.getInterfaceProvidingRequiringEntity_CoarseGrainedBehavior(); /** - * The meta object literal for the '<em><b>Relationships</b></em>' reference list feature. + * The meta object literal for the '<em><b>Relationships</b></em>' containment reference list feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated diff --git a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/repository/impl/ComposedProvidingRequiringEntityImpl.java b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/repository/impl/ComposedProvidingRequiringEntityImpl.java index e837c80b..d38bf22e 100644 --- a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/repository/impl/ComposedProvidingRequiringEntityImpl.java +++ b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/repository/impl/ComposedProvidingRequiringEntityImpl.java @@ -3,6 +3,7 @@ */ package edu.kit.ipd.descartes.mm.applicationlevel.repository.impl; +import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.ParameterdependenciesPackage; import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.Relationship; import edu.kit.ipd.descartes.mm.applicationlevel.repository.ComposedProvidingRequiringEntity; @@ -89,7 +90,7 @@ public abstract class ComposedProvidingRequiringEntityImpl extends ComposedStruc protected EList<CoarseGrainedBehavior> coarseGrainedBehavior; /** - * The cached value of the '{@link #getRelationships() <em>Relationships</em>}' reference list. + * The cached value of the '{@link #getRelationships() <em>Relationships</em>}' containment reference list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getRelationships() @@ -172,7 +173,7 @@ public abstract class ComposedProvidingRequiringEntityImpl extends ComposedStruc */ public EList<Relationship> getRelationships() { if (relationships == null) { - relationships = new EObjectResolvingEList<Relationship>(Relationship.class, this, RepositoryPackage.COMPOSED_PROVIDING_REQUIRING_ENTITY__RELATIONSHIPS); + relationships = new EObjectContainmentWithInverseEList<Relationship>(Relationship.class, this, RepositoryPackage.COMPOSED_PROVIDING_REQUIRING_ENTITY__RELATIONSHIPS, ParameterdependenciesPackage.RELATIONSHIP__SURROUNDING_ENTITY); } return relationships; } @@ -190,6 +191,8 @@ public abstract class ComposedProvidingRequiringEntityImpl extends ComposedStruc return ((InternalEList<InternalEObject>)(InternalEList<?>)getInterfaceProvidingRoles()).basicAdd(otherEnd, msgs); case RepositoryPackage.COMPOSED_PROVIDING_REQUIRING_ENTITY__INTERFACE_REQUIRING_ROLES: return ((InternalEList<InternalEObject>)(InternalEList<?>)getInterfaceRequiringRoles()).basicAdd(otherEnd, msgs); + case RepositoryPackage.COMPOSED_PROVIDING_REQUIRING_ENTITY__RELATIONSHIPS: + return ((InternalEList<InternalEObject>)(InternalEList<?>)getRelationships()).basicAdd(otherEnd, msgs); } return super.eInverseAdd(otherEnd, featureID, msgs); } @@ -210,6 +213,8 @@ public abstract class ComposedProvidingRequiringEntityImpl extends ComposedStruc return ((InternalEList<?>)getInterfaceRequiringRoles()).basicRemove(otherEnd, msgs); case RepositoryPackage.COMPOSED_PROVIDING_REQUIRING_ENTITY__COARSE_GRAINED_BEHAVIOR: return ((InternalEList<?>)getCoarseGrainedBehavior()).basicRemove(otherEnd, msgs); + case RepositoryPackage.COMPOSED_PROVIDING_REQUIRING_ENTITY__RELATIONSHIPS: + return ((InternalEList<?>)getRelationships()).basicRemove(otherEnd, msgs); } return super.eInverseRemove(otherEnd, featureID, msgs); } diff --git a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/repository/impl/InterfaceProvidingRequiringEntityImpl.java b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/repository/impl/InterfaceProvidingRequiringEntityImpl.java index db134332..6489f3df 100644 --- a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/repository/impl/InterfaceProvidingRequiringEntityImpl.java +++ b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/repository/impl/InterfaceProvidingRequiringEntityImpl.java @@ -3,6 +3,7 @@ */ package edu.kit.ipd.descartes.mm.applicationlevel.repository.impl; +import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.ParameterdependenciesPackage; import edu.kit.ipd.descartes.mm.applicationlevel.parameterdependencies.Relationship; import edu.kit.ipd.descartes.mm.applicationlevel.repository.InterfaceProvidingRequiringEntity; @@ -63,7 +64,7 @@ public abstract class InterfaceProvidingRequiringEntityImpl extends InterfacePro protected EList<CoarseGrainedBehavior> coarseGrainedBehavior; /** - * The cached value of the '{@link #getRelationships() <em>Relationships</em>}' reference list. + * The cached value of the '{@link #getRelationships() <em>Relationships</em>}' containment reference list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getRelationships() @@ -122,7 +123,7 @@ public abstract class InterfaceProvidingRequiringEntityImpl extends InterfacePro */ public EList<Relationship> getRelationships() { if (relationships == null) { - relationships = new EObjectResolvingEList<Relationship>(Relationship.class, this, RepositoryPackage.INTERFACE_PROVIDING_REQUIRING_ENTITY__RELATIONSHIPS); + relationships = new EObjectContainmentWithInverseEList<Relationship>(Relationship.class, this, RepositoryPackage.INTERFACE_PROVIDING_REQUIRING_ENTITY__RELATIONSHIPS, ParameterdependenciesPackage.RELATIONSHIP__SURROUNDING_ENTITY); } return relationships; } @@ -138,6 +139,8 @@ public abstract class InterfaceProvidingRequiringEntityImpl extends InterfacePro switch (featureID) { case RepositoryPackage.INTERFACE_PROVIDING_REQUIRING_ENTITY__INTERFACE_REQUIRING_ROLES: return ((InternalEList<InternalEObject>)(InternalEList<?>)getInterfaceRequiringRoles()).basicAdd(otherEnd, msgs); + case RepositoryPackage.INTERFACE_PROVIDING_REQUIRING_ENTITY__RELATIONSHIPS: + return ((InternalEList<InternalEObject>)(InternalEList<?>)getRelationships()).basicAdd(otherEnd, msgs); } return super.eInverseAdd(otherEnd, featureID, msgs); } @@ -154,6 +157,8 @@ public abstract class InterfaceProvidingRequiringEntityImpl extends InterfacePro return ((InternalEList<?>)getInterfaceRequiringRoles()).basicRemove(otherEnd, msgs); case RepositoryPackage.INTERFACE_PROVIDING_REQUIRING_ENTITY__COARSE_GRAINED_BEHAVIOR: return ((InternalEList<?>)getCoarseGrainedBehavior()).basicRemove(otherEnd, msgs); + case RepositoryPackage.INTERFACE_PROVIDING_REQUIRING_ENTITY__RELATIONSHIPS: + return ((InternalEList<?>)getRelationships()).basicRemove(otherEnd, msgs); } return super.eInverseRemove(otherEnd, featureID, msgs); } diff --git a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/repository/impl/RepositoryPackageImpl.java b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/repository/impl/RepositoryPackageImpl.java index f7f1329b..05d54263 100644 --- a/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/repository/impl/RepositoryPackageImpl.java +++ b/edu.kit.ipd.descartes.mm.applicationlevel/src/edu/kit/ipd/descartes/mm/applicationlevel/repository/impl/RepositoryPackageImpl.java @@ -1329,7 +1329,7 @@ public class RepositoryPackageImpl extends EPackageImpl implements RepositoryPac initEClass(interfaceProvidingRequiringEntityEClass, InterfaceProvidingRequiringEntity.class, "InterfaceProvidingRequiringEntity", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getInterfaceProvidingRequiringEntity_CoarseGrainedBehavior(), theServicebehaviorPackage.getCoarseGrainedBehavior(), null, "coarseGrainedBehavior", null, 0, -1, InterfaceProvidingRequiringEntity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); - initEReference(getInterfaceProvidingRequiringEntity_Relationships(), theParameterdependenciesPackage.getRelationship(), null, "relationships", null, 0, -1, InterfaceProvidingRequiringEntity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); + initEReference(getInterfaceProvidingRequiringEntity_Relationships(), theParameterdependenciesPackage.getRelationship(), theParameterdependenciesPackage.getRelationship_SurroundingEntity(), "relationships", null, 0, -1, InterfaceProvidingRequiringEntity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); initEClass(importEClass, Import.class, "Import", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEAttribute(getImport_ImportURI(), ecorePackage.getEString(), "importURI", null, 0, 1, Import.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); -- GitLab