Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEd Seidewitz2016-01-15 12:14:21 -0500
committerjeremie.tatibouet2016-03-21 11:23:46 -0400
commite3a16556d3bc6ebfb0c03360608ba060c67a741b (patch)
tree714fecfff1702cce8e578f0e90ddbca0bda3192c
parent223fc6a5af4d0ccaa2310d7e50bf2317b80c386a (diff)
downloadorg.eclipse.papyrus-e3a16556d3bc6ebfb0c03360608ba060c67a741b.tar.gz
org.eclipse.papyrus-e3a16556d3bc6ebfb0c03360608ba060c67a741b.tar.xz
org.eclipse.papyrus-e3a16556d3bc6ebfb0c03360608ba060c67a741b.zip
Bug 485950 - Fixed linkOperationExpressionArgumentCompatibility
validation. - Updated constraint to use the ownedEnd list for an external association. - Add checks for link operation expressions and association reads that the association owns all its ends. - Also updated the reverse mapping from a UML association to Alf to use the ownedEnd list, rather than memberEnd. Change-Id: Iaaa5fd296aaeae99e80a27b7514366819cba36cb Signed-off-by: Ed Seidewitz <ed-s@modeldriven.com>
-rw-r--r--plugins/uml/alf/org.eclipse.papyrus.uml.alf.to.fuml/transformation/UML2Alf.qvto6
-rw-r--r--plugins/uml/alf/org.eclipse.papyrus.uml.alf/model/alf.ecore38
-rw-r--r--plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/AlfPackage.java270
-rw-r--r--plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/BehaviorInvocationExpression.java2
-rw-r--r--plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/BitStringUnaryExpression.java2
-rw-r--r--plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/BoundElementReference.java16
-rw-r--r--plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/ExternalElementReference.java20
-rw-r--r--plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/InvocationExpression.java2
-rw-r--r--plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/LinkOperationExpression.java4
-rw-r--r--plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/impl/AlfPackageImpl.java190
-rw-r--r--plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/impl/BehaviorInvocationExpressionImpl.java5
-rw-r--r--plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/impl/BoundElementReferenceImpl.java54
-rw-r--r--plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/impl/ExternalElementReferenceImpl.java54
-rw-r--r--plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/impl/LinkOperationExpressionImpl.java5
-rw-r--r--plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/impl/alf.ecore38
15 files changed, 331 insertions, 375 deletions
diff --git a/plugins/uml/alf/org.eclipse.papyrus.uml.alf.to.fuml/transformation/UML2Alf.qvto b/plugins/uml/alf/org.eclipse.papyrus.uml.alf.to.fuml/transformation/UML2Alf.qvto
index a30a08c6dbb..f6221e8f97f 100644
--- a/plugins/uml/alf/org.eclipse.papyrus.uml.alf.to.fuml/transformation/UML2Alf.qvto
+++ b/plugins/uml/alf/org.eclipse.papyrus.uml.alf.to.fuml/transformation/UML2Alf.qvto
@@ -262,10 +262,10 @@ mapping PrimitiveType::toMember() : Member
mapping Association::toAssociationDefinition() : AssociationDefinition
inherits Classifier::toClassifierDefinition {
- ownedMember += self.memberEnd->map toMember();
- if self.name->isEmpty() or self.name = "" then {
+ ownedMember += self.ownedEnd->map toMember();
+ if self.name = null or self.name = "" then {
name := "A";
- self.memberEnd.name->forEach(endName) {
+ self.ownedEnd.name->forEach(endName) {
name := name + "_" + endName;
};
name := toName(name);
diff --git a/plugins/uml/alf/org.eclipse.papyrus.uml.alf/model/alf.ecore b/plugins/uml/alf/org.eclipse.papyrus.uml.alf/model/alf.ecore
index 341f8eb01c5..7b9b008aa49 100644
--- a/plugins/uml/alf/org.eclipse.papyrus.uml.alf/model/alf.ecore
+++ b/plugins/uml/alf/org.eclipse.papyrus.uml.alf/model/alf.ecore
@@ -1229,22 +1229,12 @@
</eOperations>
<eOperations name="properties" upperBound="-1" eType="#//ElementReference">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
- <details key="body" value="&#xA; if not self.isClassifier() then OrderedSet(ElementReference){}&#xA; else if self.isAssociation() then&#xA; -- NOTE: This is to ensure proper ordering.&#xA; self.memberEnds()->appendAll(self.parents().properties()->asOrderedSet())&#xA; else&#xA; self.element.oclAsType(uml::Classifier).allAttributes()->&#xA; collect(a | ExternalElementReference{element = a})->&#xA; asOrderedSet()&#xA; endif endif"/>
- </eAnnotations>
- </eOperations>
- <eOperations name="memberEnds" upperBound="-1" eType="#//ElementReference">
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
- <details key="body" value="&#xA; if not self.isAssociation() then OrderedSet(ElementReference){}&#xA; else&#xA; self.element.oclAsType(uml::Association).memberEnd->&#xA; collect(e | ExternalElementReference{element = e})->&#xA; asOrderedSet()&#xA; endif"/>
+ <details key="body" value="&#xA; if not self.isClassifier() then OrderedSet(ElementReference){}&#xA; else if self.isAssociation() then &#xA; &#x9;self.members()->select(isProperty())&#xA; else&#xA; self.element.oclAsType(uml::Classifier).allAttributes()->&#xA; collect(a | ExternalElementReference{element = a})->&#xA; asOrderedSet()&#xA; endif endif"/>
</eAnnotations>
</eOperations>
<eOperations name="associationEnds" upperBound="-1" eType="#//ElementReference">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
- <details key="body" value="&#xA; -- NOTE: This is to ensure proper ordering.&#xA; self.ownedEnds()->appendAll(self.parents().associationEnds()->asOrderedSet())"/>
- </eAnnotations>
- </eOperations>
- <eOperations name="ownedEnds" upperBound="-1" eType="#//ElementReference">
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
- <details key="body" value="&#xA; if not self.isAssociation() then OrderedSet(ElementReference){}&#xA; else&#xA; self.element.oclAsType(uml::Association).ownedEnd->&#xA; collect(e | ExternalElementReference{element = e})->&#xA; asOrderedSet()&#xA; endif"/>
+ <details key="body" value="&#xA;&#x9;&#x9;if not self.isAssociation() then OrderedSet(ElementReference){}&#xA;&#x9;&#x9;else &#xA;&#x9;&#x9;&#x9;self.element.oclAsType(uml::Association).ownedEnd->&#xA; collect(e | ExternalElementReference{element = e})->&#xA; asOrderedSet()&#xA;&#x9;&#x9;endif"/>
</eAnnotations>
</eOperations>
<eOperations name="opposite" eType="#//ElementReference">
@@ -1733,6 +1723,16 @@
<details key="body" value="self.boundReferencesTo(self.referent.nestedClassifiers())->asOrderedSet()"/>
</eAnnotations>
</eOperations>
+ <eOperations name="properties" upperBound="-1" eType="#//ElementReference">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
+ <details key="body" value="self.boundReferencesTo(self.referent.properties())->asOrderedSet()"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="associationEnds" upperBound="-1" eType="#//ElementReference">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
+ <details key="body" value="self.boundReferencesTo(self.referent.associationEnds())->asOrderedSet()"/>
+ </eAnnotations>
+ </eOperations>
<eOperations name="opposite" eType="#//ElementReference">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="&#xA; self.boundReferenceTo(self.referent.opposite())"/>
@@ -3972,7 +3972,7 @@
</eOperations>
<eOperations name="InvocationExpression_parameterElements" upperBound="-1" eType="#//ElementReference">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
- <details key="body" value="&#xA; let referent = self.referent in&#xA; if self.isBehavior or self.isOperation then&#xA; referent.parameters()&#xA; else if self.isAssociationEnd then&#xA; let association = referent.association() in&#xA; association.properties()->reject(equals(referent))->&#xA; collect(p | self.parameterFromPropertyWithMultiplicity(p, '1', '1'))->asOrderedSet()&#xA; else if referent &lt;> null then&#xA; referent.properties()->&#xA; collect(p | self.parameterFromProperty(p))->asOrderedSet() &#xA; else&#xA; OrderedSet(ElementReference){}&#xA; endif endif endif"/>
+ <details key="body" value="&#xA; let referent = self.referent in&#xA; if self.isBehavior or self.isOperation then&#xA; referent.parameters()&#xA; else if self.isAssociationEnd then&#xA; let association = referent.association() in&#xA; association.associationEnds()->reject(equals(referent))->&#xA; collect(p | self.parameterFromPropertyWithMultiplicity(p, '1', '1'))->asOrderedSet()&#xA; else if referent &lt;> null then&#xA; referent.properties()->&#xA; collect(p | self.parameterFromProperty(p))->asOrderedSet() &#xA; else&#xA; OrderedSet(ElementReference){}&#xA; endif endif endif"/>
</eAnnotations>
</eOperations>
<eOperations name="parameterFromProperty" lowerBound="1" eType="#//ElementReference">
@@ -5118,7 +5118,7 @@
<details key="documentation" value="The qualified name of a link operation expression must resolve to a&#xA;single association."/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
- <details key="body" value="self.referent &lt;> null"/>
+ <details key="body" value="&#xA;&#x9;self.referent &lt;> null and &#xA;&#x9;-- Also check that the association owns all its ends.&#xA;&#x9;self.referent.properties()->forAll(isAssociationEnd())"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
@@ -5148,7 +5148,7 @@
<details key="documentation" value="For a clear association operation, returns a single, typeless parameter.&#xA;Otherwise, returns the ends of the named association."/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
- <details key="body" value="&#xA; if self.isClear then&#xA; OrderedSet(ElementReference){&#xA; FormalParameter{&#xA; direction = 'in',&#xA; typePart = TypedElementDefinition{&#xA; lowerBound = '1',&#xA; upperBound = '1'&#xA; }&#xA; }.toReference()&#xA; }&#xA; else&#xA; let referent = self.referent in&#xA; if referent = null then OrderedSet(ElementReference){}&#xA; else&#xA; self.referent.properties()->collect(property | &#xA; -- NOTE: Arguments for a link operation have multiplicity 1..1.&#xA; parameterFromPropertyWithMultiplicity(property, '1', '1')&#xA; )->asOrderedSet()&#xA; endif&#xA; endif"/>
+ <details key="body" value="&#xA; if self.isClear then&#xA; OrderedSet(ElementReference){&#xA; FormalParameter{&#xA; direction = 'in',&#xA; typePart = TypedElementDefinition{&#xA; lowerBound = '1',&#xA; upperBound = '1'&#xA; }&#xA; }.toReference()&#xA; }&#xA; else&#xA; let referent = self.referent in&#xA; if referent = null then OrderedSet(ElementReference){}&#xA; else&#xA; self.referent.associationEnds()->collect(property | &#xA; -- NOTE: Arguments for a link operation have multiplicity 1..1.&#xA; parameterFromPropertyWithMultiplicity(property, '1', '1')&#xA; )->asOrderedSet()&#xA; endif&#xA; endif"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="operation" lowerBound="1"
@@ -7054,12 +7054,6 @@
<eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
<details key="documentation" value="Whether BitString conversion is required on the operand expression."/>
</eAnnotations>
- <eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
- <details key="body" value="FeatureInvocationExpression"/>
- </eAnnotations>
- <eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
- <details key="body" value="FeatureInvocationExpression"/>
- </eAnnotations>
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="derivation" value="self.isIntegerType(self.operand.type)"/>
</eAnnotations>
@@ -7211,7 +7205,7 @@
<details key="documentation" value="If the target qualified name does not disambiguate to a feature reference,&#xA;then it must resolve to a behavior or an association end. Otherwise it&#xA;must resolve to a single feature referent according to the overloading&#xA;resolution rules, unless it is an implicit destructor call (in which case&#xA;it has no referent)."/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
- <details key="body" value="&#xA; self.isImplicit or &#xA; let referent = self.referent in&#xA; referent &lt;> null and &#xA; -- NOTE: This check prevents the invocation from disambiguating to an &#xA; -- illegal constructor invocation.&#xA; not referent.isConstructor()"/>
+ <details key="body" value="&#xA; self.isImplicit or &#xA; let referent = self.referent in&#xA; referent &lt;> null and &#xA; -- NOTE: This check prevents the invocation from disambiguating to an &#xA; -- illegal constructor invocation.&#xA; not referent.isConstructor() and&#xA; -- Also check that the association owns all its ends.&#xA; referent.isAssociationEnd() implies&#xA; &#x9;referent.association().properties()->forAll(isAssociationEnd())"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
diff --git a/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/AlfPackage.java b/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/AlfPackage.java
index d20feadb06c..46ea3ff0e0d 100644
--- a/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/AlfPackage.java
+++ b/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/AlfPackage.java
@@ -3234,31 +3234,13 @@ public interface AlfPackage extends EPackage {
int EXTERNAL_ELEMENT_REFERENCE___PROPERTIES = ELEMENT_REFERENCE_OPERATION_COUNT + 49;
/**
- * The operation id for the '<em>Member Ends</em>' operation.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- * @ordered
- */
- int EXTERNAL_ELEMENT_REFERENCE___MEMBER_ENDS = ELEMENT_REFERENCE_OPERATION_COUNT + 50;
-
- /**
* The operation id for the '<em>Association Ends</em>' operation.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int EXTERNAL_ELEMENT_REFERENCE___ASSOCIATION_ENDS = ELEMENT_REFERENCE_OPERATION_COUNT + 51;
-
- /**
- * The operation id for the '<em>Owned Ends</em>' operation.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- * @ordered
- */
- int EXTERNAL_ELEMENT_REFERENCE___OWNED_ENDS = ELEMENT_REFERENCE_OPERATION_COUNT + 52;
+ int EXTERNAL_ELEMENT_REFERENCE___ASSOCIATION_ENDS = ELEMENT_REFERENCE_OPERATION_COUNT + 50;
/**
* The operation id for the '<em>Opposite</em>' operation.
@@ -3267,7 +3249,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int EXTERNAL_ELEMENT_REFERENCE___OPPOSITE = ELEMENT_REFERENCE_OPERATION_COUNT + 53;
+ int EXTERNAL_ELEMENT_REFERENCE___OPPOSITE = ELEMENT_REFERENCE_OPERATION_COUNT + 51;
/**
* The operation id for the '<em>Signal</em>' operation.
@@ -3276,7 +3258,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int EXTERNAL_ELEMENT_REFERENCE___SIGNAL = ELEMENT_REFERENCE_OPERATION_COUNT + 54;
+ int EXTERNAL_ELEMENT_REFERENCE___SIGNAL = ELEMENT_REFERENCE_OPERATION_COUNT + 52;
/**
* The operation id for the '<em>Namespace</em>' operation.
@@ -3285,7 +3267,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int EXTERNAL_ELEMENT_REFERENCE___NAMESPACE = ELEMENT_REFERENCE_OPERATION_COUNT + 55;
+ int EXTERNAL_ELEMENT_REFERENCE___NAMESPACE = ELEMENT_REFERENCE_OPERATION_COUNT + 53;
/**
* The operation id for the '<em>Owned Parameters</em>' operation.
@@ -3294,7 +3276,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int EXTERNAL_ELEMENT_REFERENCE___OWNED_PARAMETERS = ELEMENT_REFERENCE_OPERATION_COUNT + 56;
+ int EXTERNAL_ELEMENT_REFERENCE___OWNED_PARAMETERS = ELEMENT_REFERENCE_OPERATION_COUNT + 54;
/**
* The operation id for the '<em>Parameters</em>' operation.
@@ -3303,7 +3285,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int EXTERNAL_ELEMENT_REFERENCE___PARAMETERS = ELEMENT_REFERENCE_OPERATION_COUNT + 57;
+ int EXTERNAL_ELEMENT_REFERENCE___PARAMETERS = ELEMENT_REFERENCE_OPERATION_COUNT + 55;
/**
* The operation id for the '<em>Return Parameter</em>' operation.
@@ -3312,7 +3294,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int EXTERNAL_ELEMENT_REFERENCE___RETURN_PARAMETER = ELEMENT_REFERENCE_OPERATION_COUNT + 58;
+ int EXTERNAL_ELEMENT_REFERENCE___RETURN_PARAMETER = ELEMENT_REFERENCE_OPERATION_COUNT + 56;
/**
* The operation id for the '<em>Specification</em>' operation.
@@ -3321,7 +3303,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int EXTERNAL_ELEMENT_REFERENCE___SPECIFICATION = ELEMENT_REFERENCE_OPERATION_COUNT + 59;
+ int EXTERNAL_ELEMENT_REFERENCE___SPECIFICATION = ELEMENT_REFERENCE_OPERATION_COUNT + 57;
/**
* The operation id for the '<em>Redefined Operations</em>' operation.
@@ -3330,7 +3312,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int EXTERNAL_ELEMENT_REFERENCE___REDEFINED_OPERATIONS = ELEMENT_REFERENCE_OPERATION_COUNT + 60;
+ int EXTERNAL_ELEMENT_REFERENCE___REDEFINED_OPERATIONS = ELEMENT_REFERENCE_OPERATION_COUNT + 58;
/**
* The operation id for the '<em>Template</em>' operation.
@@ -3339,7 +3321,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int EXTERNAL_ELEMENT_REFERENCE___TEMPLATE = ELEMENT_REFERENCE_OPERATION_COUNT + 61;
+ int EXTERNAL_ELEMENT_REFERENCE___TEMPLATE = ELEMENT_REFERENCE_OPERATION_COUNT + 59;
/**
* The operation id for the '<em>Uml Template Binding</em>' operation.
@@ -3348,7 +3330,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int EXTERNAL_ELEMENT_REFERENCE___UML_TEMPLATE_BINDING = ELEMENT_REFERENCE_OPERATION_COUNT + 62;
+ int EXTERNAL_ELEMENT_REFERENCE___UML_TEMPLATE_BINDING = ELEMENT_REFERENCE_OPERATION_COUNT + 60;
/**
* The operation id for the '<em>Template Parameters</em>' operation.
@@ -3357,7 +3339,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int EXTERNAL_ELEMENT_REFERENCE___TEMPLATE_PARAMETERS = ELEMENT_REFERENCE_OPERATION_COUNT + 63;
+ int EXTERNAL_ELEMENT_REFERENCE___TEMPLATE_PARAMETERS = ELEMENT_REFERENCE_OPERATION_COUNT + 61;
/**
* The operation id for the '<em>Parametered Elements</em>' operation.
@@ -3366,7 +3348,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int EXTERNAL_ELEMENT_REFERENCE___PARAMETERED_ELEMENTS = ELEMENT_REFERENCE_OPERATION_COUNT + 64;
+ int EXTERNAL_ELEMENT_REFERENCE___PARAMETERED_ELEMENTS = ELEMENT_REFERENCE_OPERATION_COUNT + 62;
/**
* The operation id for the '<em>Template Actuals</em>' operation.
@@ -3375,7 +3357,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int EXTERNAL_ELEMENT_REFERENCE___TEMPLATE_ACTUALS = ELEMENT_REFERENCE_OPERATION_COUNT + 65;
+ int EXTERNAL_ELEMENT_REFERENCE___TEMPLATE_ACTUALS = ELEMENT_REFERENCE_OPERATION_COUNT + 63;
/**
* The operation id for the '<em>Direction</em>' operation.
@@ -3384,7 +3366,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int EXTERNAL_ELEMENT_REFERENCE___DIRECTION = ELEMENT_REFERENCE_OPERATION_COUNT + 66;
+ int EXTERNAL_ELEMENT_REFERENCE___DIRECTION = ELEMENT_REFERENCE_OPERATION_COUNT + 64;
/**
* The operation id for the '<em>Association</em>' operation.
@@ -3393,7 +3375,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int EXTERNAL_ELEMENT_REFERENCE___ASSOCIATION = ELEMENT_REFERENCE_OPERATION_COUNT + 67;
+ int EXTERNAL_ELEMENT_REFERENCE___ASSOCIATION = ELEMENT_REFERENCE_OPERATION_COUNT + 65;
/**
* The operation id for the '<em>Type</em>' operation.
@@ -3402,7 +3384,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int EXTERNAL_ELEMENT_REFERENCE___TYPE = ELEMENT_REFERENCE_OPERATION_COUNT + 68;
+ int EXTERNAL_ELEMENT_REFERENCE___TYPE = ELEMENT_REFERENCE_OPERATION_COUNT + 66;
/**
* The operation id for the '<em>Lower</em>' operation.
@@ -3411,7 +3393,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int EXTERNAL_ELEMENT_REFERENCE___LOWER = ELEMENT_REFERENCE_OPERATION_COUNT + 69;
+ int EXTERNAL_ELEMENT_REFERENCE___LOWER = ELEMENT_REFERENCE_OPERATION_COUNT + 67;
/**
* The operation id for the '<em>Upper</em>' operation.
@@ -3420,7 +3402,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int EXTERNAL_ELEMENT_REFERENCE___UPPER = ELEMENT_REFERENCE_OPERATION_COUNT + 70;
+ int EXTERNAL_ELEMENT_REFERENCE___UPPER = ELEMENT_REFERENCE_OPERATION_COUNT + 68;
/**
* The operation id for the '<em>Is Ordered</em>' operation.
@@ -3429,7 +3411,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int EXTERNAL_ELEMENT_REFERENCE___IS_ORDERED = ELEMENT_REFERENCE_OPERATION_COUNT + 71;
+ int EXTERNAL_ELEMENT_REFERENCE___IS_ORDERED = ELEMENT_REFERENCE_OPERATION_COUNT + 69;
/**
* The operation id for the '<em>Is Nonunique</em>' operation.
@@ -3438,7 +3420,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int EXTERNAL_ELEMENT_REFERENCE___IS_NONUNIQUE = ELEMENT_REFERENCE_OPERATION_COUNT + 72;
+ int EXTERNAL_ELEMENT_REFERENCE___IS_NONUNIQUE = ELEMENT_REFERENCE_OPERATION_COUNT + 70;
/**
* The operation id for the '<em>Parents</em>' operation.
@@ -3447,7 +3429,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int EXTERNAL_ELEMENT_REFERENCE___PARENTS = ELEMENT_REFERENCE_OPERATION_COUNT + 73;
+ int EXTERNAL_ELEMENT_REFERENCE___PARENTS = ELEMENT_REFERENCE_OPERATION_COUNT + 71;
/**
* The operation id for the '<em>All Parents</em>' operation.
@@ -3456,7 +3438,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int EXTERNAL_ELEMENT_REFERENCE___ALL_PARENTS = ELEMENT_REFERENCE_OPERATION_COUNT + 74;
+ int EXTERNAL_ELEMENT_REFERENCE___ALL_PARENTS = ELEMENT_REFERENCE_OPERATION_COUNT + 72;
/**
* The operation id for the '<em>Classifier Behavior</em>' operation.
@@ -3465,7 +3447,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int EXTERNAL_ELEMENT_REFERENCE___CLASSIFIER_BEHAVIOR = ELEMENT_REFERENCE_OPERATION_COUNT + 75;
+ int EXTERNAL_ELEMENT_REFERENCE___CLASSIFIER_BEHAVIOR = ELEMENT_REFERENCE_OPERATION_COUNT + 73;
/**
* The operation id for the '<em>Applied Profiles</em>' operation.
@@ -3474,7 +3456,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int EXTERNAL_ELEMENT_REFERENCE___APPLIED_PROFILES = ELEMENT_REFERENCE_OPERATION_COUNT + 76;
+ int EXTERNAL_ELEMENT_REFERENCE___APPLIED_PROFILES = ELEMENT_REFERENCE_OPERATION_COUNT + 74;
/**
* The operation id for the '<em>Active Class</em>' operation.
@@ -3483,7 +3465,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int EXTERNAL_ELEMENT_REFERENCE___ACTIVE_CLASS = ELEMENT_REFERENCE_OPERATION_COUNT + 77;
+ int EXTERNAL_ELEMENT_REFERENCE___ACTIVE_CLASS = ELEMENT_REFERENCE_OPERATION_COUNT + 75;
/**
* The operation id for the '<em>Context</em>' operation.
@@ -3492,7 +3474,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int EXTERNAL_ELEMENT_REFERENCE___CONTEXT = ELEMENT_REFERENCE_OPERATION_COUNT + 78;
+ int EXTERNAL_ELEMENT_REFERENCE___CONTEXT = ELEMENT_REFERENCE_OPERATION_COUNT + 76;
/**
* The operation id for the '<em>Conforms To</em>' operation.
@@ -3501,7 +3483,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int EXTERNAL_ELEMENT_REFERENCE___CONFORMS_TO__ELEMENTREFERENCE = ELEMENT_REFERENCE_OPERATION_COUNT + 79;
+ int EXTERNAL_ELEMENT_REFERENCE___CONFORMS_TO__ELEMENTREFERENCE = ELEMENT_REFERENCE_OPERATION_COUNT + 77;
/**
* The operation id for the '<em>Equals</em>' operation.
@@ -3510,7 +3492,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int EXTERNAL_ELEMENT_REFERENCE___EQUALS__ELEMENTREFERENCE = ELEMENT_REFERENCE_OPERATION_COUNT + 80;
+ int EXTERNAL_ELEMENT_REFERENCE___EQUALS__ELEMENTREFERENCE = ELEMENT_REFERENCE_OPERATION_COUNT + 78;
/**
* The operation id for the '<em>Copy</em>' operation.
@@ -3519,7 +3501,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int EXTERNAL_ELEMENT_REFERENCE___COPY = ELEMENT_REFERENCE_OPERATION_COUNT + 81;
+ int EXTERNAL_ELEMENT_REFERENCE___COPY = ELEMENT_REFERENCE_OPERATION_COUNT + 79;
/**
* The operation id for the '<em>Model Scope</em>' operation.
@@ -3528,7 +3510,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int EXTERNAL_ELEMENT_REFERENCE___MODEL_SCOPE = ELEMENT_REFERENCE_OPERATION_COUNT + 82;
+ int EXTERNAL_ELEMENT_REFERENCE___MODEL_SCOPE = ELEMENT_REFERENCE_OPERATION_COUNT + 80;
/**
* The operation id for the '<em>Resolve Path Name</em>' operation.
@@ -3537,7 +3519,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int EXTERNAL_ELEMENT_REFERENCE___RESOLVE_PATH_NAME__STRING = ELEMENT_REFERENCE_OPERATION_COUNT + 83;
+ int EXTERNAL_ELEMENT_REFERENCE___RESOLVE_PATH_NAME__STRING = ELEMENT_REFERENCE_OPERATION_COUNT + 81;
/**
* The operation id for the '<em>External Element Reference resolve Path Name</em>' operation.
@@ -3546,7 +3528,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int EXTERNAL_ELEMENT_REFERENCE___EXTERNAL_ELEMENT_REFERENCE_RESOLVE_PATH_NAME__STRING = ELEMENT_REFERENCE_OPERATION_COUNT + 84;
+ int EXTERNAL_ELEMENT_REFERENCE___EXTERNAL_ELEMENT_REFERENCE_RESOLVE_PATH_NAME__STRING = ELEMENT_REFERENCE_OPERATION_COUNT + 82;
/**
* The operation id for the '<em>Resolve In Scope</em>' operation.
@@ -3555,7 +3537,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int EXTERNAL_ELEMENT_REFERENCE___RESOLVE_IN_SCOPE__STRING = ELEMENT_REFERENCE_OPERATION_COUNT + 85;
+ int EXTERNAL_ELEMENT_REFERENCE___RESOLVE_IN_SCOPE__STRING = ELEMENT_REFERENCE_OPERATION_COUNT + 83;
/**
* The operation id for the '<em>Resolve Stereotype</em>' operation.
@@ -3564,7 +3546,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int EXTERNAL_ELEMENT_REFERENCE___RESOLVE_STEREOTYPE__STRING = ELEMENT_REFERENCE_OPERATION_COUNT + 86;
+ int EXTERNAL_ELEMENT_REFERENCE___RESOLVE_STEREOTYPE__STRING = ELEMENT_REFERENCE_OPERATION_COUNT + 84;
/**
* The operation id for the '<em>Stub</em>' operation.
@@ -3573,7 +3555,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int EXTERNAL_ELEMENT_REFERENCE___STUB = ELEMENT_REFERENCE_OPERATION_COUNT + 87;
+ int EXTERNAL_ELEMENT_REFERENCE___STUB = ELEMENT_REFERENCE_OPERATION_COUNT + 85;
/**
* The operation id for the '<em>Stub For</em>' operation.
@@ -3582,7 +3564,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int EXTERNAL_ELEMENT_REFERENCE___STUB_FOR__UNITDEFINITION = ELEMENT_REFERENCE_OPERATION_COUNT + 88;
+ int EXTERNAL_ELEMENT_REFERENCE___STUB_FOR__UNITDEFINITION = ELEMENT_REFERENCE_OPERATION_COUNT + 86;
/**
* The number of operations of the '<em>External Element Reference</em>' class.
@@ -3591,7 +3573,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int EXTERNAL_ELEMENT_REFERENCE_OPERATION_COUNT = ELEMENT_REFERENCE_OPERATION_COUNT + 89;
+ int EXTERNAL_ELEMENT_REFERENCE_OPERATION_COUNT = ELEMENT_REFERENCE_OPERATION_COUNT + 87;
/**
* The meta object id for the '{@link org.eclipse.papyrus.uml.alf.impl.ExternalEnumerationLiteralReferenceImpl <em>External Enumeration Literal Reference</em>}' class.
@@ -4270,15 +4252,6 @@ public interface AlfPackage extends EPackage {
int EXTERNAL_ENUMERATION_LITERAL_REFERENCE___PROPERTIES = EXTERNAL_ELEMENT_REFERENCE___PROPERTIES;
/**
- * The operation id for the '<em>Member Ends</em>' operation.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- * @ordered
- */
- int EXTERNAL_ENUMERATION_LITERAL_REFERENCE___MEMBER_ENDS = EXTERNAL_ELEMENT_REFERENCE___MEMBER_ENDS;
-
- /**
* The operation id for the '<em>Association Ends</em>' operation.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -4288,15 +4261,6 @@ public interface AlfPackage extends EPackage {
int EXTERNAL_ENUMERATION_LITERAL_REFERENCE___ASSOCIATION_ENDS = EXTERNAL_ELEMENT_REFERENCE___ASSOCIATION_ENDS;
/**
- * The operation id for the '<em>Owned Ends</em>' operation.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- * @ordered
- */
- int EXTERNAL_ENUMERATION_LITERAL_REFERENCE___OWNED_ENDS = EXTERNAL_ELEMENT_REFERENCE___OWNED_ENDS;
-
- /**
* The operation id for the '<em>Opposite</em>' operation.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -4775,24 +4739,6 @@ public interface AlfPackage extends EPackage {
int BOUND_ELEMENT_REFERENCE___VISIBLE_MEMBERS = ELEMENT_REFERENCE___VISIBLE_MEMBERS;
/**
- * The operation id for the '<em>Properties</em>' operation.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- * @ordered
- */
- int BOUND_ELEMENT_REFERENCE___PROPERTIES = ELEMENT_REFERENCE___PROPERTIES;
-
- /**
- * The operation id for the '<em>Association Ends</em>' operation.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- * @ordered
- */
- int BOUND_ELEMENT_REFERENCE___ASSOCIATION_ENDS = ELEMENT_REFERENCE___ASSOCIATION_ENDS;
-
- /**
* The operation id for the '<em>Receptions</em>' operation.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -5360,13 +5306,31 @@ public interface AlfPackage extends EPackage {
int BOUND_ELEMENT_REFERENCE___NESTED_CLASSIFIERS = ELEMENT_REFERENCE_OPERATION_COUNT + 47;
/**
+ * The operation id for the '<em>Properties</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BOUND_ELEMENT_REFERENCE___PROPERTIES = ELEMENT_REFERENCE_OPERATION_COUNT + 48;
+
+ /**
+ * The operation id for the '<em>Association Ends</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BOUND_ELEMENT_REFERENCE___ASSOCIATION_ENDS = ELEMENT_REFERENCE_OPERATION_COUNT + 49;
+
+ /**
* The operation id for the '<em>Opposite</em>' operation.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int BOUND_ELEMENT_REFERENCE___OPPOSITE = ELEMENT_REFERENCE_OPERATION_COUNT + 48;
+ int BOUND_ELEMENT_REFERENCE___OPPOSITE = ELEMENT_REFERENCE_OPERATION_COUNT + 50;
/**
* The operation id for the '<em>Signal</em>' operation.
@@ -5375,7 +5339,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int BOUND_ELEMENT_REFERENCE___SIGNAL = ELEMENT_REFERENCE_OPERATION_COUNT + 49;
+ int BOUND_ELEMENT_REFERENCE___SIGNAL = ELEMENT_REFERENCE_OPERATION_COUNT + 51;
/**
* The operation id for the '<em>Parameters</em>' operation.
@@ -5384,7 +5348,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int BOUND_ELEMENT_REFERENCE___PARAMETERS = ELEMENT_REFERENCE_OPERATION_COUNT + 50;
+ int BOUND_ELEMENT_REFERENCE___PARAMETERS = ELEMENT_REFERENCE_OPERATION_COUNT + 52;
/**
* The operation id for the '<em>Return Parameter</em>' operation.
@@ -5393,7 +5357,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int BOUND_ELEMENT_REFERENCE___RETURN_PARAMETER = ELEMENT_REFERENCE_OPERATION_COUNT + 51;
+ int BOUND_ELEMENT_REFERENCE___RETURN_PARAMETER = ELEMENT_REFERENCE_OPERATION_COUNT + 53;
/**
* The operation id for the '<em>Specification</em>' operation.
@@ -5402,7 +5366,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int BOUND_ELEMENT_REFERENCE___SPECIFICATION = ELEMENT_REFERENCE_OPERATION_COUNT + 52;
+ int BOUND_ELEMENT_REFERENCE___SPECIFICATION = ELEMENT_REFERENCE_OPERATION_COUNT + 54;
/**
* The operation id for the '<em>Redefined Operations</em>' operation.
@@ -5411,7 +5375,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int BOUND_ELEMENT_REFERENCE___REDEFINED_OPERATIONS = ELEMENT_REFERENCE_OPERATION_COUNT + 53;
+ int BOUND_ELEMENT_REFERENCE___REDEFINED_OPERATIONS = ELEMENT_REFERENCE_OPERATION_COUNT + 55;
/**
* The operation id for the '<em>Namespace</em>' operation.
@@ -5420,7 +5384,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int BOUND_ELEMENT_REFERENCE___NAMESPACE = ELEMENT_REFERENCE_OPERATION_COUNT + 54;
+ int BOUND_ELEMENT_REFERENCE___NAMESPACE = ELEMENT_REFERENCE_OPERATION_COUNT + 56;
/**
* The operation id for the '<em>Template</em>' operation.
@@ -5429,7 +5393,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int BOUND_ELEMENT_REFERENCE___TEMPLATE = ELEMENT_REFERENCE_OPERATION_COUNT + 55;
+ int BOUND_ELEMENT_REFERENCE___TEMPLATE = ELEMENT_REFERENCE_OPERATION_COUNT + 57;
/**
* The operation id for the '<em>Template Parameters</em>' operation.
@@ -5438,7 +5402,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int BOUND_ELEMENT_REFERENCE___TEMPLATE_PARAMETERS = ELEMENT_REFERENCE_OPERATION_COUNT + 56;
+ int BOUND_ELEMENT_REFERENCE___TEMPLATE_PARAMETERS = ELEMENT_REFERENCE_OPERATION_COUNT + 58;
/**
* The operation id for the '<em>Parametered Elements</em>' operation.
@@ -5447,7 +5411,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int BOUND_ELEMENT_REFERENCE___PARAMETERED_ELEMENTS = ELEMENT_REFERENCE_OPERATION_COUNT + 57;
+ int BOUND_ELEMENT_REFERENCE___PARAMETERED_ELEMENTS = ELEMENT_REFERENCE_OPERATION_COUNT + 59;
/**
* The operation id for the '<em>Is Template Binding</em>' operation.
@@ -5456,7 +5420,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int BOUND_ELEMENT_REFERENCE___IS_TEMPLATE_BINDING = ELEMENT_REFERENCE_OPERATION_COUNT + 58;
+ int BOUND_ELEMENT_REFERENCE___IS_TEMPLATE_BINDING = ELEMENT_REFERENCE_OPERATION_COUNT + 60;
/**
* The operation id for the '<em>Template Actuals</em>' operation.
@@ -5465,7 +5429,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int BOUND_ELEMENT_REFERENCE___TEMPLATE_ACTUALS = ELEMENT_REFERENCE_OPERATION_COUNT + 59;
+ int BOUND_ELEMENT_REFERENCE___TEMPLATE_ACTUALS = ELEMENT_REFERENCE_OPERATION_COUNT + 61;
/**
* The operation id for the '<em>Direction</em>' operation.
@@ -5474,7 +5438,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int BOUND_ELEMENT_REFERENCE___DIRECTION = ELEMENT_REFERENCE_OPERATION_COUNT + 60;
+ int BOUND_ELEMENT_REFERENCE___DIRECTION = ELEMENT_REFERENCE_OPERATION_COUNT + 62;
/**
* The operation id for the '<em>Association</em>' operation.
@@ -5483,7 +5447,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int BOUND_ELEMENT_REFERENCE___ASSOCIATION = ELEMENT_REFERENCE_OPERATION_COUNT + 61;
+ int BOUND_ELEMENT_REFERENCE___ASSOCIATION = ELEMENT_REFERENCE_OPERATION_COUNT + 63;
/**
* The operation id for the '<em>Type</em>' operation.
@@ -5492,7 +5456,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int BOUND_ELEMENT_REFERENCE___TYPE = ELEMENT_REFERENCE_OPERATION_COUNT + 62;
+ int BOUND_ELEMENT_REFERENCE___TYPE = ELEMENT_REFERENCE_OPERATION_COUNT + 64;
/**
* The operation id for the '<em>Lower</em>' operation.
@@ -5501,7 +5465,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int BOUND_ELEMENT_REFERENCE___LOWER = ELEMENT_REFERENCE_OPERATION_COUNT + 63;
+ int BOUND_ELEMENT_REFERENCE___LOWER = ELEMENT_REFERENCE_OPERATION_COUNT + 65;
/**
* The operation id for the '<em>Upper</em>' operation.
@@ -5510,7 +5474,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int BOUND_ELEMENT_REFERENCE___UPPER = ELEMENT_REFERENCE_OPERATION_COUNT + 64;
+ int BOUND_ELEMENT_REFERENCE___UPPER = ELEMENT_REFERENCE_OPERATION_COUNT + 66;
/**
* The operation id for the '<em>Is Ordered</em>' operation.
@@ -5519,7 +5483,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int BOUND_ELEMENT_REFERENCE___IS_ORDERED = ELEMENT_REFERENCE_OPERATION_COUNT + 65;
+ int BOUND_ELEMENT_REFERENCE___IS_ORDERED = ELEMENT_REFERENCE_OPERATION_COUNT + 67;
/**
* The operation id for the '<em>Is Nonunique</em>' operation.
@@ -5528,7 +5492,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int BOUND_ELEMENT_REFERENCE___IS_NONUNIQUE = ELEMENT_REFERENCE_OPERATION_COUNT + 66;
+ int BOUND_ELEMENT_REFERENCE___IS_NONUNIQUE = ELEMENT_REFERENCE_OPERATION_COUNT + 68;
/**
* The operation id for the '<em>Parents</em>' operation.
@@ -5537,7 +5501,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int BOUND_ELEMENT_REFERENCE___PARENTS = ELEMENT_REFERENCE_OPERATION_COUNT + 67;
+ int BOUND_ELEMENT_REFERENCE___PARENTS = ELEMENT_REFERENCE_OPERATION_COUNT + 69;
/**
* The operation id for the '<em>All Parents</em>' operation.
@@ -5546,7 +5510,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int BOUND_ELEMENT_REFERENCE___ALL_PARENTS = ELEMENT_REFERENCE_OPERATION_COUNT + 68;
+ int BOUND_ELEMENT_REFERENCE___ALL_PARENTS = ELEMENT_REFERENCE_OPERATION_COUNT + 70;
/**
* The operation id for the '<em>Classifier Behavior</em>' operation.
@@ -5555,7 +5519,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int BOUND_ELEMENT_REFERENCE___CLASSIFIER_BEHAVIOR = ELEMENT_REFERENCE_OPERATION_COUNT + 69;
+ int BOUND_ELEMENT_REFERENCE___CLASSIFIER_BEHAVIOR = ELEMENT_REFERENCE_OPERATION_COUNT + 71;
/**
* The operation id for the '<em>Applied Profiles</em>' operation.
@@ -5564,7 +5528,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int BOUND_ELEMENT_REFERENCE___APPLIED_PROFILES = ELEMENT_REFERENCE_OPERATION_COUNT + 70;
+ int BOUND_ELEMENT_REFERENCE___APPLIED_PROFILES = ELEMENT_REFERENCE_OPERATION_COUNT + 72;
/**
* The operation id for the '<em>Reference</em>' operation.
@@ -5573,7 +5537,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int BOUND_ELEMENT_REFERENCE___REFERENCE = ELEMENT_REFERENCE_OPERATION_COUNT + 71;
+ int BOUND_ELEMENT_REFERENCE___REFERENCE = ELEMENT_REFERENCE_OPERATION_COUNT + 73;
/**
* The operation id for the '<em>Template Binding</em>' operation.
@@ -5582,7 +5546,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int BOUND_ELEMENT_REFERENCE___TEMPLATE_BINDING = ELEMENT_REFERENCE_OPERATION_COUNT + 72;
+ int BOUND_ELEMENT_REFERENCE___TEMPLATE_BINDING = ELEMENT_REFERENCE_OPERATION_COUNT + 74;
/**
* The operation id for the '<em>Active Class</em>' operation.
@@ -5591,7 +5555,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int BOUND_ELEMENT_REFERENCE___ACTIVE_CLASS = ELEMENT_REFERENCE_OPERATION_COUNT + 73;
+ int BOUND_ELEMENT_REFERENCE___ACTIVE_CLASS = ELEMENT_REFERENCE_OPERATION_COUNT + 75;
/**
* The operation id for the '<em>Context</em>' operation.
@@ -5600,7 +5564,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int BOUND_ELEMENT_REFERENCE___CONTEXT = ELEMENT_REFERENCE_OPERATION_COUNT + 74;
+ int BOUND_ELEMENT_REFERENCE___CONTEXT = ELEMENT_REFERENCE_OPERATION_COUNT + 76;
/**
* The operation id for the '<em>Is Active Behavior</em>' operation.
@@ -5609,7 +5573,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int BOUND_ELEMENT_REFERENCE___IS_ACTIVE_BEHAVIOR = ELEMENT_REFERENCE_OPERATION_COUNT + 75;
+ int BOUND_ELEMENT_REFERENCE___IS_ACTIVE_BEHAVIOR = ELEMENT_REFERENCE_OPERATION_COUNT + 77;
/**
* The operation id for the '<em>Conforms To</em>' operation.
@@ -5618,7 +5582,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int BOUND_ELEMENT_REFERENCE___CONFORMS_TO__ELEMENTREFERENCE = ELEMENT_REFERENCE_OPERATION_COUNT + 76;
+ int BOUND_ELEMENT_REFERENCE___CONFORMS_TO__ELEMENTREFERENCE = ELEMENT_REFERENCE_OPERATION_COUNT + 78;
/**
* The operation id for the '<em>Equals</em>' operation.
@@ -5627,7 +5591,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int BOUND_ELEMENT_REFERENCE___EQUALS__ELEMENTREFERENCE = ELEMENT_REFERENCE_OPERATION_COUNT + 77;
+ int BOUND_ELEMENT_REFERENCE___EQUALS__ELEMENTREFERENCE = ELEMENT_REFERENCE_OPERATION_COUNT + 79;
/**
* The operation id for the '<em>Copy</em>' operation.
@@ -5636,7 +5600,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int BOUND_ELEMENT_REFERENCE___COPY = ELEMENT_REFERENCE_OPERATION_COUNT + 78;
+ int BOUND_ELEMENT_REFERENCE___COPY = ELEMENT_REFERENCE_OPERATION_COUNT + 80;
/**
* The operation id for the '<em>Model Scope</em>' operation.
@@ -5645,7 +5609,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int BOUND_ELEMENT_REFERENCE___MODEL_SCOPE = ELEMENT_REFERENCE_OPERATION_COUNT + 79;
+ int BOUND_ELEMENT_REFERENCE___MODEL_SCOPE = ELEMENT_REFERENCE_OPERATION_COUNT + 81;
/**
* The operation id for the '<em>Resolve Path Name</em>' operation.
@@ -5654,7 +5618,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int BOUND_ELEMENT_REFERENCE___RESOLVE_PATH_NAME__STRING = ELEMENT_REFERENCE_OPERATION_COUNT + 80;
+ int BOUND_ELEMENT_REFERENCE___RESOLVE_PATH_NAME__STRING = ELEMENT_REFERENCE_OPERATION_COUNT + 82;
/**
* The operation id for the '<em>Resolve In Scope</em>' operation.
@@ -5663,7 +5627,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int BOUND_ELEMENT_REFERENCE___RESOLVE_IN_SCOPE__STRING = ELEMENT_REFERENCE_OPERATION_COUNT + 81;
+ int BOUND_ELEMENT_REFERENCE___RESOLVE_IN_SCOPE__STRING = ELEMENT_REFERENCE_OPERATION_COUNT + 83;
/**
* The operation id for the '<em>Resolve Stereotype</em>' operation.
@@ -5672,7 +5636,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int BOUND_ELEMENT_REFERENCE___RESOLVE_STEREOTYPE__STRING = ELEMENT_REFERENCE_OPERATION_COUNT + 82;
+ int BOUND_ELEMENT_REFERENCE___RESOLVE_STEREOTYPE__STRING = ELEMENT_REFERENCE_OPERATION_COUNT + 84;
/**
* The operation id for the '<em>Stub</em>' operation.
@@ -5681,7 +5645,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int BOUND_ELEMENT_REFERENCE___STUB = ELEMENT_REFERENCE_OPERATION_COUNT + 83;
+ int BOUND_ELEMENT_REFERENCE___STUB = ELEMENT_REFERENCE_OPERATION_COUNT + 85;
/**
* The operation id for the '<em>Stub For</em>' operation.
@@ -5690,7 +5654,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int BOUND_ELEMENT_REFERENCE___STUB_FOR__UNITDEFINITION = ELEMENT_REFERENCE_OPERATION_COUNT + 84;
+ int BOUND_ELEMENT_REFERENCE___STUB_FOR__UNITDEFINITION = ELEMENT_REFERENCE_OPERATION_COUNT + 86;
/**
* The operation id for the '<em>Bound Reference To</em>' operation.
@@ -5699,7 +5663,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int BOUND_ELEMENT_REFERENCE___BOUND_REFERENCE_TO__ELEMENTREFERENCE = ELEMENT_REFERENCE_OPERATION_COUNT + 85;
+ int BOUND_ELEMENT_REFERENCE___BOUND_REFERENCE_TO__ELEMENTREFERENCE = ELEMENT_REFERENCE_OPERATION_COUNT + 87;
/**
* The operation id for the '<em>Bound Reference To1</em>' operation.
@@ -5708,7 +5672,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int BOUND_ELEMENT_REFERENCE___BOUND_REFERENCE_TO1__ELEMENTREFERENCE = ELEMENT_REFERENCE_OPERATION_COUNT + 86;
+ int BOUND_ELEMENT_REFERENCE___BOUND_REFERENCE_TO1__ELEMENTREFERENCE = ELEMENT_REFERENCE_OPERATION_COUNT + 88;
/**
* The operation id for the '<em>Bound References To</em>' operation.
@@ -5717,7 +5681,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int BOUND_ELEMENT_REFERENCE___BOUND_REFERENCES_TO__ELIST = ELEMENT_REFERENCE_OPERATION_COUNT + 87;
+ int BOUND_ELEMENT_REFERENCE___BOUND_REFERENCES_TO__ELIST = ELEMENT_REFERENCE_OPERATION_COUNT + 89;
/**
* The number of operations of the '<em>Bound Element Reference</em>' class.
@@ -5726,7 +5690,7 @@ public interface AlfPackage extends EPackage {
* @generated
* @ordered
*/
- int BOUND_ELEMENT_REFERENCE_OPERATION_COUNT = ELEMENT_REFERENCE_OPERATION_COUNT + 88;
+ int BOUND_ELEMENT_REFERENCE_OPERATION_COUNT = ELEMENT_REFERENCE_OPERATION_COUNT + 90;
/**
* The meta object id for the '{@link org.eclipse.papyrus.uml.alf.impl.DocumentedElementImpl <em>Documented Element</em>}' class.
@@ -90088,16 +90052,6 @@ public interface AlfPackage extends EPackage {
EOperation getExternalElementReference__Properties();
/**
- * Returns the meta object for the '{@link org.eclipse.papyrus.uml.alf.ExternalElementReference#memberEnds() <em>Member Ends</em>}' operation.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @return the meta object for the '<em>Member Ends</em>' operation.
- * @see org.eclipse.papyrus.uml.alf.ExternalElementReference#memberEnds()
- * @generated
- */
- EOperation getExternalElementReference__MemberEnds();
-
- /**
* Returns the meta object for the '{@link org.eclipse.papyrus.uml.alf.ExternalElementReference#associationEnds() <em>Association Ends</em>}' operation.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -90108,16 +90062,6 @@ public interface AlfPackage extends EPackage {
EOperation getExternalElementReference__AssociationEnds();
/**
- * Returns the meta object for the '{@link org.eclipse.papyrus.uml.alf.ExternalElementReference#ownedEnds() <em>Owned Ends</em>}' operation.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @return the meta object for the '<em>Owned Ends</em>' operation.
- * @see org.eclipse.papyrus.uml.alf.ExternalElementReference#ownedEnds()
- * @generated
- */
- EOperation getExternalElementReference__OwnedEnds();
-
- /**
* Returns the meta object for the '{@link org.eclipse.papyrus.uml.alf.ExternalElementReference#opposite() <em>Opposite</em>}' operation.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -91091,6 +91035,26 @@ public interface AlfPackage extends EPackage {
EOperation getBoundElementReference__NestedClassifiers();
/**
+ * Returns the meta object for the '{@link org.eclipse.papyrus.uml.alf.BoundElementReference#properties() <em>Properties</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Properties</em>' operation.
+ * @see org.eclipse.papyrus.uml.alf.BoundElementReference#properties()
+ * @generated
+ */
+ EOperation getBoundElementReference__Properties();
+
+ /**
+ * Returns the meta object for the '{@link org.eclipse.papyrus.uml.alf.BoundElementReference#associationEnds() <em>Association Ends</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Association Ends</em>' operation.
+ * @see org.eclipse.papyrus.uml.alf.BoundElementReference#associationEnds()
+ * @generated
+ */
+ EOperation getBoundElementReference__AssociationEnds();
+
+ /**
* Returns the meta object for the '{@link org.eclipse.papyrus.uml.alf.BoundElementReference#opposite() <em>Opposite</em>}' operation.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
diff --git a/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/BehaviorInvocationExpression.java b/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/BehaviorInvocationExpression.java
index 67954502298..46a3a99dc14 100644
--- a/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/BehaviorInvocationExpression.java
+++ b/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/BehaviorInvocationExpression.java
@@ -132,7 +132,7 @@ public interface BehaviorInvocationExpression extends InvocationExpression {
* resolution rules, unless it is an implicit destructor call (in which case
* it has no referent).
* <!-- end-model-doc -->
- * @model annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='\n self.isImplicit or \n let referent = self.referent in\n referent <> null and \n -- NOTE: This check prevents the invocation from disambiguating to an \n -- illegal constructor invocation.\n not referent.isConstructor()'"
+ * @model annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='\n self.isImplicit or \n let referent = self.referent in\n referent <> null and \n -- NOTE: This check prevents the invocation from disambiguating to an \n -- illegal constructor invocation.\n not referent.isConstructor() and\n -- Also check that the association owns all its ends.\n referent.isAssociationEnd() implies\n \treferent.association().properties()->forAll(isAssociationEnd())'"
* @generated
*/
boolean behaviorInvocationExpressionReferentConstraint(DiagnosticChain diagnostics, Map<Object, Object> context);
diff --git a/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/BitStringUnaryExpression.java b/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/BitStringUnaryExpression.java
index ecb0caee5be..b59e296ef1b 100644
--- a/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/BitStringUnaryExpression.java
+++ b/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/BitStringUnaryExpression.java
@@ -35,8 +35,6 @@ public interface BitStringUnaryExpression extends UnaryExpression {
* @see #setIsBitStringConversion(boolean)
* @see org.eclipse.papyrus.uml.alf.AlfPackage#getBitStringUnaryExpression_IsBitStringConversion()
* @model transient="true" volatile="true" derived="true"
- * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='FeatureInvocationExpression'"
- * annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='FeatureInvocationExpression'"
* annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot derivation='self.isIntegerType(self.operand.type)'"
* @generated
*/
diff --git a/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/BoundElementReference.java b/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/BoundElementReference.java
index 180ea68e627..4829dd9343e 100644
--- a/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/BoundElementReference.java
+++ b/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/BoundElementReference.java
@@ -533,6 +533,22 @@ public interface BoundElementReference extends ElementReference {
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
+ * @model annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='self.boundReferencesTo(self.referent.properties())->asOrderedSet()'"
+ * @generated
+ */
+ EList<ElementReference> properties();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='self.boundReferencesTo(self.referent.associationEnds())->asOrderedSet()'"
+ * @generated
+ */
+ EList<ElementReference> associationEnds();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
* @model annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='\n self.boundReferenceTo(self.referent.opposite())'"
* @generated
*/
diff --git a/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/ExternalElementReference.java b/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/ExternalElementReference.java
index 72dc6b4579b..e5bd8347c83 100644
--- a/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/ExternalElementReference.java
+++ b/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/ExternalElementReference.java
@@ -521,7 +521,7 @@ public interface ExternalElementReference extends ElementReference {
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @model annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='\n if not self.isClassifier() then OrderedSet(ElementReference){}\n else if self.isAssociation() then\n -- NOTE: This is to ensure proper ordering.\n self.memberEnds()->appendAll(self.parents().properties()->asOrderedSet())\n else\n self.element.oclAsType(uml::Classifier).allAttributes()->\n collect(a | ExternalElementReference{element = a})->\n asOrderedSet()\n endif endif'"
+ * @model annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='\n if not self.isClassifier() then OrderedSet(ElementReference){}\n else if self.isAssociation() then \n \tself.members()->select(isProperty())\n else\n self.element.oclAsType(uml::Classifier).allAttributes()->\n collect(a | ExternalElementReference{element = a})->\n asOrderedSet()\n endif endif'"
* @generated
*/
EList<ElementReference> properties();
@@ -529,15 +529,7 @@ public interface ExternalElementReference extends ElementReference {
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @model annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='\n if not self.isAssociation() then OrderedSet(ElementReference){}\n else\n self.element.oclAsType(uml::Association).memberEnd->\n collect(e | ExternalElementReference{element = e})->\n asOrderedSet()\n endif'"
- * @generated
- */
- EList<ElementReference> memberEnds();
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @model annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='\n -- NOTE: This is to ensure proper ordering.\n self.ownedEnds()->appendAll(self.parents().associationEnds()->asOrderedSet())'"
+ * @model annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='\n\t\tif not self.isAssociation() then OrderedSet(ElementReference){}\n\t\telse \n\t\t\tself.element.oclAsType(uml::Association).ownedEnd->\n collect(e | ExternalElementReference{element = e})->\n asOrderedSet()\n\t\tendif'"
* @generated
*/
EList<ElementReference> associationEnds();
@@ -545,14 +537,6 @@ public interface ExternalElementReference extends ElementReference {
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @model annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='\n if not self.isAssociation() then OrderedSet(ElementReference){}\n else\n self.element.oclAsType(uml::Association).ownedEnd->\n collect(e | ExternalElementReference{element = e})->\n asOrderedSet()\n endif'"
- * @generated
- */
- EList<ElementReference> ownedEnds();
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
* @model annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='\n-- if not self.isProperty() then null\n-- else self.element.oclAsType(uml::Property).opposite()\n-- endif;\n if not self.isAssociationEnd() then null\n else\n let property = self.element.oclAsType(uml::Property) in\n let association = property.association in\n let ends = association.memberEnd in\n if ends->size() <> 2 then null\n else ExternalElementReference{element= ends->any(e | e <> property)}\n endif\n endif'"
* @generated
*/
diff --git a/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/InvocationExpression.java b/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/InvocationExpression.java
index 962ccc9c253..933da7dab77 100644
--- a/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/InvocationExpression.java
+++ b/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/InvocationExpression.java
@@ -461,7 +461,7 @@ public interface InvocationExpression extends Expression {
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @model annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='\n let referent = self.referent in\n if self.isBehavior or self.isOperation then\n referent.parameters()\n else if self.isAssociationEnd then\n let association = referent.association() in\n association.properties()->reject(equals(referent))->\n collect(p | self.parameterFromPropertyWithMultiplicity(p, \'1\', \'1\'))->asOrderedSet()\n else if referent <> null then\n referent.properties()->\n collect(p | self.parameterFromProperty(p))->asOrderedSet() \n else\n OrderedSet(ElementReference){}\n endif endif endif'"
+ * @model annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='\n let referent = self.referent in\n if self.isBehavior or self.isOperation then\n referent.parameters()\n else if self.isAssociationEnd then\n let association = referent.association() in\n association.associationEnds()->reject(equals(referent))->\n collect(p | self.parameterFromPropertyWithMultiplicity(p, \'1\', \'1\'))->asOrderedSet()\n else if referent <> null then\n referent.properties()->\n collect(p | self.parameterFromProperty(p))->asOrderedSet() \n else\n OrderedSet(ElementReference){}\n endif endif endif'"
* @generated
*/
EList<ElementReference> InvocationExpression_parameterElements();
diff --git a/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/LinkOperationExpression.java b/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/LinkOperationExpression.java
index 39b39500001..78b5d85e6e8 100644
--- a/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/LinkOperationExpression.java
+++ b/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/LinkOperationExpression.java
@@ -204,7 +204,7 @@ public interface LinkOperationExpression extends InvocationExpression {
* The qualified name of a link operation expression must resolve to a
* single association.
* <!-- end-model-doc -->
- * @model annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='self.referent <> null'"
+ * @model annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='\n\tself.referent <> null and \n\t-- Also check that the association owns all its ends.\n\tself.referent.properties()->forAll(isAssociationEnd())'"
* @generated
*/
boolean linkOperationExpressionAssociationReference(DiagnosticChain diagnostics, Map<Object, Object> context);
@@ -228,7 +228,7 @@ public interface LinkOperationExpression extends InvocationExpression {
* For a clear association operation, returns a single, typeless parameter.
* Otherwise, returns the ends of the named association.
* <!-- end-model-doc -->
- * @model annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='\n if self.isClear then\n OrderedSet(ElementReference){\n FormalParameter{\n direction = \'in\',\n typePart = TypedElementDefinition{\n lowerBound = \'1\',\n upperBound = \'1\'\n }\n }.toReference()\n }\n else\n let referent = self.referent in\n if referent = null then OrderedSet(ElementReference){}\n else\n self.referent.properties()->collect(property | \n -- NOTE: Arguments for a link operation have multiplicity 1..1.\n parameterFromPropertyWithMultiplicity(property, \'1\', \'1\')\n )->asOrderedSet()\n endif\n endif'"
+ * @model annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='\n if self.isClear then\n OrderedSet(ElementReference){\n FormalParameter{\n direction = \'in\',\n typePart = TypedElementDefinition{\n lowerBound = \'1\',\n upperBound = \'1\'\n }\n }.toReference()\n }\n else\n let referent = self.referent in\n if referent = null then OrderedSet(ElementReference){}\n else\n self.referent.associationEnds()->collect(property | \n -- NOTE: Arguments for a link operation have multiplicity 1..1.\n parameterFromPropertyWithMultiplicity(property, \'1\', \'1\')\n )->asOrderedSet()\n endif\n endif'"
* @generated
*/
EList<ElementReference> parameterElements();
diff --git a/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/impl/AlfPackageImpl.java b/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/impl/AlfPackageImpl.java
index 6d1075c6576..2f61774b0b4 100644
--- a/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/impl/AlfPackageImpl.java
+++ b/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/impl/AlfPackageImpl.java
@@ -3645,26 +3645,8 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* <!-- end-user-doc -->
* @generated
*/
- public EOperation getExternalElementReference__MemberEnds() {
- return getExternalElementReference().getEOperations().get(50);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
public EOperation getExternalElementReference__AssociationEnds() {
- return getExternalElementReference().getEOperations().get(51);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public EOperation getExternalElementReference__OwnedEnds() {
- return getExternalElementReference().getEOperations().get(52);
+ return getExternalElementReference().getEOperations().get(50);
}
/**
@@ -3673,7 +3655,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* @generated
*/
public EOperation getExternalElementReference__Opposite() {
- return getExternalElementReference().getEOperations().get(53);
+ return getExternalElementReference().getEOperations().get(51);
}
/**
@@ -3682,7 +3664,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* @generated
*/
public EOperation getExternalElementReference__Signal() {
- return getExternalElementReference().getEOperations().get(54);
+ return getExternalElementReference().getEOperations().get(52);
}
/**
@@ -3691,7 +3673,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* @generated
*/
public EOperation getExternalElementReference__Namespace() {
- return getExternalElementReference().getEOperations().get(55);
+ return getExternalElementReference().getEOperations().get(53);
}
/**
@@ -3700,7 +3682,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* @generated
*/
public EOperation getExternalElementReference__OwnedParameters() {
- return getExternalElementReference().getEOperations().get(56);
+ return getExternalElementReference().getEOperations().get(54);
}
/**
@@ -3709,7 +3691,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* @generated
*/
public EOperation getExternalElementReference__Parameters() {
- return getExternalElementReference().getEOperations().get(57);
+ return getExternalElementReference().getEOperations().get(55);
}
/**
@@ -3718,7 +3700,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* @generated
*/
public EOperation getExternalElementReference__ReturnParameter() {
- return getExternalElementReference().getEOperations().get(58);
+ return getExternalElementReference().getEOperations().get(56);
}
/**
@@ -3727,7 +3709,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* @generated
*/
public EOperation getExternalElementReference__Specification() {
- return getExternalElementReference().getEOperations().get(59);
+ return getExternalElementReference().getEOperations().get(57);
}
/**
@@ -3736,7 +3718,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* @generated
*/
public EOperation getExternalElementReference__RedefinedOperations() {
- return getExternalElementReference().getEOperations().get(60);
+ return getExternalElementReference().getEOperations().get(58);
}
/**
@@ -3745,7 +3727,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* @generated
*/
public EOperation getExternalElementReference__Template() {
- return getExternalElementReference().getEOperations().get(61);
+ return getExternalElementReference().getEOperations().get(59);
}
/**
@@ -3754,7 +3736,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* @generated
*/
public EOperation getExternalElementReference__UmlTemplateBinding() {
- return getExternalElementReference().getEOperations().get(62);
+ return getExternalElementReference().getEOperations().get(60);
}
/**
@@ -3763,7 +3745,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* @generated
*/
public EOperation getExternalElementReference__TemplateParameters() {
- return getExternalElementReference().getEOperations().get(63);
+ return getExternalElementReference().getEOperations().get(61);
}
/**
@@ -3772,7 +3754,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* @generated
*/
public EOperation getExternalElementReference__ParameteredElements() {
- return getExternalElementReference().getEOperations().get(64);
+ return getExternalElementReference().getEOperations().get(62);
}
/**
@@ -3781,7 +3763,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* @generated
*/
public EOperation getExternalElementReference__TemplateActuals() {
- return getExternalElementReference().getEOperations().get(65);
+ return getExternalElementReference().getEOperations().get(63);
}
/**
@@ -3790,7 +3772,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* @generated
*/
public EOperation getExternalElementReference__Direction() {
- return getExternalElementReference().getEOperations().get(66);
+ return getExternalElementReference().getEOperations().get(64);
}
/**
@@ -3799,7 +3781,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* @generated
*/
public EOperation getExternalElementReference__Association() {
- return getExternalElementReference().getEOperations().get(67);
+ return getExternalElementReference().getEOperations().get(65);
}
/**
@@ -3808,7 +3790,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* @generated
*/
public EOperation getExternalElementReference__Type() {
- return getExternalElementReference().getEOperations().get(68);
+ return getExternalElementReference().getEOperations().get(66);
}
/**
@@ -3817,7 +3799,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* @generated
*/
public EOperation getExternalElementReference__Lower() {
- return getExternalElementReference().getEOperations().get(69);
+ return getExternalElementReference().getEOperations().get(67);
}
/**
@@ -3826,7 +3808,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* @generated
*/
public EOperation getExternalElementReference__Upper() {
- return getExternalElementReference().getEOperations().get(70);
+ return getExternalElementReference().getEOperations().get(68);
}
/**
@@ -3835,7 +3817,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* @generated
*/
public EOperation getExternalElementReference__IsOrdered() {
- return getExternalElementReference().getEOperations().get(71);
+ return getExternalElementReference().getEOperations().get(69);
}
/**
@@ -3844,7 +3826,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* @generated
*/
public EOperation getExternalElementReference__IsNonunique() {
- return getExternalElementReference().getEOperations().get(72);
+ return getExternalElementReference().getEOperations().get(70);
}
/**
@@ -3853,7 +3835,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* @generated
*/
public EOperation getExternalElementReference__Parents() {
- return getExternalElementReference().getEOperations().get(73);
+ return getExternalElementReference().getEOperations().get(71);
}
/**
@@ -3862,7 +3844,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* @generated
*/
public EOperation getExternalElementReference__AllParents() {
- return getExternalElementReference().getEOperations().get(74);
+ return getExternalElementReference().getEOperations().get(72);
}
/**
@@ -3871,7 +3853,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* @generated
*/
public EOperation getExternalElementReference__ClassifierBehavior() {
- return getExternalElementReference().getEOperations().get(75);
+ return getExternalElementReference().getEOperations().get(73);
}
/**
@@ -3880,7 +3862,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* @generated
*/
public EOperation getExternalElementReference__AppliedProfiles() {
- return getExternalElementReference().getEOperations().get(76);
+ return getExternalElementReference().getEOperations().get(74);
}
/**
@@ -3889,7 +3871,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* @generated
*/
public EOperation getExternalElementReference__ActiveClass() {
- return getExternalElementReference().getEOperations().get(77);
+ return getExternalElementReference().getEOperations().get(75);
}
/**
@@ -3898,7 +3880,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* @generated
*/
public EOperation getExternalElementReference__Context() {
- return getExternalElementReference().getEOperations().get(78);
+ return getExternalElementReference().getEOperations().get(76);
}
/**
@@ -3907,7 +3889,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* @generated
*/
public EOperation getExternalElementReference__ConformsTo__ElementReference() {
- return getExternalElementReference().getEOperations().get(79);
+ return getExternalElementReference().getEOperations().get(77);
}
/**
@@ -3916,7 +3898,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* @generated
*/
public EOperation getExternalElementReference__Equals__ElementReference() {
- return getExternalElementReference().getEOperations().get(80);
+ return getExternalElementReference().getEOperations().get(78);
}
/**
@@ -3925,7 +3907,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* @generated
*/
public EOperation getExternalElementReference__Copy() {
- return getExternalElementReference().getEOperations().get(81);
+ return getExternalElementReference().getEOperations().get(79);
}
/**
@@ -3934,7 +3916,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* @generated
*/
public EOperation getExternalElementReference__ModelScope() {
- return getExternalElementReference().getEOperations().get(82);
+ return getExternalElementReference().getEOperations().get(80);
}
/**
@@ -3943,7 +3925,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* @generated
*/
public EOperation getExternalElementReference__ResolvePathName__String() {
- return getExternalElementReference().getEOperations().get(83);
+ return getExternalElementReference().getEOperations().get(81);
}
/**
@@ -3952,7 +3934,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* @generated
*/
public EOperation getExternalElementReference__ExternalElementReference_resolvePathName__String() {
- return getExternalElementReference().getEOperations().get(84);
+ return getExternalElementReference().getEOperations().get(82);
}
/**
@@ -3961,7 +3943,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* @generated
*/
public EOperation getExternalElementReference__ResolveInScope__String() {
- return getExternalElementReference().getEOperations().get(85);
+ return getExternalElementReference().getEOperations().get(83);
}
/**
@@ -3970,7 +3952,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* @generated
*/
public EOperation getExternalElementReference__ResolveStereotype__String() {
- return getExternalElementReference().getEOperations().get(86);
+ return getExternalElementReference().getEOperations().get(84);
}
/**
@@ -3979,7 +3961,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* @generated
*/
public EOperation getExternalElementReference__Stub() {
- return getExternalElementReference().getEOperations().get(87);
+ return getExternalElementReference().getEOperations().get(85);
}
/**
@@ -3988,7 +3970,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* @generated
*/
public EOperation getExternalElementReference__StubFor__UnitDefinition() {
- return getExternalElementReference().getEOperations().get(88);
+ return getExternalElementReference().getEOperations().get(86);
}
/**
@@ -4551,7 +4533,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* <!-- end-user-doc -->
* @generated
*/
- public EOperation getBoundElementReference__Opposite() {
+ public EOperation getBoundElementReference__Properties() {
return getBoundElementReference().getEOperations().get(48);
}
@@ -4560,7 +4542,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* <!-- end-user-doc -->
* @generated
*/
- public EOperation getBoundElementReference__Signal() {
+ public EOperation getBoundElementReference__AssociationEnds() {
return getBoundElementReference().getEOperations().get(49);
}
@@ -4569,7 +4551,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* <!-- end-user-doc -->
* @generated
*/
- public EOperation getBoundElementReference__Parameters() {
+ public EOperation getBoundElementReference__Opposite() {
return getBoundElementReference().getEOperations().get(50);
}
@@ -4578,7 +4560,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* <!-- end-user-doc -->
* @generated
*/
- public EOperation getBoundElementReference__ReturnParameter() {
+ public EOperation getBoundElementReference__Signal() {
return getBoundElementReference().getEOperations().get(51);
}
@@ -4587,7 +4569,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* <!-- end-user-doc -->
* @generated
*/
- public EOperation getBoundElementReference__Specification() {
+ public EOperation getBoundElementReference__Parameters() {
return getBoundElementReference().getEOperations().get(52);
}
@@ -4596,7 +4578,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* <!-- end-user-doc -->
* @generated
*/
- public EOperation getBoundElementReference__RedefinedOperations() {
+ public EOperation getBoundElementReference__ReturnParameter() {
return getBoundElementReference().getEOperations().get(53);
}
@@ -4605,7 +4587,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* <!-- end-user-doc -->
* @generated
*/
- public EOperation getBoundElementReference__Namespace() {
+ public EOperation getBoundElementReference__Specification() {
return getBoundElementReference().getEOperations().get(54);
}
@@ -4614,7 +4596,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* <!-- end-user-doc -->
* @generated
*/
- public EOperation getBoundElementReference__Template() {
+ public EOperation getBoundElementReference__RedefinedOperations() {
return getBoundElementReference().getEOperations().get(55);
}
@@ -4623,7 +4605,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* <!-- end-user-doc -->
* @generated
*/
- public EOperation getBoundElementReference__TemplateParameters() {
+ public EOperation getBoundElementReference__Namespace() {
return getBoundElementReference().getEOperations().get(56);
}
@@ -4632,7 +4614,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* <!-- end-user-doc -->
* @generated
*/
- public EOperation getBoundElementReference__ParameteredElements() {
+ public EOperation getBoundElementReference__Template() {
return getBoundElementReference().getEOperations().get(57);
}
@@ -4641,7 +4623,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* <!-- end-user-doc -->
* @generated
*/
- public EOperation getBoundElementReference__IsTemplateBinding() {
+ public EOperation getBoundElementReference__TemplateParameters() {
return getBoundElementReference().getEOperations().get(58);
}
@@ -4650,7 +4632,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* <!-- end-user-doc -->
* @generated
*/
- public EOperation getBoundElementReference__TemplateActuals() {
+ public EOperation getBoundElementReference__ParameteredElements() {
return getBoundElementReference().getEOperations().get(59);
}
@@ -4659,7 +4641,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* <!-- end-user-doc -->
* @generated
*/
- public EOperation getBoundElementReference__Direction() {
+ public EOperation getBoundElementReference__IsTemplateBinding() {
return getBoundElementReference().getEOperations().get(60);
}
@@ -4668,7 +4650,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* <!-- end-user-doc -->
* @generated
*/
- public EOperation getBoundElementReference__Association() {
+ public EOperation getBoundElementReference__TemplateActuals() {
return getBoundElementReference().getEOperations().get(61);
}
@@ -4677,7 +4659,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* <!-- end-user-doc -->
* @generated
*/
- public EOperation getBoundElementReference__Type() {
+ public EOperation getBoundElementReference__Direction() {
return getBoundElementReference().getEOperations().get(62);
}
@@ -4686,7 +4668,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* <!-- end-user-doc -->
* @generated
*/
- public EOperation getBoundElementReference__Lower() {
+ public EOperation getBoundElementReference__Association() {
return getBoundElementReference().getEOperations().get(63);
}
@@ -4695,7 +4677,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* <!-- end-user-doc -->
* @generated
*/
- public EOperation getBoundElementReference__Upper() {
+ public EOperation getBoundElementReference__Type() {
return getBoundElementReference().getEOperations().get(64);
}
@@ -4704,7 +4686,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* <!-- end-user-doc -->
* @generated
*/
- public EOperation getBoundElementReference__IsOrdered() {
+ public EOperation getBoundElementReference__Lower() {
return getBoundElementReference().getEOperations().get(65);
}
@@ -4713,7 +4695,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* <!-- end-user-doc -->
* @generated
*/
- public EOperation getBoundElementReference__IsNonunique() {
+ public EOperation getBoundElementReference__Upper() {
return getBoundElementReference().getEOperations().get(66);
}
@@ -4722,7 +4704,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* <!-- end-user-doc -->
* @generated
*/
- public EOperation getBoundElementReference__Parents() {
+ public EOperation getBoundElementReference__IsOrdered() {
return getBoundElementReference().getEOperations().get(67);
}
@@ -4731,7 +4713,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* <!-- end-user-doc -->
* @generated
*/
- public EOperation getBoundElementReference__AllParents() {
+ public EOperation getBoundElementReference__IsNonunique() {
return getBoundElementReference().getEOperations().get(68);
}
@@ -4740,7 +4722,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* <!-- end-user-doc -->
* @generated
*/
- public EOperation getBoundElementReference__ClassifierBehavior() {
+ public EOperation getBoundElementReference__Parents() {
return getBoundElementReference().getEOperations().get(69);
}
@@ -4749,7 +4731,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* <!-- end-user-doc -->
* @generated
*/
- public EOperation getBoundElementReference__AppliedProfiles() {
+ public EOperation getBoundElementReference__AllParents() {
return getBoundElementReference().getEOperations().get(70);
}
@@ -4758,7 +4740,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* <!-- end-user-doc -->
* @generated
*/
- public EOperation getBoundElementReference__Reference() {
+ public EOperation getBoundElementReference__ClassifierBehavior() {
return getBoundElementReference().getEOperations().get(71);
}
@@ -4767,7 +4749,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* <!-- end-user-doc -->
* @generated
*/
- public EOperation getBoundElementReference__TemplateBinding() {
+ public EOperation getBoundElementReference__AppliedProfiles() {
return getBoundElementReference().getEOperations().get(72);
}
@@ -4776,7 +4758,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* <!-- end-user-doc -->
* @generated
*/
- public EOperation getBoundElementReference__ActiveClass() {
+ public EOperation getBoundElementReference__Reference() {
return getBoundElementReference().getEOperations().get(73);
}
@@ -4785,7 +4767,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* <!-- end-user-doc -->
* @generated
*/
- public EOperation getBoundElementReference__Context() {
+ public EOperation getBoundElementReference__TemplateBinding() {
return getBoundElementReference().getEOperations().get(74);
}
@@ -4794,7 +4776,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* <!-- end-user-doc -->
* @generated
*/
- public EOperation getBoundElementReference__IsActiveBehavior() {
+ public EOperation getBoundElementReference__ActiveClass() {
return getBoundElementReference().getEOperations().get(75);
}
@@ -4803,7 +4785,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* <!-- end-user-doc -->
* @generated
*/
- public EOperation getBoundElementReference__ConformsTo__ElementReference() {
+ public EOperation getBoundElementReference__Context() {
return getBoundElementReference().getEOperations().get(76);
}
@@ -4812,7 +4794,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* <!-- end-user-doc -->
* @generated
*/
- public EOperation getBoundElementReference__Equals__ElementReference() {
+ public EOperation getBoundElementReference__IsActiveBehavior() {
return getBoundElementReference().getEOperations().get(77);
}
@@ -4821,7 +4803,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* <!-- end-user-doc -->
* @generated
*/
- public EOperation getBoundElementReference__Copy() {
+ public EOperation getBoundElementReference__ConformsTo__ElementReference() {
return getBoundElementReference().getEOperations().get(78);
}
@@ -4830,7 +4812,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* <!-- end-user-doc -->
* @generated
*/
- public EOperation getBoundElementReference__ModelScope() {
+ public EOperation getBoundElementReference__Equals__ElementReference() {
return getBoundElementReference().getEOperations().get(79);
}
@@ -4839,7 +4821,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* <!-- end-user-doc -->
* @generated
*/
- public EOperation getBoundElementReference__ResolvePathName__String() {
+ public EOperation getBoundElementReference__Copy() {
return getBoundElementReference().getEOperations().get(80);
}
@@ -4848,7 +4830,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* <!-- end-user-doc -->
* @generated
*/
- public EOperation getBoundElementReference__ResolveInScope__String() {
+ public EOperation getBoundElementReference__ModelScope() {
return getBoundElementReference().getEOperations().get(81);
}
@@ -4857,7 +4839,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* <!-- end-user-doc -->
* @generated
*/
- public EOperation getBoundElementReference__ResolveStereotype__String() {
+ public EOperation getBoundElementReference__ResolvePathName__String() {
return getBoundElementReference().getEOperations().get(82);
}
@@ -4866,7 +4848,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* <!-- end-user-doc -->
* @generated
*/
- public EOperation getBoundElementReference__Stub() {
+ public EOperation getBoundElementReference__ResolveInScope__String() {
return getBoundElementReference().getEOperations().get(83);
}
@@ -4875,7 +4857,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* <!-- end-user-doc -->
* @generated
*/
- public EOperation getBoundElementReference__StubFor__UnitDefinition() {
+ public EOperation getBoundElementReference__ResolveStereotype__String() {
return getBoundElementReference().getEOperations().get(84);
}
@@ -4884,7 +4866,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* <!-- end-user-doc -->
* @generated
*/
- public EOperation getBoundElementReference__BoundReferenceTo__ElementReference() {
+ public EOperation getBoundElementReference__Stub() {
return getBoundElementReference().getEOperations().get(85);
}
@@ -4893,7 +4875,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* <!-- end-user-doc -->
* @generated
*/
- public EOperation getBoundElementReference__BoundReferenceTo1__ElementReference() {
+ public EOperation getBoundElementReference__StubFor__UnitDefinition() {
return getBoundElementReference().getEOperations().get(86);
}
@@ -4902,7 +4884,7 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* <!-- end-user-doc -->
* @generated
*/
- public EOperation getBoundElementReference__BoundReferencesTo__EList() {
+ public EOperation getBoundElementReference__BoundReferenceTo__ElementReference() {
return getBoundElementReference().getEOperations().get(87);
}
@@ -4911,6 +4893,24 @@ public class AlfPackageImpl extends EPackageImpl implements AlfPackage {
* <!-- end-user-doc -->
* @generated
*/
+ public EOperation getBoundElementReference__BoundReferenceTo1__ElementReference() {
+ return getBoundElementReference().getEOperations().get(88);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getBoundElementReference__BoundReferencesTo__EList() {
+ return getBoundElementReference().getEOperations().get(89);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
public EClass getDocumentedElement() {
if (documentedElementEClass == null) {
documentedElementEClass = (EClass)EPackage.Registry.INSTANCE.getEPackage(AlfPackage.eNS_URI).getEClassifiers().get(7);
diff --git a/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/impl/BehaviorInvocationExpressionImpl.java b/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/impl/BehaviorInvocationExpressionImpl.java
index 6d5d2ba294a..390cd29c173 100644
--- a/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/impl/BehaviorInvocationExpressionImpl.java
+++ b/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/impl/BehaviorInvocationExpressionImpl.java
@@ -244,7 +244,10 @@ public class BehaviorInvocationExpressionImpl extends InvocationExpressionImpl i
" referent <> null and \n" +
" -- NOTE: This check prevents the invocation from disambiguating to an \n" +
" -- illegal constructor invocation.\n" +
- " not referent.isConstructor()";
+ " not referent.isConstructor() and\n" +
+ " -- Also check that the association owns all its ends.\n" +
+ " referent.isAssociationEnd() implies\n" +
+ " \treferent.association().properties()->forAll(isAssociationEnd())";
/**
* <!-- begin-user-doc -->
diff --git a/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/impl/BoundElementReferenceImpl.java b/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/impl/BoundElementReferenceImpl.java
index 7375e42b476..2e311695cbb 100644
--- a/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/impl/BoundElementReferenceImpl.java
+++ b/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/impl/BoundElementReferenceImpl.java
@@ -1262,6 +1262,54 @@ public class BoundElementReferenceImpl extends ElementReferenceImpl implements B
}
/**
+ * The cached invocation delegate for the '{@link #properties() <em>Properties</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #properties()
+ * @generated
+ * @ordered
+ */
+ protected static final EOperation.Internal.InvocationDelegate PROPERTIES__EINVOCATION_DELEGATE = ((EOperation.Internal)AlfPackage.eINSTANCE.getBoundElementReference__Properties()).getInvocationDelegate();
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ public EList<ElementReference> properties() {
+ try {
+ return (EList<ElementReference>)PROPERTIES__EINVOCATION_DELEGATE.dynamicInvoke(this, null);
+ }
+ catch (InvocationTargetException ite) {
+ throw new WrappedException(ite);
+ }
+ }
+
+ /**
+ * The cached invocation delegate for the '{@link #associationEnds() <em>Association Ends</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #associationEnds()
+ * @generated
+ * @ordered
+ */
+ protected static final EOperation.Internal.InvocationDelegate ASSOCIATION_ENDS__EINVOCATION_DELEGATE = ((EOperation.Internal)AlfPackage.eINSTANCE.getBoundElementReference__AssociationEnds()).getInvocationDelegate();
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ public EList<ElementReference> associationEnds() {
+ try {
+ return (EList<ElementReference>)ASSOCIATION_ENDS__EINVOCATION_DELEGATE.dynamicInvoke(this, null);
+ }
+ catch (InvocationTargetException ite) {
+ throw new WrappedException(ite);
+ }
+ }
+
+ /**
* The cached invocation delegate for the '{@link #opposite() <em>Opposite</em>}' operation.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -2277,6 +2325,8 @@ public class BoundElementReferenceImpl extends ElementReferenceImpl implements B
case AlfPackage.ELEMENT_REFERENCE___OWNED_MEMBERS: return AlfPackage.BOUND_ELEMENT_REFERENCE___OWNED_MEMBERS;
case AlfPackage.ELEMENT_REFERENCE___MEMBERS: return AlfPackage.BOUND_ELEMENT_REFERENCE___MEMBERS;
case AlfPackage.ELEMENT_REFERENCE___NESTED_CLASSIFIERS: return AlfPackage.BOUND_ELEMENT_REFERENCE___NESTED_CLASSIFIERS;
+ case AlfPackage.ELEMENT_REFERENCE___PROPERTIES: return AlfPackage.BOUND_ELEMENT_REFERENCE___PROPERTIES;
+ case AlfPackage.ELEMENT_REFERENCE___ASSOCIATION_ENDS: return AlfPackage.BOUND_ELEMENT_REFERENCE___ASSOCIATION_ENDS;
case AlfPackage.ELEMENT_REFERENCE___OPPOSITE: return AlfPackage.BOUND_ELEMENT_REFERENCE___OPPOSITE;
case AlfPackage.ELEMENT_REFERENCE___SIGNAL: return AlfPackage.BOUND_ELEMENT_REFERENCE___SIGNAL;
case AlfPackage.ELEMENT_REFERENCE___PARAMETERS: return AlfPackage.BOUND_ELEMENT_REFERENCE___PARAMETERS;
@@ -2424,6 +2474,10 @@ public class BoundElementReferenceImpl extends ElementReferenceImpl implements B
return members();
case AlfPackage.BOUND_ELEMENT_REFERENCE___NESTED_CLASSIFIERS:
return nestedClassifiers();
+ case AlfPackage.BOUND_ELEMENT_REFERENCE___PROPERTIES:
+ return properties();
+ case AlfPackage.BOUND_ELEMENT_REFERENCE___ASSOCIATION_ENDS:
+ return associationEnds();
case AlfPackage.BOUND_ELEMENT_REFERENCE___OPPOSITE:
return opposite();
case AlfPackage.BOUND_ELEMENT_REFERENCE___SIGNAL:
diff --git a/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/impl/ExternalElementReferenceImpl.java b/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/impl/ExternalElementReferenceImpl.java
index 40454b52751..20a84a043cd 100644
--- a/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/impl/ExternalElementReferenceImpl.java
+++ b/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/impl/ExternalElementReferenceImpl.java
@@ -1290,31 +1290,6 @@ public class ExternalElementReferenceImpl extends ElementReferenceImpl implement
}
/**
- * The cached invocation delegate for the '{@link #memberEnds() <em>Member Ends</em>}' operation.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #memberEnds()
- * @generated
- * @ordered
- */
- protected static final EOperation.Internal.InvocationDelegate MEMBER_ENDS__EINVOCATION_DELEGATE = ((EOperation.Internal)AlfPackage.eINSTANCE.getExternalElementReference__MemberEnds()).getInvocationDelegate();
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @SuppressWarnings("unchecked")
- public EList<ElementReference> memberEnds() {
- try {
- return (EList<ElementReference>)MEMBER_ENDS__EINVOCATION_DELEGATE.dynamicInvoke(this, null);
- }
- catch (InvocationTargetException ite) {
- throw new WrappedException(ite);
- }
- }
-
- /**
* The cached invocation delegate for the '{@link #associationEnds() <em>Association Ends</em>}' operation.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -1340,31 +1315,6 @@ public class ExternalElementReferenceImpl extends ElementReferenceImpl implement
}
/**
- * The cached invocation delegate for the '{@link #ownedEnds() <em>Owned Ends</em>}' operation.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #ownedEnds()
- * @generated
- * @ordered
- */
- protected static final EOperation.Internal.InvocationDelegate OWNED_ENDS__EINVOCATION_DELEGATE = ((EOperation.Internal)AlfPackage.eINSTANCE.getExternalElementReference__OwnedEnds()).getInvocationDelegate();
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @SuppressWarnings("unchecked")
- public EList<ElementReference> ownedEnds() {
- try {
- return (EList<ElementReference>)OWNED_ENDS__EINVOCATION_DELEGATE.dynamicInvoke(this, null);
- }
- catch (InvocationTargetException ite) {
- throw new WrappedException(ite);
- }
- }
-
- /**
* The cached invocation delegate for the '{@link #opposite() <em>Opposite</em>}' operation.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -2432,12 +2382,8 @@ public class ExternalElementReferenceImpl extends ElementReferenceImpl implement
return nestedClassifiers();
case AlfPackage.EXTERNAL_ELEMENT_REFERENCE___PROPERTIES:
return properties();
- case AlfPackage.EXTERNAL_ELEMENT_REFERENCE___MEMBER_ENDS:
- return memberEnds();
case AlfPackage.EXTERNAL_ELEMENT_REFERENCE___ASSOCIATION_ENDS:
return associationEnds();
- case AlfPackage.EXTERNAL_ELEMENT_REFERENCE___OWNED_ENDS:
- return ownedEnds();
case AlfPackage.EXTERNAL_ELEMENT_REFERENCE___OPPOSITE:
return opposite();
case AlfPackage.EXTERNAL_ELEMENT_REFERENCE___SIGNAL:
diff --git a/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/impl/LinkOperationExpressionImpl.java b/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/impl/LinkOperationExpressionImpl.java
index 6c0b6c27c91..ad35eba7afb 100644
--- a/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/impl/LinkOperationExpressionImpl.java
+++ b/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/impl/LinkOperationExpressionImpl.java
@@ -285,7 +285,10 @@ public class LinkOperationExpressionImpl extends InvocationExpressionImpl implem
* @generated
* @ordered
*/
- protected static final String LINK_OPERATION_EXPRESSION_ASSOCIATION_REFERENCE_DIAGNOSTIC_CHAIN_MAP__EEXPRESSION = "self.referent <> null";
+ protected static final String LINK_OPERATION_EXPRESSION_ASSOCIATION_REFERENCE_DIAGNOSTIC_CHAIN_MAP__EEXPRESSION = "\n" +
+ "\tself.referent <> null and \n" +
+ "\t-- Also check that the association owns all its ends.\n" +
+ "\tself.referent.properties()->forAll(isAssociationEnd())";
/**
* <!-- begin-user-doc -->
diff --git a/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/impl/alf.ecore b/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/impl/alf.ecore
index b0e8c6c06e5..1df2f678b5b 100644
--- a/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/impl/alf.ecore
+++ b/plugins/uml/alf/org.eclipse.papyrus.uml.alf/syntax-gen/org/eclipse/papyrus/uml/alf/impl/alf.ecore
@@ -1147,22 +1147,12 @@
</eOperations>
<eOperations name="properties" upperBound="-1" eType="#//ElementReference">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
- <details key="body" value="&#xA; if not self.isClassifier() then OrderedSet(ElementReference){}&#xA; else if self.isAssociation() then&#xA; -- NOTE: This is to ensure proper ordering.&#xA; self.memberEnds()->appendAll(self.parents().properties()->asOrderedSet())&#xA; else&#xA; self.element.oclAsType(uml::Classifier).allAttributes()->&#xA; collect(a | ExternalElementReference{element = a})->&#xA; asOrderedSet()&#xA; endif endif"/>
- </eAnnotations>
- </eOperations>
- <eOperations name="memberEnds" upperBound="-1" eType="#//ElementReference">
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
- <details key="body" value="&#xA; if not self.isAssociation() then OrderedSet(ElementReference){}&#xA; else&#xA; self.element.oclAsType(uml::Association).memberEnd->&#xA; collect(e | ExternalElementReference{element = e})->&#xA; asOrderedSet()&#xA; endif"/>
+ <details key="body" value="&#xA; if not self.isClassifier() then OrderedSet(ElementReference){}&#xA; else if self.isAssociation() then &#xA; &#x9;self.members()->select(isProperty())&#xA; else&#xA; self.element.oclAsType(uml::Classifier).allAttributes()->&#xA; collect(a | ExternalElementReference{element = a})->&#xA; asOrderedSet()&#xA; endif endif"/>
</eAnnotations>
</eOperations>
<eOperations name="associationEnds" upperBound="-1" eType="#//ElementReference">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
- <details key="body" value="&#xA; -- NOTE: This is to ensure proper ordering.&#xA; self.ownedEnds()->appendAll(self.parents().associationEnds()->asOrderedSet())"/>
- </eAnnotations>
- </eOperations>
- <eOperations name="ownedEnds" upperBound="-1" eType="#//ElementReference">
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
- <details key="body" value="&#xA; if not self.isAssociation() then OrderedSet(ElementReference){}&#xA; else&#xA; self.element.oclAsType(uml::Association).ownedEnd->&#xA; collect(e | ExternalElementReference{element = e})->&#xA; asOrderedSet()&#xA; endif"/>
+ <details key="body" value="&#xA;&#x9;&#x9;if not self.isAssociation() then OrderedSet(ElementReference){}&#xA;&#x9;&#x9;else &#xA;&#x9;&#x9;&#x9;self.element.oclAsType(uml::Association).ownedEnd->&#xA; collect(e | ExternalElementReference{element = e})->&#xA; asOrderedSet()&#xA;&#x9;&#x9;endif"/>
</eAnnotations>
</eOperations>
<eOperations name="opposite" eType="#//ElementReference">
@@ -1634,6 +1624,16 @@
<details key="body" value="self.boundReferencesTo(self.referent.nestedClassifiers())->asOrderedSet()"/>
</eAnnotations>
</eOperations>
+ <eOperations name="properties" upperBound="-1" eType="#//ElementReference">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
+ <details key="body" value="self.boundReferencesTo(self.referent.properties())->asOrderedSet()"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="associationEnds" upperBound="-1" eType="#//ElementReference">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
+ <details key="body" value="self.boundReferencesTo(self.referent.associationEnds())->asOrderedSet()"/>
+ </eAnnotations>
+ </eOperations>
<eOperations name="opposite" eType="#//ElementReference">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="body" value="&#xA; self.boundReferenceTo(self.referent.opposite())"/>
@@ -3369,7 +3369,7 @@
</eOperations>
<eOperations name="InvocationExpression_parameterElements" upperBound="-1" eType="#//ElementReference">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
- <details key="body" value="&#xA; let referent = self.referent in&#xA; if self.isBehavior or self.isOperation then&#xA; referent.parameters()&#xA; else if self.isAssociationEnd then&#xA; let association = referent.association() in&#xA; association.properties()->reject(equals(referent))->&#xA; collect(p | self.parameterFromPropertyWithMultiplicity(p, '1', '1'))->asOrderedSet()&#xA; else if referent &lt;> null then&#xA; referent.properties()->&#xA; collect(p | self.parameterFromProperty(p))->asOrderedSet() &#xA; else&#xA; OrderedSet(ElementReference){}&#xA; endif endif endif"/>
+ <details key="body" value="&#xA; let referent = self.referent in&#xA; if self.isBehavior or self.isOperation then&#xA; referent.parameters()&#xA; else if self.isAssociationEnd then&#xA; let association = referent.association() in&#xA; association.associationEnds()->reject(equals(referent))->&#xA; collect(p | self.parameterFromPropertyWithMultiplicity(p, '1', '1'))->asOrderedSet()&#xA; else if referent &lt;> null then&#xA; referent.properties()->&#xA; collect(p | self.parameterFromProperty(p))->asOrderedSet() &#xA; else&#xA; OrderedSet(ElementReference){}&#xA; endif endif endif"/>
</eAnnotations>
</eOperations>
<eOperations name="parameterFromProperty" lowerBound="1" eType="#//ElementReference">
@@ -4233,7 +4233,7 @@
</eOperations>
<eOperations name="linkOperationExpressionAssociationReference" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
- <details key="body" value="self.referent &lt;> null"/>
+ <details key="body" value="&#xA;&#x9;self.referent &lt;> null and &#xA;&#x9;-- Also check that the association owns all its ends.&#xA;&#x9;self.referent.properties()->forAll(isAssociationEnd())"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">
@@ -4257,7 +4257,7 @@
</eOperations>
<eOperations name="parameterElements" upperBound="-1" eType="#//ElementReference">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
- <details key="body" value="&#xA; if self.isClear then&#xA; OrderedSet(ElementReference){&#xA; FormalParameter{&#xA; direction = 'in',&#xA; typePart = TypedElementDefinition{&#xA; lowerBound = '1',&#xA; upperBound = '1'&#xA; }&#xA; }.toReference()&#xA; }&#xA; else&#xA; let referent = self.referent in&#xA; if referent = null then OrderedSet(ElementReference){}&#xA; else&#xA; self.referent.properties()->collect(property | &#xA; -- NOTE: Arguments for a link operation have multiplicity 1..1.&#xA; parameterFromPropertyWithMultiplicity(property, '1', '1')&#xA; )->asOrderedSet()&#xA; endif&#xA; endif"/>
+ <details key="body" value="&#xA; if self.isClear then&#xA; OrderedSet(ElementReference){&#xA; FormalParameter{&#xA; direction = 'in',&#xA; typePart = TypedElementDefinition{&#xA; lowerBound = '1',&#xA; upperBound = '1'&#xA; }&#xA; }.toReference()&#xA; }&#xA; else&#xA; let referent = self.referent in&#xA; if referent = null then OrderedSet(ElementReference){}&#xA; else&#xA; self.referent.associationEnds()->collect(property | &#xA; -- NOTE: Arguments for a link operation have multiplicity 1..1.&#xA; parameterFromPropertyWithMultiplicity(property, '1', '1')&#xA; )->asOrderedSet()&#xA; endif&#xA; endif"/>
</eAnnotations>
</eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="operation" lowerBound="1"
@@ -5678,12 +5678,6 @@
<eStructuralFeatures xsi:type="ecore:EAttribute" name="isBitStringConversion"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" volatile="true"
transient="true" derived="true">
- <eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
- <details key="body" value="FeatureInvocationExpression"/>
- </eAnnotations>
- <eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
- <details key="body" value="FeatureInvocationExpression"/>
- </eAnnotations>
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="derivation" value="self.isIntegerType(self.operand.type)"/>
</eAnnotations>
@@ -5801,7 +5795,7 @@
</eOperations>
<eOperations name="behaviorInvocationExpressionReferentConstraint" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
- <details key="body" value="&#xA; self.isImplicit or &#xA; let referent = self.referent in&#xA; referent &lt;> null and &#xA; -- NOTE: This check prevents the invocation from disambiguating to an &#xA; -- illegal constructor invocation.&#xA; not referent.isConstructor()"/>
+ <details key="body" value="&#xA; self.isImplicit or &#xA; let referent = self.referent in&#xA; referent &lt;> null and &#xA; -- NOTE: This check prevents the invocation from disambiguating to an &#xA; -- illegal constructor invocation.&#xA; not referent.isConstructor() and&#xA; -- Also check that the association owns all its ends.&#xA; referent.isAssociationEnd() implies&#xA; &#x9;referent.association().properties()->forAll(isAssociationEnd())"/>
</eAnnotations>
<eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
<eParameters name="context">

Back to the top