diff --git a/edu.kit.ipd.descartes.mm.applicationlevel/model/parameterdependency.ecore b/edu.kit.ipd.descartes.mm.applicationlevel/model/parameterdependency.ecore index b2038b35fee946b1a5c972d4e7e4c246d81ae165..8f4eabfb59a35bb085cb3a7e76e0ed66a704adb7 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 c047df27c849c1d66fe786ffbc1b9e19587ce55c..623bcbb5183d50702cff52cd0befdc26b92af7e2 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 2ba8154afcf7bc0f6ef335e0fcc6c2180f08c1da..63e693383d00992387ecd05ef2b08924a2d4d625 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 b4d8ff13b193598fc8b556b38d421e1eeef00310..1b719d9a818458783ec4e019cfef5156aa8d7f48 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 be4e44dba040c4b226f2fac42c93b7e86103ed05..0361e4193e16a1ad8cd8f4ebb59f0c8b1af235d0 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 dfbc398f8ba4d7c3ef2be1702d6ebcc25d47ab30..e641d14b3b6e48bbaa2513a0e57b6dc6fd8b15d6 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 1226738b7183bc207bbd05581cf0c550b76c5da3..1d68483f6b14508777e0775184cc0d613912bae6 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 ee8aa801b3e1fa7e1cf52c18dcfb105cfebb645c..8866a93056f1cb9c4c8690901681e8c9b8faf86b 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 91b1da67e42cf96bc3670ba1fac10715d76b5fa1..5aa1d65af0d864a4bc9cea862c5cf0038784522c 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 e837c80be68babcd6ac90fb6a4fb0d997ce40e9a..d38bf22e8772de079e4757856748d5c39009a1c4 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 db1343323366579e3d9c3856ee7979d29a167de5..6489f3df033d9576d7927f021385e2a9916b5e9b 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 f7f1329b86b97a6fe1eb924fac4bdd4a844da817..05d54263691fb7e52be4f6b3c525bf2605df96b0 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);