Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian W. Damus2015-02-11 17:48:29 -0500
committerChristian W. Damus2015-02-11 17:48:29 -0500
commita970bab6673faa4b184de307bc6f8b43b7c3dda0 (patch)
tree4837dfaa9b19589a07dd23cc2c9b58fe80fb080f
parent683c5eecdd2399f86e6a4bfbba01165da4a2dc61 (diff)
downloadorg.eclipse.papyrus-a970bab6673faa4b184de307bc6f8b43b7c3dda0.tar.gz
org.eclipse.papyrus-a970bab6673faa4b184de307bc6f8b43b7c3dda0.tar.xz
org.eclipse.papyrus-a970bab6673faa4b184de307bc6f8b43b7c3dda0.zip
Bug 451230: Modeling assistants customization for profiles
https://bugs.eclipse.org/bugs/show_bug.cgi?id=451230 Add a relationshipTypes subset of the elementTypes collection of the assistant provider to reliably determine which element types are relationships, because deriving this from the modeled connection assistants would omit element types for which there is no assistant. Update the assistants-model generators to reliably generate the relationshipTypes collection based on (a) links defined in the GMFGen model or (b) UML metaclasses conforming to Relationship in a profile. Re-generate the Class and Use Case assistants models.
-rw-r--r--plugins/developer/org.eclipse.papyrus.dev.assistants.codegen/src/org/eclipse/papyrus/dev/assistants/codegen/generator/ModelingAssistantProviderRule.xtend4
-rw-r--r--plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant.edit/plugin.properties2
-rw-r--r--plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant.edit/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/provider/ModelingAssistantProviderItemProvider.java177
-rw-r--r--plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/model/assistant.ecore23
-rw-r--r--plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/model/assistant.genmodel10
-rw-r--r--plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/model/assistant.merged.uml55
-rw-r--r--plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/model/assistant.notation84
-rw-r--r--plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/model/assistant.uml31
-rw-r--r--plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/Assistant.java4
-rw-r--r--plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/AssistantPackage.java126
-rw-r--r--plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/AssistedElementTypeFilter.java4
-rw-r--r--plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/ConnectionAssistant.java10
-rw-r--r--plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/ElementTypeFilter.java4
-rw-r--r--plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/ModelingAssistantProvider.java61
-rw-r--r--plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/PopupAssistant.java8
-rw-r--r--plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/impl/AssistantImpl.java4
-rw-r--r--plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/impl/AssistantPackageImpl.java79
-rw-r--r--plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/impl/AssistedElementTypeFilterImpl.java4
-rw-r--r--plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/impl/ConnectionAssistantImpl.java4
-rw-r--r--plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/impl/ElementTypeFilterImpl.java4
-rw-r--r--plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/impl/ModelingAssistantProviderImpl.java153
-rw-r--r--plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/impl/PopupAssistantImpl.java4
-rw-r--r--plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/internal/operations/AssistantOperations.java6
-rw-r--r--plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/internal/operations/AssistedElementTypeFilterOperations.java6
-rw-r--r--plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/internal/operations/ElementTypeFilterOperations.java6
-rw-r--r--plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/internal/operations/ModelingAssistantProviderOperations.java70
-rw-r--r--plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src/org/eclipse/papyrus/infra/gmfdiag/assistant/core/util/ModelingAssistantUtil.java16
-rw-r--r--plugins/uml/assistants/org.eclipse.papyrus.uml.profile.assistants.generator/src/org/eclipse/papyrus/uml/profile/assistants/generator/ModelingAssistantProviderRule.xtend1
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.clazz/model/classdiagram.assistants24
-rw-r--r--plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.usecase/models/usecaseDiagram.assistants12
-rw-r--r--tests/junit/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant.tests/resources/j2ee-all.assistants2
-rw-r--r--tests/junit/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant.tests/resources/j2ee-usecase.assistants2
-rw-r--r--tests/junit/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant.tests/resources/test.assistants2
-rw-r--r--tests/junit/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant.tests/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/tests/AssistedElementTypeFilterTest.java3
-rw-r--r--tests/junit/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant.tests/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/tests/ModelingAssistantProviderTest.java32
35 files changed, 903 insertions, 134 deletions
diff --git a/plugins/developer/org.eclipse.papyrus.dev.assistants.codegen/src/org/eclipse/papyrus/dev/assistants/codegen/generator/ModelingAssistantProviderRule.xtend b/plugins/developer/org.eclipse.papyrus.dev.assistants.codegen/src/org/eclipse/papyrus/dev/assistants/codegen/generator/ModelingAssistantProviderRule.xtend
index 2f5530fdf7d..d6e4ef71e3e 100644
--- a/plugins/developer/org.eclipse.papyrus.dev.assistants.codegen/src/org/eclipse/papyrus/dev/assistants/codegen/generator/ModelingAssistantProviderRule.xtend
+++ b/plugins/developer/org.eclipse.papyrus.dev.assistants.codegen/src/org/eclipse/papyrus/dev/assistants/codegen/generator/ModelingAssistantProviderRule.xtend
@@ -42,6 +42,7 @@ class ModelingAssistantProviderRule extends org.eclipse.papyrus.uml.profile.assi
// Popup assistants to create non-relationships
popupAssistants.add(type.toPopupAssistant)
} else {
+ relationshipTypeIDs.add(type.identifier)
connectionAssistants.add(type.toConnectionAssistant)
}
]
@@ -50,7 +51,8 @@ class ModelingAssistantProviderRule extends org.eclipse.papyrus.uml.profile.assi
def create createModelingAssistantProvider toModelingAssistantProvider(GenEditorGenerator editor) {
name = editor.modelID
elementTypeIDs.addAll(editor.diagram.validNodes.map[elementType?.uniqueIdentifier].filterNull)
- elementTypeIDs.addAll(editor.diagram.validLinks.map[elementType?.uniqueIdentifier].filterNull)
+ relationshipTypeIDs.addAll(editor.diagram.validLinks.map[elementType?.uniqueIdentifier].filterNull)
+ elementTypeIDs.addAll(relationshipTypeIDs)
popupAssistants.addAll(editor.diagram.validNodes.map[toPopupAssistant])
connectionAssistants.addAll(editor.diagram.validLinks.map[toConnectionAssistant])
diff --git a/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant.edit/plugin.properties b/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant.edit/plugin.properties
index 11862325c22..f4054557eb3 100644
--- a/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant.edit/plugin.properties
+++ b/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant.edit/plugin.properties
@@ -61,3 +61,5 @@ _UI_AssistedElementTypeFilter_type = Assisted Element Type Filter
_UI_AssistedElementTypeFilter_provider_feature = Provider
_UI_ModelingAssistantProvider_excludedElementType_feature = Excluded Element Type
_UI_ModelingAssistantProvider_excludedElementTypeID_feature = Excluded Element Type ID
+_UI_ModelingAssistantProvider_relationshipType_feature = Relationship Type
+_UI_ModelingAssistantProvider_relationshipTypeID_feature = Relationship Type ID
diff --git a/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant.edit/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/provider/ModelingAssistantProviderItemProvider.java b/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant.edit/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/provider/ModelingAssistantProviderItemProvider.java
index a746a53399d..9a16604b3af 100644
--- a/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant.edit/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/provider/ModelingAssistantProviderItemProvider.java
+++ b/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant.edit/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/provider/ModelingAssistantProviderItemProvider.java
@@ -12,15 +12,24 @@
package org.eclipse.papyrus.infra.gmfdiag.assistant.provider;
+import java.util.ArrayList;
import java.util.Collection;
+import java.util.HashSet;
import java.util.List;
import java.util.Objects;
+import java.util.Set;
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.common.command.CompoundCommand;
import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.common.util.ResourceLocator;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.command.AddCommand;
+import org.eclipse.emf.edit.command.RemoveCommand;
import org.eclipse.emf.edit.command.SetCommand;
import org.eclipse.emf.edit.domain.EditingDomain;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
@@ -40,6 +49,9 @@ import org.eclipse.papyrus.infra.filters.FiltersFactory;
import org.eclipse.papyrus.infra.gmfdiag.assistant.AssistantFactory;
import org.eclipse.papyrus.infra.gmfdiag.assistant.AssistantPackage;
import org.eclipse.papyrus.infra.gmfdiag.assistant.ModelingAssistantProvider;
+import org.eclipse.uml2.common.edit.command.SubsetAddCommand;
+import org.eclipse.uml2.common.edit.command.SubsetSupersetReplaceCommand;
+import org.eclipse.uml2.common.edit.command.SupersetRemoveCommand;
/**
* This is the item provider adapter for a {@link org.eclipse.papyrus.infra.gmfdiag.assistant.ModelingAssistantProvider} object.
@@ -82,6 +94,8 @@ public class ModelingAssistantProviderItemProvider extends ItemProviderAdapter i
addClientContextIDPropertyDescriptor(object);
addExcludedElementTypePropertyDescriptor(object);
addExcludedElementTypeIDPropertyDescriptor(object);
+ addRelationshipTypePropertyDescriptor(object);
+ addRelationshipTypeIDPropertyDescriptor(object);
}
return itemPropertyDescriptors;
}
@@ -304,6 +318,55 @@ public class ModelingAssistantProviderItemProvider extends ItemProviderAdapter i
}
/**
+ * This adds a property descriptor for the Relationship Type feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addRelationshipTypePropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_ModelingAssistantProvider_relationshipType_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_ModelingAssistantProvider_relationshipType_feature", "_UI_ModelingAssistantProvider_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ AssistantPackage.Literals.MODELING_ASSISTANT_PROVIDER__RELATIONSHIP_TYPE,
+ false,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ new String[] { "org.eclipse.ui.views.properties.expert" //$NON-NLS-1$
+ }));
+ }
+
+ /**
+ * This adds a property descriptor for the Relationship Type ID feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addRelationshipTypeIDPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_ModelingAssistantProvider_relationshipTypeID_feature"), //$NON-NLS-1$
+ getString("_UI_PropertyDescriptor_description", "_UI_ModelingAssistantProvider_relationshipTypeID_feature", "_UI_ModelingAssistantProvider_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ AssistantPackage.Literals.MODELING_ASSISTANT_PROVIDER__RELATIONSHIP_TYPE_ID,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
* This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
* {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
* <!-- begin-user-doc -->
@@ -399,6 +462,8 @@ public class ModelingAssistantProviderItemProvider extends ItemProviderAdapter i
case AssistantPackage.MODELING_ASSISTANT_PROVIDER__CLIENT_CONTEXT_ID:
case AssistantPackage.MODELING_ASSISTANT_PROVIDER__EXCLUDED_ELEMENT_TYPE:
case AssistantPackage.MODELING_ASSISTANT_PROVIDER__EXCLUDED_ELEMENT_TYPE_ID:
+ case AssistantPackage.MODELING_ASSISTANT_PROVIDER__RELATIONSHIP_TYPE:
+ case AssistantPackage.MODELING_ASSISTANT_PROVIDER__RELATIONSHIP_TYPE_ID:
fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
return;
case AssistantPackage.MODELING_ASSISTANT_PROVIDER__OWNED_FILTER:
@@ -465,4 +530,116 @@ public class ModelingAssistantProviderItemProvider extends ItemProviderAdapter i
return ((IChildCreationExtender) adapterFactory).getResourceLocator();
}
+ /**
+ * @see org.eclipse.emf.edit.provider.ItemProviderAdapter#createAddCommand(org.eclipse.emf.edit.domain.EditingDomain, org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EStructuralFeature, java.util.Collection, int)
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected Command createAddCommand(EditingDomain domain, EObject owner, EStructuralFeature feature, Collection<?> collection, int index) {
+ if (feature == AssistantPackage.Literals.MODELING_ASSISTANT_PROVIDER__RELATIONSHIP_TYPE_ID) {
+ return new SubsetAddCommand(domain, owner, feature, new EStructuralFeature[] { AssistantPackage.Literals.MODELING_ASSISTANT_PROVIDER__ELEMENT_TYPE_ID }, collection, index);
+ }
+ return super.createAddCommand(domain, owner, feature, collection, index);
+ }
+
+ /**
+ * @see org.eclipse.emf.edit.provider.ItemProviderAdapter#createRemoveCommand(org.eclipse.emf.edit.domain.EditingDomain, org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EStructuralFeature, java.util.Collection)
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected Command createRemoveCommand(EditingDomain domain, EObject owner, EStructuralFeature feature, Collection<?> collection) {
+ if (feature == AssistantPackage.Literals.MODELING_ASSISTANT_PROVIDER__ELEMENT_TYPE_ID) {
+ return new SupersetRemoveCommand(domain, owner, feature, new EStructuralFeature[] { AssistantPackage.Literals.MODELING_ASSISTANT_PROVIDER__RELATIONSHIP_TYPE_ID }, collection);
+ }
+ return super.createRemoveCommand(domain, owner, feature, collection);
+ }
+
+ /**
+ * @see org.eclipse.emf.edit.provider.ItemProviderAdapter#createReplaceCommand(org.eclipse.emf.edit.domain.EditingDomain, org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EStructuralFeature, java.lang.Object, java.util.Collection)
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected Command createReplaceCommand(EditingDomain domain, EObject owner, EStructuralFeature feature, Object value, Collection<?> collection) {
+ if (feature == AssistantPackage.Literals.MODELING_ASSISTANT_PROVIDER__RELATIONSHIP_TYPE_ID) {
+ return new SubsetSupersetReplaceCommand(domain, owner, feature, new EStructuralFeature[] { AssistantPackage.Literals.MODELING_ASSISTANT_PROVIDER__ELEMENT_TYPE_ID }, null, value, collection);
+ }
+ if (feature == AssistantPackage.Literals.MODELING_ASSISTANT_PROVIDER__ELEMENT_TYPE_ID) {
+ return new SubsetSupersetReplaceCommand(domain, owner, feature, null, new EStructuralFeature[] { AssistantPackage.Literals.MODELING_ASSISTANT_PROVIDER__RELATIONSHIP_TYPE_ID }, value, collection);
+ }
+ return super.createReplaceCommand(domain, owner, feature, value, collection);
+ }
+
+ //
+ // FIXME Work-around for UML2 bug 459723
+ // https://bugs.eclipse.org/bugs/show_bug.cgi?id=459723
+ // Replace with generated code when available
+ //
+
+ @Override
+ protected Command createSetCommand(EditingDomain domain, EObject owner, EStructuralFeature feature, Object value) {
+ if (feature == AssistantPackage.Literals.MODELING_ASSISTANT_PROVIDER__RELATIONSHIP_TYPE_ID) {
+ return createSetSubsetListCommand(domain, owner, feature, new EStructuralFeature[] { AssistantPackage.Literals.MODELING_ASSISTANT_PROVIDER__ELEMENT_TYPE_ID }, value);
+ }
+ if (feature == AssistantPackage.Literals.MODELING_ASSISTANT_PROVIDER__ELEMENT_TYPE_ID) {
+ return createSetSupersetListCommand(domain, owner, feature, new EStructuralFeature[] { AssistantPackage.Literals.MODELING_ASSISTANT_PROVIDER__RELATIONSHIP_TYPE_ID }, value);
+ }
+ return super.createSetCommand(domain, owner, feature, value);
+ }
+
+ protected Command createSetSubsetListCommand(EditingDomain domain, EObject owner, EStructuralFeature subset, EStructuralFeature[] supersets, Object value) {
+ List<Command> result = new ArrayList<>(supersets.length + 1);
+
+ EList<?> newList = (EList<?>) value;
+ result.add(new SetCommand(domain, owner, subset, newList));
+
+ for (int i = 0; i < supersets.length; i++) {
+ EStructuralFeature superset = supersets[i];
+ EList<Object> toAdd = new BasicEList<>(newList.size());
+ Set<?> current = new HashSet<>((EList<?>) owner.eGet(superset));
+ for (Object next : newList) {
+ if (!current.contains(next)) {
+ toAdd.add(next);
+ }
+ }
+ if (!toAdd.isEmpty()) {
+ result.add(AddCommand.create(domain, owner, superset, toAdd));
+ }
+ }
+
+ return (result.size() == 1) ? result.get(0) : new CompoundCommand(0, result);
+ }
+
+ protected Command createSetSupersetListCommand(EditingDomain domain, EObject owner, EStructuralFeature superset, EStructuralFeature[] subsets, Object value) {
+ List<Command> result = new ArrayList<>(subsets.length + 1);
+
+ EList<?> newList = (EList<?>) value;
+ result.add(new SetCommand(domain, owner, superset, newList));
+
+ // What are we removing?
+ EList<Object> toRemove = new BasicEList<>((EList<?>) owner.eGet(superset));
+ toRemove.removeAll(newList);
+
+ if (!toRemove.isEmpty()) {
+ for (int i = 0; i < subsets.length; i++) {
+ EStructuralFeature subset = subsets[i];
+ EList<Object> toRemoveFromSubset = new BasicEList<>((EList<?>) owner.eGet(subset));
+ toRemoveFromSubset.retainAll(toRemove);
+ if (!toRemoveFromSubset.isEmpty()) {
+ result.add(RemoveCommand.create(domain, owner, subset, toRemoveFromSubset));
+ }
+ }
+ }
+
+ return (result.size() == 1) ? result.get(0) : new CompoundCommand(0, result);
+ }
+
+ //
+ // End work-around
+ //
}
diff --git a/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/model/assistant.ecore b/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/model/assistant.ecore
index 03f67d72805..3aecc7a63a1 100644
--- a/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/model/assistant.ecore
+++ b/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/model/assistant.ecore
@@ -37,6 +37,14 @@
<details key="suppressedVisibility" value="true"/>
</eAnnotations>
</eOperations>
+ <eOperations name="getRelationshipTypes" ordered="false" upperBound="-1" eType="#//ElementType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="suppressedVisibility" value="true"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="isRelationshipType" ordered="false" lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Boolean">
+ <eParameters name="elementType" ordered="false" lowerBound="1" eType="#//ElementType"/>
+ </eOperations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name" ordered="false" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="assistant" ordered="false"
upperBound="-1" eType="#//Assistant" changeable="false" volatile="true" transient="true"
@@ -93,6 +101,21 @@
<details key="documentation" value="Identifiers of element types that the provider will never return as popup or connection assistants.&#xA;This implies that inferred element types specializing any of these excluded types also will not be provided as assistants."/>
</eAnnotations>
</eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="relationshipType" ordered="false"
+ unique="false" upperBound="-1" eType="#//ElementType" changeable="false" volatile="true"
+ transient="true" derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The element types supported by the provider."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//ModelingAssistantProvider/elementType"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="relationshipTypeID" ordered="false"
+ upperBound="-1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The identifiers of element types supported by the provider."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//ModelingAssistantProvider/elementTypeID"/>
+ </eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Assistant" abstract="true">
<eOperations name="getElementType" ordered="false" lowerBound="1" eType="#//ElementType">
diff --git a/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/model/assistant.genmodel b/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/model/assistant.genmodel
index 7bbeb3a6db3..01e9256b610 100644
--- a/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/model/assistant.genmodel
+++ b/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/model/assistant.genmodel
@@ -76,6 +76,11 @@
<propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
</genFeatures>
<genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute assistant.ecore#//ModelingAssistantProvider/excludedElementTypeID"/>
+ <genFeatures xsi:type="genmodel:GenFeature" property="Readonly" createChild="false"
+ ecoreFeature="ecore:EAttribute assistant.ecore#//ModelingAssistantProvider/relationshipType">
+ <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
+ </genFeatures>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute assistant.ecore#//ModelingAssistantProvider/relationshipTypeID"/>
<genOperations xsi:type="genmodel:GenOperation" ecoreOperation="assistant.ecore#//ModelingAssistantProvider/getElementTypes"
cacheAdapterScope="Resource"/>
<genOperations xsi:type="genmodel:GenOperation" ecoreOperation="assistant.ecore#//ModelingAssistantProvider/getClientContext"
@@ -85,6 +90,11 @@
</genOperations>
<genOperations xsi:type="genmodel:GenOperation" ecoreOperation="assistant.ecore#//ModelingAssistantProvider/getExcludedElementTypes"
cacheAdapterScope="Resource"/>
+ <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="assistant.ecore#//ModelingAssistantProvider/getRelationshipTypes"
+ cacheAdapterScope="Resource"/>
+ <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="assistant.ecore#//ModelingAssistantProvider/isRelationshipType">
+ <genParameters xsi:type="genmodel:GenParameter" ecoreParameter="assistant.ecore#//ModelingAssistantProvider/isRelationshipType/elementType"/>
+ </genOperations>
</genClasses>
<genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="assistant.ecore#//Assistant">
<genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute assistant.ecore#//Assistant/elementTypeID"/>
diff --git a/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/model/assistant.merged.uml b/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/model/assistant.merged.uml
index bcbac553ead..d533bf3e8fc 100644
--- a/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/model/assistant.merged.uml
+++ b/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/model/assistant.merged.uml
@@ -266,6 +266,21 @@ This implies that inferred element types specializing any of these excluded type
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="ModelingAssistantProvider-excludedElementTypeID-_lowerValue"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ModelingAssistantProvider-excludedElementTypeID-_upperValue" value="*"/>
</ownedAttribute>
+ <ownedAttribute xmi:id="ModelingAssistantProvider-relationshipType" name="relationshipType" visibility="public" type="ElementType" isUnique="false" isReadOnly="true" isDerived="true" subsettedProperty="ModelingAssistantProvider-elementType">
+ <ownedComment xmi:id="ModelingAssistantProvider-relationshipType-_ownedComment.0" annotatedElement="ModelingAssistantProvider-relationshipType">
+ <body>The element types supported by the provider.</body>
+ </ownedComment>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ModelingAssistantProvider-relationshipType-_lowerValue"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ModelingAssistantProvider-relationshipType-_upperValue" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:id="ModelingAssistantProvider-relationshipTypeID" name="relationshipTypeID" subsettedProperty="ModelingAssistantProvider-elementTypeID">
+ <ownedComment xmi:id="ModelingAssistantProvider-relationshipTypeID-_ownedComment.0" annotatedElement="ModelingAssistantProvider-relationshipTypeID">
+ <body>The identifiers of element types supported by the provider.</body>
+ </ownedComment>
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ModelingAssistantProvider-relationshipTypeID-_lowerValue"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ModelingAssistantProvider-relationshipTypeID-_upperValue" value="*"/>
+ </ownedAttribute>
<interfaceRealization xmi:id="ModelingAssistantProvider-_interfaceRealization.0" client="ModelingAssistantProvider" supplier="IProvider IModelingAssistantProvider" contract="IModelingAssistantProvider"/>
<ownedOperation xmi:id="ModelingAssistantProvider-getElementTypes" name="getElementTypes" visibility="protected" isQuery="true">
<ownedParameter xmi:id="ModelingAssistantProvider-getElementTypes-_ownedParameter.0" type="ElementType" direction="return">
@@ -291,6 +306,18 @@ This implies that inferred element types specializing any of these excluded type
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ModelingAssistantProvider-getExcludedElementTypes-_ownedParameter.0-_upperValue" value="*"/>
</ownedParameter>
</ownedOperation>
+ <ownedOperation xmi:id="ModelingAssistantProvider-getRelationshipTypes" name="getRelationshipTypes" visibility="protected" isQuery="true">
+ <ownedParameter xmi:id="ModelingAssistantProvider-getRelationshipTypes-_ownedParameter.0" type="ElementType" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="ModelingAssistantProvider-getRelationshipTypes-_ownedParameter.0-_lowerValue"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="ModelingAssistantProvider-getRelationshipTypes-_ownedParameter.0-_upperValue" value="*"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:id="ModelingAssistantProvider-isRelationshipType" name="isRelationshipType">
+ <ownedParameter xmi:id="ModelingAssistantProvider-isRelationshipType-elementType" name="elementType" type="ElementType" effect="read"/>
+ <ownedParameter xmi:id="ModelingAssistantProvider-isRelationshipType-_ownedParameter.1" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ </ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Interface" xmi:id="IModelingAssistantProvider" name="IModelingAssistantProvider" visibility="private">
<generalization xmi:id="IModelingAssistantProvider-_generalization.0" general="IProvider"/>
@@ -407,17 +434,19 @@ This implies that inferred element types specializing any of these excluded type
<Ecore:EOperation xmi:id="_yacP0IFgEeS8o9c9-aDIuQ" base_Operation="AssistedElementTypeFilter-getProvider" visibility="None"/>
<Ecore:EAttribute xmi:id="_alaK8Ku-EeSfB7MLtP_t1w" base_Property="ModelingAssistantProvider-excludedElementType"/>
<Ecore:EOperation xmi:id="_6xnMsKu-EeSfB7MLtP_t1w" base_Operation="ModelingAssistantProvider-getExcludedElementTypes" visibility="None"/>
- <Ecore:EDataType xmi:id="_fNkzcKu_EeSfB7MLtP_t1w" instanceClassName="org.eclipse.gmf.runtime.common.core.service.IOperation" base_PrimitiveType="IOperation"/>
- <Ecore:EDataType xmi:id="_fNkzcau_EeSfB7MLtP_t1w" instanceClassName="org.eclipse.gmf.runtime.common.core.service.IProviderChangeListener" base_PrimitiveType="IProviderChangeListener"/>
- <Ecore:EClass xmi:id="_fNkzcqu_EeSfB7MLtP_t1w" instanceClassName="org.eclipse.gmf.runtime.common.core.service.IProvider" base_Interface="IProvider"/>
- <Ecore:EReference xmi:id="_fNkzc6u_EeSfB7MLtP_t1w" isTransient="true" visibility="None" base_Property="IProvider-listener"/>
- <Ecore:EDataType xmi:id="_fNod0Ku_EeSfB7MLtP_t1w" instanceClassName="org.eclipse.core.runtime.IAdaptable" base_PrimitiveType="IAdaptable"/>
- <Ecore:EClass xmi:id="_fNpE4Ku_EeSfB7MLtP_t1w" instanceClassName="org.eclipse.gmf.runtime.emf.ui.services.modelingassistant.IModelingAssistantProvider" base_Interface="IModelingAssistantProvider"/>
- <standard:Metamodel xmi:id="_g4XhUKu_EeSfB7MLtP_t1w" base_Model="_0"/>
- <standard:Metaclass xmi:id="_g4ZWgKu_EeSfB7MLtP_t1w" base_Class="ConnectionAssistant"/>
- <standard:Metaclass xmi:id="_g4bLsKu_EeSfB7MLtP_t1w" base_Class="Assistant"/>
- <standard:Metaclass xmi:id="_g4bywKu_EeSfB7MLtP_t1w" base_Class="PopupAssistant"/>
- <standard:Metaclass xmi:id="_g4dA4Ku_EeSfB7MLtP_t1w" base_Class="ElementTypeFilter"/>
- <standard:Metaclass xmi:id="_g4gEMKu_EeSfB7MLtP_t1w" base_Class="AssistedElementTypeFilter"/>
- <standard:Metaclass xmi:id="_g4igcKu_EeSfB7MLtP_t1w" base_Class="ModelingAssistantProvider"/>
+ <Ecore:EAttribute xmi:id="_yIL4oLIoEeSNj7xRtN2nYQ" base_Property="ModelingAssistantProvider-relationshipType"/>
+ <Ecore:EOperation xmi:id="_yIVCkLIoEeSNj7xRtN2nYQ" base_Operation="ModelingAssistantProvider-getRelationshipTypes" visibility="None"/>
+ <Ecore:EDataType xmi:id="_5kuGMLIpEeSNj7xRtN2nYQ" instanceClassName="org.eclipse.gmf.runtime.common.core.service.IOperation" base_PrimitiveType="IOperation"/>
+ <Ecore:EDataType xmi:id="_5kuGMbIpEeSNj7xRtN2nYQ" instanceClassName="org.eclipse.gmf.runtime.common.core.service.IProviderChangeListener" base_PrimitiveType="IProviderChangeListener"/>
+ <Ecore:EClass xmi:id="_5kutQLIpEeSNj7xRtN2nYQ" instanceClassName="org.eclipse.gmf.runtime.common.core.service.IProvider" base_Interface="IProvider"/>
+ <Ecore:EReference xmi:id="_5kutQbIpEeSNj7xRtN2nYQ" isTransient="true" visibility="None" base_Property="IProvider-listener"/>
+ <Ecore:EDataType xmi:id="_5k0z4LIpEeSNj7xRtN2nYQ" instanceClassName="org.eclipse.core.runtime.IAdaptable" base_PrimitiveType="IAdaptable"/>
+ <Ecore:EClass xmi:id="_5k0z4bIpEeSNj7xRtN2nYQ" instanceClassName="org.eclipse.gmf.runtime.emf.ui.services.modelingassistant.IModelingAssistantProvider" base_Interface="IModelingAssistantProvider"/>
+ <standard:Metamodel xmi:id="_7pIN8LIpEeSNj7xRtN2nYQ" base_Model="_0"/>
+ <standard:Metaclass xmi:id="_7pKDILIpEeSNj7xRtN2nYQ" base_Class="ConnectionAssistant"/>
+ <standard:Metaclass xmi:id="_7pLRQLIpEeSNj7xRtN2nYQ" base_Class="Assistant"/>
+ <standard:Metaclass xmi:id="_7pMfYLIpEeSNj7xRtN2nYQ" base_Class="PopupAssistant"/>
+ <standard:Metaclass xmi:id="_7pNtgLIpEeSNj7xRtN2nYQ" base_Class="ElementTypeFilter"/>
+ <standard:Metaclass xmi:id="_7pQJwLIpEeSNj7xRtN2nYQ" base_Class="AssistedElementTypeFilter"/>
+ <standard:Metaclass xmi:id="_7pR-8LIpEeSNj7xRtN2nYQ" base_Class="ModelingAssistantProvider"/>
</xmi:XMI>
diff --git a/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/model/assistant.notation b/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/model/assistant.notation
index 90b4a8780dc..a19a2ae7874 100644
--- a/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/model/assistant.notation
+++ b/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/model/assistant.notation
@@ -31,6 +31,14 @@
<element xmi:type="uml:Property" href="assistant.uml#_afnE8Ku-EeSfB7MLtP_t1w"/>
<layoutConstraint xmi:type="notation:Location" xmi:id="_A_6iAau_EeSfB7MLtP_t1w"/>
</children>
+ <children xmi:type="notation:Shape" xmi:id="_OnBQwLIpEeSNj7xRtN2nYQ" type="3012">
+ <element xmi:type="uml:Property" href="assistant.uml#_yIFK8LIoEeSNj7xRtN2nYQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_OnBQwbIpEeSNj7xRtN2nYQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_OnGwULIpEeSNj7xRtN2nYQ" type="3012">
+ <element xmi:type="uml:Property" href="assistant.uml#_yIIOQLIoEeSNj7xRtN2nYQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_OnGwUbIpEeSNj7xRtN2nYQ"/>
+ </children>
<styles xmi:type="notation:TitleStyle" xmi:id="_4d348W84EeSumdlFUM6GVw"/>
<styles xmi:type="notation:SortingStyle" xmi:id="_4d348m84EeSumdlFUM6GVw"/>
<styles xmi:type="notation:FilteringStyle" xmi:id="_4d348284EeSumdlFUM6GVw"/>
@@ -53,6 +61,14 @@
<element xmi:type="uml:Operation" href="assistant.uml#_6xkwcKu-EeSfB7MLtP_t1w"/>
<layoutConstraint xmi:type="notation:Location" xmi:id="_CdodMau_EeSfB7MLtP_t1w"/>
</children>
+ <children xmi:type="notation:Shape" xmi:id="_PRvBsLIpEeSNj7xRtN2nYQ" type="3013">
+ <element xmi:type="uml:Operation" href="assistant.uml#_yIKDcLIoEeSNj7xRtN2nYQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_PRvBsbIpEeSNj7xRtN2nYQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_i02cALIpEeSNj7xRtN2nYQ" type="3013">
+ <element xmi:type="uml:Operation" href="assistant.uml#_i0wVYLIpEeSNj7xRtN2nYQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_i02cAbIpEeSNj7xRtN2nYQ"/>
+ </children>
<styles xmi:type="notation:TitleStyle" xmi:id="_4d349m84EeSumdlFUM6GVw"/>
<styles xmi:type="notation:SortingStyle" xmi:id="_4d349284EeSumdlFUM6GVw"/>
<styles xmi:type="notation:FilteringStyle" xmi:id="_4d34-G84EeSumdlFUM6GVw"/>
@@ -65,7 +81,7 @@
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_4d34_m84EeSumdlFUM6GVw"/>
</children>
<element xmi:type="uml:Class" href="assistant.uml#_4dEnsG84EeSumdlFUM6GVw"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4dvWEW84EeSumdlFUM6GVw" x="214" y="13" width="237" height="234"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4dvWEW84EeSumdlFUM6GVw" x="193" y="5" width="331" height="300"/>
</children>
<children xmi:type="notation:Shape" xmi:id="_fpdbwG9GEeSumdlFUM6GVw" type="2008">
<children xmi:type="notation:DecorationNode" xmi:id="_fpeC0G9GEeSumdlFUM6GVw" type="5029"/>
@@ -88,7 +104,7 @@
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_fpeC329GEeSumdlFUM6GVw"/>
</children>
<element xmi:type="uml:Class" href="assistant.uml#_fpc0sG9GEeSumdlFUM6GVw"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fpdbwW9GEeSumdlFUM6GVw" x="869" y="354" height="123"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fpdbwW9GEeSumdlFUM6GVw" x="850" y="414" height="123"/>
</children>
<children xmi:type="notation:Shape" xmi:id="_hQPzYG9GEeSumdlFUM6GVw" type="2008">
<children xmi:type="notation:DecorationNode" xmi:id="_hQPzYm9GEeSumdlFUM6GVw" type="5029"/>
@@ -153,7 +169,7 @@
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_CpZwdG9HEeSumdlFUM6GVw"/>
</children>
<element xmi:type="uml:Class" href="assistant.uml#_CpX7QG9HEeSumdlFUM6GVw"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CpZJYW9HEeSumdlFUM6GVw" x="712" y="234"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CpZJYW9HEeSumdlFUM6GVw" x="693" y="294"/>
</children>
<children xmi:type="notation:Shape" xmi:id="_vX08oG9HEeSumdlFUM6GVw" type="2004">
<eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0C0FEG9HEeSumdlFUM6GVw" source="QualifiedName">
@@ -187,7 +203,7 @@
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_vX3_9m9HEeSumdlFUM6GVw"/>
</children>
<element xmi:type="uml:Interface" href="platform:/resource/org.eclipse.papyrus.infra.filters/model/filters.uml#_ftlkkHBIEeSbg_BqWNBy6A"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vX08oW9HEeSumdlFUM6GVw" x="221" y="324" width="227" height="169"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vX08oW9HEeSumdlFUM6GVw" x="211" y="365" width="227" height="169"/>
</children>
<children xmi:type="notation:Shape" xmi:id="_1i2UcG9HEeSumdlFUM6GVw" type="2008">
<children xmi:type="notation:DecorationNode" xmi:id="_1i2Ucm9HEeSumdlFUM6GVw" type="5029"/>
@@ -226,7 +242,7 @@
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_1i2UgW9HEeSumdlFUM6GVw"/>
</children>
<element xmi:type="uml:Class" href="assistant.uml#_1i1GUG9HEeSumdlFUM6GVw"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1i2UcW9HEeSumdlFUM6GVw" x="317" y="580"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1i2UcW9HEeSumdlFUM6GVw" x="342" y="616" width="229" height="122"/>
</children>
<children xmi:type="notation:Shape" xmi:id="_vq9KoG9gEeSumdlFUM6GVw" type="2009">
<eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_5wQmsG9gEeSumdlFUM6GVw" source="Stereotype_Annotation">
@@ -301,12 +317,12 @@
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_Y6MlPoFfEeS8o9c9-aDIuQ"/>
</children>
<element xmi:type="uml:Class" href="assistant.uml#_Y6HFoIFfEeS8o9c9-aDIuQ"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Y6L-IYFfEeS8o9c9-aDIuQ" x="74" y="564"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Y6L-IYFfEeS8o9c9-aDIuQ" x="74" y="600" width="230"/>
</children>
<children xmi:type="notation:Shape" xmi:id="_1BiDUIFfEeS8o9c9-aDIuQ" type="2012">
<children xmi:type="notation:DecorationNode" xmi:id="_1BiqYIFfEeS8o9c9-aDIuQ" type="5038"/>
<element xmi:type="uml:Comment" href="assistant.uml#_1Bg1MIFfEeS8o9c9-aDIuQ"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1BiDUYFfEeS8o9c9-aDIuQ" x="103" y="467" width="95"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1BiDUYFfEeS8o9c9-aDIuQ" x="103" y="503" width="95"/>
</children>
<styles xmi:type="notation:StringValueStyle" xmi:id="_lD7owW84EeSumdlFUM6GVw" name="diagram_compatibility_version" stringValue="1.0.0"/>
<styles xmi:type="notation:DiagramStyle" xmi:id="_lD7owm84EeSumdlFUM6GVw"/>
@@ -339,8 +355,8 @@
<styles xmi:type="notation:FontStyle" xmi:id="_rK3CYW9GEeSumdlFUM6GVw"/>
<element xmi:type="uml:Association" href="assistant.uml#_rK10QG9GEeSumdlFUM6GVw"/>
<bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_rK3CYm9GEeSumdlFUM6GVw" points="[0, 0, -312, 15]$[312, -15, 0, 0]"/>
- <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rg4VsG9GEeSumdlFUM6GVw" id="(0.9578059071729957,0.2094017094017094)"/>
- <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rK--MG9GEeSumdlFUM6GVw" id="(0.0,0.2773109243697479)"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rg4VsG9GEeSumdlFUM6GVw" id="(1.0,0.20344827586206896)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rK--MG9GEeSumdlFUM6GVw" id="(0.0,0.27)"/>
</edges>
<edges xmi:type="notation:Connector" xmi:id="_AAbjEG9HEeSumdlFUM6GVw" type="4002" source="_fpdbwG9GEeSumdlFUM6GVw" target="_hQPzYG9GEeSumdlFUM6GVw">
<children xmi:type="notation:DecorationNode" xmi:id="_AAbjE29HEeSumdlFUM6GVw" type="6007">
@@ -349,8 +365,8 @@
<styles xmi:type="notation:FontStyle" xmi:id="_AAbjEW9HEeSumdlFUM6GVw"/>
<element xmi:type="uml:Generalization" href="assistant.uml#_AAaU8G9HEeSumdlFUM6GVw"/>
<bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_AAbjEm9HEeSumdlFUM6GVw" points="[4, -20, -91, 237]$[19, -283, -76, -26]"/>
- <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AAfNcG9HEeSumdlFUM6GVw" id="(0.40540540540540543,0.0)"/>
- <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Akw_MG9HEeSumdlFUM6GVw" id="(0.5258620689655172,1.0)"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AAfNcG9HEeSumdlFUM6GVw" id="(0.39823008849557523,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Akw_MG9HEeSumdlFUM6GVw" id="(0.52,1.0)"/>
</edges>
<edges xmi:type="notation:Connector" xmi:id="_EQ7u8G9HEeSumdlFUM6GVw" type="4002" source="_CpZJYG9HEeSumdlFUM6GVw" target="_hQPzYG9GEeSumdlFUM6GVw">
<children xmi:type="notation:DecorationNode" xmi:id="_EQ8WAG9HEeSumdlFUM6GVw" type="6007">
@@ -360,7 +376,7 @@
<element xmi:type="uml:Generalization" href="assistant.uml#_EQ7H4G9HEeSumdlFUM6GVw"/>
<bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_EQ7u8m9HEeSumdlFUM6GVw" points="[2, -10, -59, 180]$[36, -140, -25, 50]"/>
<sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_EQ_ZUG9HEeSumdlFUM6GVw" id="(0.71,0.0)"/>
- <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_l3Q6cG9JEeSumdlFUM6GVw" id="(0.23275862068965517,1.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_l3Q6cG9JEeSumdlFUM6GVw" id="(0.23,1.0)"/>
</edges>
<edges xmi:type="notation:Connector" xmi:id="_4kLXcG9HEeSumdlFUM6GVw" type="4003" source="_1i2UcG9HEeSumdlFUM6GVw" target="_vX08oG9HEeSumdlFUM6GVw">
<children xmi:type="notation:DecorationNode" xmi:id="_4kL-gG9HEeSumdlFUM6GVw" type="6008">
@@ -372,8 +388,8 @@
<styles xmi:type="notation:FontStyle" xmi:id="_4kLXcW9HEeSumdlFUM6GVw"/>
<element xmi:type="uml:InterfaceRealization" href="assistant.uml#_4kKJUG9HEeSumdlFUM6GVw"/>
<bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_4kLXcm9HEeSumdlFUM6GVw" points="[-2, -13, 17, 149]$[-23, -146, -4, 16]"/>
- <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4kQP8G9HEeSumdlFUM6GVw" id="(0.23423423423423423,0.13333333333333333)"/>
- <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4kQP8W9HEeSumdlFUM6GVw" id="(0.52,1.0)"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4kQP8G9HEeSumdlFUM6GVw" id="(0.13973799126637554,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4kQP8W9HEeSumdlFUM6GVw" id="(0.5198237885462555,1.0)"/>
</edges>
<edges xmi:type="notation:Connector" xmi:id="_M23NgG9IEeSumdlFUM6GVw" type="4001" source="_CpZJYG9HEeSumdlFUM6GVw" target="_vX08oG9HEeSumdlFUM6GVw">
<children xmi:type="notation:DecorationNode" xmi:id="_M230kG9IEeSumdlFUM6GVw" type="6001">
@@ -383,7 +399,7 @@
<layoutConstraint xmi:type="notation:Location" xmi:id="_M230k29IEeSumdlFUM6GVw" y="20"/>
</children>
<children xmi:type="notation:DecorationNode" xmi:id="_M24boG9IEeSumdlFUM6GVw" type="6003">
- <layoutConstraint xmi:type="notation:Location" xmi:id="_M24boW9IEeSumdlFUM6GVw" x="-1" y="20"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_M24boW9IEeSumdlFUM6GVw" x="8" y="19"/>
</children>
<children xmi:type="notation:DecorationNode" xmi:id="_M24bom9IEeSumdlFUM6GVw" type="6005">
<layoutConstraint xmi:type="notation:Location" xmi:id="_M24bo29IEeSumdlFUM6GVw" x="13" y="17"/>
@@ -398,7 +414,7 @@
<element xmi:type="uml:Association" href="assistant.uml#_M21_YG9IEeSumdlFUM6GVw"/>
<bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_M23Ngm9IEeSumdlFUM6GVw" points="[50, -22, -501, 217]$[531, -244, -20, -5]"/>
<sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_N8sXsG9JEeSumdlFUM6GVw" id="(0.0,0.34)"/>
- <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_M2_JUG9IEeSumdlFUM6GVw" id="(1.0,0.058823529411764705)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_M2_JUG9IEeSumdlFUM6GVw" id="(1.0,0.05325443786982249)"/>
</edges>
<edges xmi:type="notation:Connector" xmi:id="_aJazQG9JEeSumdlFUM6GVw" type="4001" source="_4dvWEG84EeSumdlFUM6GVw" target="_vX08oG9HEeSumdlFUM6GVw">
<children xmi:type="notation:DecorationNode" xmi:id="_aJbaUm9JEeSumdlFUM6GVw" type="6001">
@@ -422,8 +438,8 @@
<styles xmi:type="notation:FontStyle" xmi:id="_aJbaUG9JEeSumdlFUM6GVw"/>
<element xmi:type="uml:Association" href="assistant.uml#_aJZlI29JEeSumdlFUM6GVw"/>
<bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_aJbaUW9JEeSumdlFUM6GVw" points="[5, 50, 0, -168]$[1, 209, -4, -9]"/>
- <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_i4FzkG9JEeSumdlFUM6GVw" id="(0.24050632911392406,0.9668508287292817)"/>
- <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_aJlyYG9JEeSumdlFUM6GVw" id="(0.23788546255506607,0.07239819004524888)"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_i4FzkG9JEeSumdlFUM6GVw" id="(0.2175226586102719,1.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_aJlyYG9JEeSumdlFUM6GVw" id="(0.23788546255506607,0.0)"/>
</edges>
<edges xmi:type="notation:Connector" xmi:id="_pNM7gG9JEeSumdlFUM6GVw" type="4001" source="_CpZJYG9HEeSumdlFUM6GVw" target="_vX08oG9HEeSumdlFUM6GVw">
<children xmi:type="notation:DecorationNode" xmi:id="_pNM7g29JEeSumdlFUM6GVw" type="6001">
@@ -448,7 +464,7 @@
<element xmi:type="uml:Association" href="assistant.uml#_pNLGU29JEeSumdlFUM6GVw"/>
<bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_pNM7gm9JEeSumdlFUM6GVw" points="[-28, 3, 323, -37]$[-331, 42, 20, 2]"/>
<sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_pNXTkG9JEeSumdlFUM6GVw" id="(0.0,0.7)"/>
- <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_pNXTkW9JEeSumdlFUM6GVw" id="(1.0,0.22171945701357465)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_pNXTkW9JEeSumdlFUM6GVw" id="(1.0,0.21893491124260356)"/>
</edges>
<edges xmi:type="notation:Connector" xmi:id="_LJ7fsG9KEeSumdlFUM6GVw" type="4001" source="_fpdbwG9GEeSumdlFUM6GVw" target="_vX08oG9HEeSumdlFUM6GVw">
<children xmi:type="notation:DecorationNode" xmi:id="_LJ7fs29KEeSumdlFUM6GVw" type="6001">
@@ -472,8 +488,8 @@
<styles xmi:type="notation:FontStyle" xmi:id="_LJ7fsW9KEeSumdlFUM6GVw"/>
<element xmi:type="uml:Association" href="assistant.uml#_LJ6RkG9KEeSumdlFUM6GVw"/>
<bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_LJ7fsm9KEeSumdlFUM6GVw" points="[-21, -5, 470, 0]$[-466, -4, 25, 1]"/>
- <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_LKGe0G9KEeSumdlFUM6GVw" id="(0.0,0.10569105691056911)"/>
- <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_LKGe0W9KEeSumdlFUM6GVw" id="(1.0,0.4298642533936652)"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_LKGe0G9KEeSumdlFUM6GVw" id="(0.0,0.04065040650406504)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_LKGe0W9KEeSumdlFUM6GVw" id="(1.0,0.4260355029585799)"/>
</edges>
<edges xmi:type="notation:Connector" xmi:id="_a8wfQG9KEeSumdlFUM6GVw" type="4001" source="_fpdbwG9GEeSumdlFUM6GVw" target="_vX08oG9HEeSumdlFUM6GVw">
<children xmi:type="notation:DecorationNode" xmi:id="_a8xGUG9KEeSumdlFUM6GVw" type="6001">
@@ -497,8 +513,8 @@
<styles xmi:type="notation:FontStyle" xmi:id="_a8wfQW9KEeSumdlFUM6GVw"/>
<element xmi:type="uml:Association" href="assistant.uml#_a8vRIG9KEeSumdlFUM6GVw"/>
<bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_a8wfQm9KEeSumdlFUM6GVw" points="[-33, -2, 496, 15]$[-484, 13, 45, 30]"/>
- <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_a89TkG9KEeSumdlFUM6GVw" id="(0.0,0.43089430894308944)"/>
- <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_a89TkW9KEeSumdlFUM6GVw" id="(1.0,0.6108597285067874)"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_a89TkG9KEeSumdlFUM6GVw" id="(0.0,0.43902439024390244)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_a89TkW9KEeSumdlFUM6GVw" id="(1.0,0.6094674556213018)"/>
</edges>
<edges xmi:type="notation:Connector" xmi:id="_rBZnkG9KEeSumdlFUM6GVw" type="4001" source="_fpdbwG9GEeSumdlFUM6GVw" target="_vX08oG9HEeSumdlFUM6GVw">
<children xmi:type="notation:DecorationNode" xmi:id="_rBaOoG9KEeSumdlFUM6GVw" type="6001">
@@ -522,7 +538,7 @@
<styles xmi:type="notation:FontStyle" xmi:id="_rBZnkW9KEeSumdlFUM6GVw"/>
<element xmi:type="uml:Association" href="assistant.uml#_rBYZc29KEeSumdlFUM6GVw"/>
<bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_rBZnkm9KEeSumdlFUM6GVw" points="[-55, 5, 471, -45]$[-500, 70, 26, 20]"/>
- <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w5FMoG9KEeSumdlFUM6GVw" id="(0.0,0.7154471544715447)"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w5FMoG9KEeSumdlFUM6GVw" id="(0.0,0.6585365853658537)"/>
<targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rBkmsG9KEeSumdlFUM6GVw" id="(1.0,0.7692307692307693)"/>
</edges>
<edges xmi:type="notation:Connector" xmi:id="_06hBwG9KEeSumdlFUM6GVw" type="4001" source="_fpdbwG9GEeSumdlFUM6GVw" target="_vX08oG9HEeSumdlFUM6GVw">
@@ -547,8 +563,8 @@
<styles xmi:type="notation:FontStyle" xmi:id="_06hBwW9KEeSumdlFUM6GVw"/>
<element xmi:type="uml:Association" href="assistant.uml#_06fzoG9KEeSumdlFUM6GVw"/>
<bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_06hBwm9KEeSumdlFUM6GVw" points="[-28, 2, 462, -39]$[-483, 50, 7, 9]"/>
- <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_06sA4G9KEeSumdlFUM6GVw" id="(0.0,0.9105691056910569)"/>
- <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_06sA4W9KEeSumdlFUM6GVw" id="(1.0,0.9592760180995475)"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_06sA4G9KEeSumdlFUM6GVw" id="(0.0,0.9186991869918699)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_06sA4W9KEeSumdlFUM6GVw" id="(1.0,0.9585798816568047)"/>
</edges>
<edges xmi:type="notation:Connector" xmi:id="_XbVo8HGlEeSvWqyzhafqGg" type="4001" source="_1i2UcG9HEeSumdlFUM6GVw" target="_4dvWEG84EeSumdlFUM6GVw" routing="Rectilinear">
<children xmi:type="notation:DecorationNode" xmi:id="_XbVo83GlEeSvWqyzhafqGg" type="6001">
@@ -571,9 +587,9 @@
</children>
<styles xmi:type="notation:FontStyle" xmi:id="_XbVo8XGlEeSvWqyzhafqGg"/>
<element xmi:type="uml:Association" href="assistant.uml#_XbTMsHGlEeSvWqyzhafqGg"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XbVo8nGlEeSvWqyzhafqGg" points="[0, 0, 103, 650]$[-267, 0, -164, 650]$[-267, -638, -164, 12]$[-103, -638, 0, 12]"/>
- <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XbdkwHGlEeSvWqyzhafqGg" id="(0.0,0.8666666666666667)"/>
- <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XbdkwXGlEeSvWqyzhafqGg" id="(0.0,0.1708542713567839)"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XbVo8nGlEeSvWqyzhafqGg" points="[0, 3, 128, 642]$[-320, 3, -192, 642]$[-320, -631, -192, 8]$[-128, -631, 0, 8]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XbdkwHGlEeSvWqyzhafqGg" id="(0.0,0.9016393442622951)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XbdkwXGlEeSvWqyzhafqGg" id="(0.0,0.27241379310344827)"/>
</edges>
<edges xmi:type="notation:Connector" xmi:id="_hHdhkIFfEeS8o9c9-aDIuQ" type="4003" source="_Y6L-IIFfEeS8o9c9-aDIuQ" target="_vX08oG9HEeSumdlFUM6GVw">
<children xmi:type="notation:DecorationNode" xmi:id="_hHeIoIFfEeS8o9c9-aDIuQ" type="6008">
@@ -585,15 +601,15 @@
<styles xmi:type="notation:FontStyle" xmi:id="_hHdhkYFfEeS8o9c9-aDIuQ"/>
<element xmi:type="uml:InterfaceRealization" href="assistant.uml#_hHMb0IFfEeS8o9c9-aDIuQ"/>
<bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hHdhkoFfEeS8o9c9-aDIuQ" points="[14, -19, -60, 80]$[61, -70, -13, 29]"/>
- <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hHk2UIFfEeS8o9c9-aDIuQ" id="(0.7612612612612613,0.0)"/>
- <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hHk2UYFfEeS8o9c9-aDIuQ" id="(0.225,1.0)"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hHk2UIFfEeS8o9c9-aDIuQ" id="(0.7608695652173914,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hHk2UYFfEeS8o9c9-aDIuQ" id="(0.22466960352422907,1.0)"/>
</edges>
<edges xmi:type="notation:Connector" xmi:id="_91MRUIFfEeS8o9c9-aDIuQ" type="4013" source="_1BiDUIFfEeS8o9c9-aDIuQ" target="_Y6L-IIFfEeS8o9c9-aDIuQ">
<styles xmi:type="notation:FontStyle" xmi:id="_91MRUYFfEeS8o9c9-aDIuQ"/>
<element xsi:nil="true"/>
<bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_91MRUoFfEeS8o9c9-aDIuQ" points="[10, 30, -41, -87]$[3, 67, -48, -50]"/>
<sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7JC-sIFgEeS8o9c9-aDIuQ" id="(0.5894736842105263,1.0)"/>
- <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7JDlwIFgEeS8o9c9-aDIuQ" id="(0.43243243243243246,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7JDlwIFgEeS8o9c9-aDIuQ" id="(0.427536231884058,0.0)"/>
</edges>
<edges xmi:type="notation:Connector" xmi:id="_DMS44IFgEeS8o9c9-aDIuQ" type="4001" source="_Y6L-IIFfEeS8o9c9-aDIuQ" target="_4dvWEG84EeSumdlFUM6GVw" routing="Rectilinear">
<children xmi:type="notation:DecorationNode" xmi:id="_DMTf8IFgEeS8o9c9-aDIuQ" type="6001">
@@ -617,7 +633,7 @@
<styles xmi:type="notation:FontStyle" xmi:id="_DMS44YFgEeS8o9c9-aDIuQ"/>
<element xmi:type="uml:Association" href="assistant.uml#_DMQcoIFgEeS8o9c9-aDIuQ"/>
<bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_DMS44oFgEeS8o9c9-aDIuQ" points="[9, 0, -128, 397]$[9, -407, -128, -10]$[137, -407, 0, -10]"/>
- <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7JEM0IFgEeS8o9c9-aDIuQ" id="(0.013513513513513514,0.0)"/>
- <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_DMfGIIFgEeS8o9c9-aDIuQ" id="(0.0,0.7738693467336684)"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7JEM0IFgEeS8o9c9-aDIuQ" id="(0.0391304347826087,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_DMfGIIFgEeS8o9c9-aDIuQ" id="(0.0,0.6344827586206897)"/>
</edges>
</notation:Diagram>
diff --git a/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/model/assistant.uml b/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/model/assistant.uml
index d67f65a3789..b1cc00cd3e3 100644
--- a/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/model/assistant.uml
+++ b/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/model/assistant.uml
@@ -80,6 +80,21 @@ This implies that inferred element types specializing any of these excluded type
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_afnE8qu-EeSfB7MLtP_t1w"/>
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_afnE86u-EeSfB7MLtP_t1w" value="*"/>
</ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_yIFK8LIoEeSNj7xRtN2nYQ" name="relationshipType" visibility="public" type="_vq6HUG9gEeSumdlFUM6GVw" isUnique="false" isReadOnly="true" isDerived="true" subsettedProperty="_4IsCUHAYEeSI-6xi41tPrg">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_yIFK8bIoEeSNj7xRtN2nYQ" annotatedElement="_yIFK8LIoEeSNj7xRtN2nYQ">
+ <body>The element types supported by the provider.</body>
+ </ownedComment>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_yIFK8rIoEeSNj7xRtN2nYQ"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_yIFK87IoEeSNj7xRtN2nYQ" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_yIIOQLIoEeSNj7xRtN2nYQ" name="relationshipTypeID" subsettedProperty="_4IwTwHAYEeSI-6xi41tPrg">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_yIIOQbIoEeSNj7xRtN2nYQ" annotatedElement="_yIIOQLIoEeSNj7xRtN2nYQ">
+ <body>The identifiers of element types supported by the provider.</body>
+ </ownedComment>
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_yIIOQrIoEeSNj7xRtN2nYQ"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_yIIOQ7IoEeSNj7xRtN2nYQ" value="*"/>
+ </ownedAttribute>
<ownedOperation xmi:type="uml:Operation" xmi:id="_4-awcHAYEeSI-6xi41tPrg" name="getElementTypes" visibility="protected" isQuery="true">
<ownedParameter xmi:type="uml:Parameter" xmi:id="_4-awcXAYEeSI-6xi41tPrg" type="_vq6HUG9gEeSumdlFUM6GVw" direction="return">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_7XrG0HAYEeSI-6xi41tPrg"/>
@@ -106,6 +121,20 @@ This implies that inferred element types specializing any of these excluded type
<upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_6xkwc6u-EeSfB7MLtP_t1w" value="*"/>
</ownedParameter>
</ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_yIKDcLIoEeSNj7xRtN2nYQ" name="getRelationshipTypes" visibility="protected" isQuery="true">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_yIKDcbIoEeSNj7xRtN2nYQ" type="_vq6HUG9gEeSumdlFUM6GVw" direction="return">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_yIKDcrIoEeSNj7xRtN2nYQ"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_yIKDc7IoEeSNj7xRtN2nYQ" value="*"/>
+ </ownedParameter>
+ </ownedOperation>
+ <ownedOperation xmi:type="uml:Operation" xmi:id="_i0wVYLIpEeSNj7xRtN2nYQ" name="isRelationshipType">
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_m68usLIpEeSNj7xRtN2nYQ" name="elementType" effect="read">
+ <type xmi:type="uml:PrimitiveType" href="assistantapi.uml#_1R7qIG90EeSumdlFUM6GVw"/>
+ </ownedParameter>
+ <ownedParameter xmi:type="uml:Parameter" xmi:id="_sPJzQLIpEeSNj7xRtN2nYQ" direction="return">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedParameter>
+ </ownedOperation>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_fpc0sG9GEeSumdlFUM6GVw" name="ConnectionAssistant">
<generalization xmi:type="uml:Generalization" xmi:id="_AAaU8G9HEeSumdlFUM6GVw" general="_hQOlQG9GEeSumdlFUM6GVw"/>
@@ -283,4 +312,6 @@ This implies that inferred element types specializing any of these excluded type
<Ecore:EOperation xmi:id="_yacP0IFgEeS8o9c9-aDIuQ" base_Operation="_yaO0cIFgEeS8o9c9-aDIuQ" visibility="None"/>
<Ecore:EAttribute xmi:id="_alaK8Ku-EeSfB7MLtP_t1w" base_Property="_afgXQKu-EeSfB7MLtP_t1w"/>
<Ecore:EOperation xmi:id="_6xnMsKu-EeSfB7MLtP_t1w" base_Operation="_6xkwcKu-EeSfB7MLtP_t1w" visibility="None"/>
+ <Ecore:EAttribute xmi:id="_yIL4oLIoEeSNj7xRtN2nYQ" base_Property="_yIFK8LIoEeSNj7xRtN2nYQ"/>
+ <Ecore:EOperation xmi:id="_yIVCkLIoEeSNj7xRtN2nYQ" base_Operation="_yIKDcLIoEeSNj7xRtN2nYQ" visibility="None"/>
</xmi:XMI>
diff --git a/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/Assistant.java b/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/Assistant.java
index 36b92ccd124..b5b880768ac 100644
--- a/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/Assistant.java
+++ b/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/Assistant.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2014 Christian W. Damus and others.
+ * Copyright (c) 2014, 2015 Christian W. Damus and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
@@ -22,12 +22,12 @@ import org.eclipse.gmf.runtime.emf.type.core.IElementType;
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.Assistant#getElementTypeID <em>Element Type ID</em>}</li>
* <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.Assistant#getElementType <em>Element Type</em>}</li>
* <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.Assistant#getProvider <em>Provider</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.papyrus.infra.gmfdiag.assistant.AssistantPackage#getAssistant()
* @model abstract="true"
diff --git a/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/AssistantPackage.java b/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/AssistantPackage.java
index 751a48f83e9..9a069db6049 100644
--- a/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/AssistantPackage.java
+++ b/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/AssistantPackage.java
@@ -583,6 +583,26 @@ public interface AssistantPackage extends EPackage
int MODELING_ASSISTANT_PROVIDER__EXCLUDED_ELEMENT_TYPE_ID = IMODELING_ASSISTANT_PROVIDER_FEATURE_COUNT + 10;
/**
+ * The feature id for the '<em><b>Relationship Type</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int MODELING_ASSISTANT_PROVIDER__RELATIONSHIP_TYPE = IMODELING_ASSISTANT_PROVIDER_FEATURE_COUNT + 11;
+
+ /**
+ * The feature id for the '<em><b>Relationship Type ID</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int MODELING_ASSISTANT_PROVIDER__RELATIONSHIP_TYPE_ID = IMODELING_ASSISTANT_PROVIDER_FEATURE_COUNT + 12;
+
+ /**
* The number of structural features of the '<em>Modeling Assistant Provider</em>' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -590,7 +610,7 @@ public interface AssistantPackage extends EPackage
* @generated
* @ordered
*/
- int MODELING_ASSISTANT_PROVIDER_FEATURE_COUNT = IMODELING_ASSISTANT_PROVIDER_FEATURE_COUNT + 11;
+ int MODELING_ASSISTANT_PROVIDER_FEATURE_COUNT = IMODELING_ASSISTANT_PROVIDER_FEATURE_COUNT + 13;
/**
* The operation id for the '<em>Provides</em>' operation.
@@ -773,6 +793,26 @@ public interface AssistantPackage extends EPackage
int MODELING_ASSISTANT_PROVIDER___GET_EXCLUDED_ELEMENT_TYPES = IMODELING_ASSISTANT_PROVIDER_OPERATION_COUNT + 3;
/**
+ * The operation id for the '<em>Get Relationship Types</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int MODELING_ASSISTANT_PROVIDER___GET_RELATIONSHIP_TYPES = IMODELING_ASSISTANT_PROVIDER_OPERATION_COUNT + 4;
+
+ /**
+ * The operation id for the '<em>Is Relationship Type</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int MODELING_ASSISTANT_PROVIDER___IS_RELATIONSHIP_TYPE__IELEMENTTYPE = IMODELING_ASSISTANT_PROVIDER_OPERATION_COUNT + 5;
+
+ /**
* The number of operations of the '<em>Modeling Assistant Provider</em>' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -780,7 +820,7 @@ public interface AssistantPackage extends EPackage
* @generated
* @ordered
*/
- int MODELING_ASSISTANT_PROVIDER_OPERATION_COUNT = IMODELING_ASSISTANT_PROVIDER_OPERATION_COUNT + 4;
+ int MODELING_ASSISTANT_PROVIDER_OPERATION_COUNT = IMODELING_ASSISTANT_PROVIDER_OPERATION_COUNT + 6;
/**
* The feature id for the '<em><b>Element Type ID</b></em>' attribute.
@@ -1365,6 +1405,30 @@ public interface AssistantPackage extends EPackage
EAttribute getModelingAssistantProvider_ExcludedElementTypeID();
/**
+ * Returns the meta object for the attribute list '{@link org.eclipse.papyrus.infra.gmfdiag.assistant.ModelingAssistantProvider#getRelationshipTypes <em>Relationship Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute list '<em>Relationship Type</em>'.
+ * @see org.eclipse.papyrus.infra.gmfdiag.assistant.ModelingAssistantProvider#getRelationshipTypes()
+ * @see #getModelingAssistantProvider()
+ * @generated
+ */
+ EAttribute getModelingAssistantProvider_RelationshipType();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.papyrus.infra.gmfdiag.assistant.ModelingAssistantProvider#getRelationshipTypeIDs <em>Relationship Type ID</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute list '<em>Relationship Type ID</em>'.
+ * @see org.eclipse.papyrus.infra.gmfdiag.assistant.ModelingAssistantProvider#getRelationshipTypeIDs()
+ * @see #getModelingAssistantProvider()
+ * @generated
+ */
+ EAttribute getModelingAssistantProvider_RelationshipTypeID();
+
+ /**
* Returns the meta object for the '{@link org.eclipse.papyrus.infra.gmfdiag.assistant.ModelingAssistantProvider#getElementTypes() <em>Get Element Types</em>}' operation.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -1409,6 +1473,28 @@ public interface AssistantPackage extends EPackage
EOperation getModelingAssistantProvider__GetExcludedElementTypes();
/**
+ * Returns the meta object for the '{@link org.eclipse.papyrus.infra.gmfdiag.assistant.ModelingAssistantProvider#getRelationshipTypes() <em>Get Relationship Types</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the '<em>Get Relationship Types</em>' operation.
+ * @see org.eclipse.papyrus.infra.gmfdiag.assistant.ModelingAssistantProvider#getRelationshipTypes()
+ * @generated
+ */
+ EOperation getModelingAssistantProvider__GetRelationshipTypes();
+
+ /**
+ * Returns the meta object for the '{@link org.eclipse.papyrus.infra.gmfdiag.assistant.ModelingAssistantProvider#isRelationshipType(org.eclipse.gmf.runtime.emf.type.core.IElementType) <em>Is Relationship Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @return the meta object for the '<em>Is Relationship Type</em>' operation.
+ * @see org.eclipse.papyrus.infra.gmfdiag.assistant.ModelingAssistantProvider#isRelationshipType(org.eclipse.gmf.runtime.emf.type.core.IElementType)
+ * @generated
+ */
+ EOperation getModelingAssistantProvider__IsRelationshipType__IElementType();
+
+ /**
* Returns the meta object for class '{@link org.eclipse.papyrus.infra.gmfdiag.assistant.Assistant <em>Assistant</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -2074,6 +2160,24 @@ public interface AssistantPackage extends EPackage
EAttribute MODELING_ASSISTANT_PROVIDER__EXCLUDED_ELEMENT_TYPE_ID = eINSTANCE.getModelingAssistantProvider_ExcludedElementTypeID();
/**
+ * The meta object literal for the '<em><b>Relationship Type</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute MODELING_ASSISTANT_PROVIDER__RELATIONSHIP_TYPE = eINSTANCE.getModelingAssistantProvider_RelationshipType();
+
+ /**
+ * The meta object literal for the '<em><b>Relationship Type ID</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute MODELING_ASSISTANT_PROVIDER__RELATIONSHIP_TYPE_ID = eINSTANCE.getModelingAssistantProvider_RelationshipTypeID();
+
+ /**
* The meta object literal for the '<em><b>Get Element Types</b></em>' operation.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -2110,6 +2214,24 @@ public interface AssistantPackage extends EPackage
EOperation MODELING_ASSISTANT_PROVIDER___GET_EXCLUDED_ELEMENT_TYPES = eINSTANCE.getModelingAssistantProvider__GetExcludedElementTypes();
/**
+ * The meta object literal for the '<em><b>Get Relationship Types</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EOperation MODELING_ASSISTANT_PROVIDER___GET_RELATIONSHIP_TYPES = eINSTANCE.getModelingAssistantProvider__GetRelationshipTypes();
+
+ /**
+ * The meta object literal for the '<em><b>Is Relationship Type</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EOperation MODELING_ASSISTANT_PROVIDER___IS_RELATIONSHIP_TYPE__IELEMENTTYPE = eINSTANCE.getModelingAssistantProvider__IsRelationshipType__IElementType();
+
+ /**
* The meta object literal for the '{@link org.eclipse.papyrus.infra.gmfdiag.assistant.impl.AssistantImpl <em>Assistant</em>}' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
diff --git a/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/AssistedElementTypeFilter.java b/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/AssistedElementTypeFilter.java
index 44e20e6598a..d831904bc1e 100644
--- a/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/AssistedElementTypeFilter.java
+++ b/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/AssistedElementTypeFilter.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2014 Christian W. Damus and others.
+ * Copyright (c) 2014, 2015 Christian W. Damus and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
@@ -24,10 +24,10 @@ import org.eclipse.papyrus.infra.filters.Filter;
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.AssistedElementTypeFilter#getProvider <em>Provider</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.papyrus.infra.gmfdiag.assistant.AssistantPackage#getAssistedElementTypeFilter()
* @model
diff --git a/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/ConnectionAssistant.java b/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/ConnectionAssistant.java
index a5325a5a0c7..302e28f59f1 100644
--- a/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/ConnectionAssistant.java
+++ b/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/ConnectionAssistant.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2014 Christian W. Damus and others.
+ * Copyright (c) 2014, 2015 Christian W. Damus and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
@@ -22,6 +22,7 @@ import org.eclipse.papyrus.infra.filters.Filter;
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.ConnectionAssistant#getSourceFilter <em>Source Filter</em>}</li>
* <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.ConnectionAssistant#getOwnedSourceFilter <em>Owned Source Filter</em>}</li>
@@ -29,7 +30,6 @@ import org.eclipse.papyrus.infra.filters.Filter;
* <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.ConnectionAssistant#getOwnedTargetFilter <em>Owned Target Filter</em>}</li>
* <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.ConnectionAssistant#getOwningProvider <em>Owning Provider</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.papyrus.infra.gmfdiag.assistant.AssistantPackage#getConnectionAssistant()
* @model
@@ -42,10 +42,10 @@ public interface ConnectionAssistant extends Assistant
* It is bidirectional and its opposite is '{@link org.eclipse.papyrus.infra.gmfdiag.assistant.ModelingAssistantProvider#getConnectionAssistants <em>Connection Assistant</em>}'.
* <p>
* This feature subsets the following features:
+ * </p>
* <ul>
* <li>'{@link org.eclipse.papyrus.infra.gmfdiag.assistant.Assistant#getProvider() <em>Provider</em>}'</li>
* </ul>
- * </p>
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Owning Provider</em>' container reference isn't clear, there really should be more of a description here...
@@ -105,10 +105,10 @@ public interface ConnectionAssistant extends Assistant
* Returns the value of the '<em><b>Owned Source Filter</b></em>' containment reference.
* <p>
* This feature subsets the following features:
+ * </p>
* <ul>
* <li>'{@link org.eclipse.papyrus.infra.gmfdiag.assistant.ConnectionAssistant#getSourceFilter() <em>Source Filter</em>}'</li>
* </ul>
- * </p>
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Owned Source Filter</em>' containment reference isn't clear, there really should be more of a description here...
@@ -182,10 +182,10 @@ public interface ConnectionAssistant extends Assistant
* Returns the value of the '<em><b>Owned Target Filter</b></em>' containment reference.
* <p>
* This feature subsets the following features:
+ * </p>
* <ul>
* <li>'{@link org.eclipse.papyrus.infra.gmfdiag.assistant.ConnectionAssistant#getTargetFilter() <em>Target Filter</em>}'</li>
* </ul>
- * </p>
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Owned Target Filter</em>' containment reference isn't clear, there really should be more of a description here...
diff --git a/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/ElementTypeFilter.java b/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/ElementTypeFilter.java
index 0ff7267f920..3d40ef17a3a 100644
--- a/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/ElementTypeFilter.java
+++ b/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/ElementTypeFilter.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2014 Christian W. Damus and others.
+ * Copyright (c) 2014, 2015 Christian W. Damus and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
@@ -22,12 +22,12 @@ import org.eclipse.papyrus.infra.filters.Filter;
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.ElementTypeFilter#getElementTypeID <em>Element Type ID</em>}</li>
* <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.ElementTypeFilter#getElementType <em>Element Type</em>}</li>
* <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.ElementTypeFilter#getProvider <em>Provider</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.papyrus.infra.gmfdiag.assistant.AssistantPackage#getElementTypeFilter()
* @model
diff --git a/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/ModelingAssistantProvider.java b/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/ModelingAssistantProvider.java
index 5e2353859d3..835297c573e 100644
--- a/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/ModelingAssistantProvider.java
+++ b/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/ModelingAssistantProvider.java
@@ -34,6 +34,7 @@ import org.eclipse.papyrus.infra.filters.Filter;
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.ModelingAssistantProvider#getName <em>Name</em>}</li>
* <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.ModelingAssistantProvider#getAssistants <em>Assistant</em>}</li>
@@ -46,8 +47,9 @@ import org.eclipse.papyrus.infra.filters.Filter;
* <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.ModelingAssistantProvider#getClientContextID <em>Client Context ID</em>}</li>
* <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.ModelingAssistantProvider#getExcludedElementTypes <em>Excluded Element Type</em>}</li>
* <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.ModelingAssistantProvider#getExcludedElementTypeIDs <em>Excluded Element Type ID</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.ModelingAssistantProvider#getRelationshipTypes <em>Relationship Type</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.ModelingAssistantProvider#getRelationshipTypeIDs <em>Relationship Type ID</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.papyrus.infra.gmfdiag.assistant.AssistantPackage#getModelingAssistantProvider()
* @model superTypes="org.eclipse.papyrus.infra.gmfdiag.assistant.IModelingAssistantProvider"
@@ -112,6 +114,15 @@ public interface ModelingAssistantProvider extends EObject, IModelingAssistantPr
IElementType getElementType(String id);
/**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @model dataType="org.eclipse.uml2.types.Boolean" required="true" ordered="false" elementTypeDataType="org.eclipse.papyrus.infra.gmfdiag.assistant.ElementType" elementTypeRequired="true" elementTypeOrdered="false"
+ * @generated
+ */
+ boolean isRelationshipType(IElementType elementType);
+
+ /**
* Returns the value of the '<em><b>Owned Filter</b></em>' containment reference list.
* The list contents are of type {@link org.eclipse.papyrus.infra.filters.Filter}.
* <!-- begin-user-doc -->
@@ -180,10 +191,10 @@ public interface ModelingAssistantProvider extends EObject, IModelingAssistantPr
* It is bidirectional and its opposite is '{@link org.eclipse.papyrus.infra.gmfdiag.assistant.PopupAssistant#getOwningProvider <em>Owning Provider</em>}'.
* <p>
* This feature subsets the following features:
+ * </p>
* <ul>
* <li>'{@link org.eclipse.papyrus.infra.gmfdiag.assistant.ModelingAssistantProvider#getAssistants() <em>Assistant</em>}'</li>
* </ul>
- * </p>
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Popup Assistant</em>' containment reference list isn't clear, there really should be more of a description here...
@@ -215,10 +226,10 @@ public interface ModelingAssistantProvider extends EObject, IModelingAssistantPr
* It is bidirectional and its opposite is '{@link org.eclipse.papyrus.infra.gmfdiag.assistant.ConnectionAssistant#getOwningProvider <em>Owning Provider</em>}'.
* <p>
* This feature subsets the following features:
+ * </p>
* <ul>
* <li>'{@link org.eclipse.papyrus.infra.gmfdiag.assistant.ModelingAssistantProvider#getAssistants() <em>Assistant</em>}'</li>
* </ul>
- * </p>
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Connection Assistant</em>' containment reference list isn't clear, there really should be more of a description here...
@@ -353,4 +364,48 @@ public interface ModelingAssistantProvider extends EObject, IModelingAssistantPr
*/
EList<String> getExcludedElementTypeIDs();
+ /**
+ * Returns the value of the '<em><b>Relationship Type</b></em>' attribute list.
+ * The list contents are of type {@link org.eclipse.gmf.runtime.emf.type.core.IElementType}.
+ * <p>
+ * This feature subsets the following features:
+ * </p>
+ * <ul>
+ * <li>'{@link org.eclipse.papyrus.infra.gmfdiag.assistant.ModelingAssistantProvider#getElementTypes() <em>Element Type</em>}'</li>
+ * </ul>
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * The element types supported by the provider.
+ * <!-- end-model-doc -->
+ *
+ * @return the value of the '<em>Relationship Type</em>' attribute list.
+ * @see org.eclipse.papyrus.infra.gmfdiag.assistant.AssistantPackage#getModelingAssistantProvider_RelationshipType()
+ * @model unique="false" dataType="org.eclipse.papyrus.infra.gmfdiag.assistant.ElementType" transient="true" changeable="false" volatile="true" derived="true" ordered="false"
+ * @generated
+ */
+ EList<IElementType> getRelationshipTypes();
+
+ /**
+ * Returns the value of the '<em><b>Relationship Type ID</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.String}.
+ * <p>
+ * This feature subsets the following features:
+ * </p>
+ * <ul>
+ * <li>'{@link org.eclipse.papyrus.infra.gmfdiag.assistant.ModelingAssistantProvider#getElementTypeIDs() <em>Element Type ID</em>}'</li>
+ * </ul>
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * <!-- begin-model-doc -->
+ * The identifiers of element types supported by the provider.
+ * <!-- end-model-doc -->
+ *
+ * @return the value of the '<em>Relationship Type ID</em>' attribute list.
+ * @see org.eclipse.papyrus.infra.gmfdiag.assistant.AssistantPackage#getModelingAssistantProvider_RelationshipTypeID()
+ * @model dataType="org.eclipse.uml2.types.String" ordered="false"
+ * @generated
+ */
+ EList<String> getRelationshipTypeIDs();
+
} // ModelingAssistantProvider
diff --git a/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/PopupAssistant.java b/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/PopupAssistant.java
index e6c5f27940e..869653de62d 100644
--- a/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/PopupAssistant.java
+++ b/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/PopupAssistant.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2014 Christian W. Damus and others.
+ * Copyright (c) 2014, 2015 Christian W. Damus and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
@@ -22,12 +22,12 @@ import org.eclipse.papyrus.infra.filters.Filter;
*
* <p>
* The following features are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.PopupAssistant#getFilter <em>Filter</em>}</li>
* <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.PopupAssistant#getOwnedFilter <em>Owned Filter</em>}</li>
* <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.PopupAssistant#getOwningProvider <em>Owning Provider</em>}</li>
* </ul>
- * </p>
*
* @see org.eclipse.papyrus.infra.gmfdiag.assistant.AssistantPackage#getPopupAssistant()
* @model
@@ -67,10 +67,10 @@ public interface PopupAssistant extends Assistant
* Returns the value of the '<em><b>Owned Filter</b></em>' containment reference.
* <p>
* This feature subsets the following features:
+ * </p>
* <ul>
* <li>'{@link org.eclipse.papyrus.infra.gmfdiag.assistant.PopupAssistant#getFilter() <em>Filter</em>}'</li>
* </ul>
- * </p>
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Owned Filter</em>' containment reference isn't clear, there really should be more of a description here...
@@ -117,10 +117,10 @@ public interface PopupAssistant extends Assistant
* It is bidirectional and its opposite is '{@link org.eclipse.papyrus.infra.gmfdiag.assistant.ModelingAssistantProvider#getPopupAssistants <em>Popup Assistant</em>}'.
* <p>
* This feature subsets the following features:
+ * </p>
* <ul>
* <li>'{@link org.eclipse.papyrus.infra.gmfdiag.assistant.Assistant#getProvider() <em>Provider</em>}'</li>
* </ul>
- * </p>
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Owning Provider</em>' container reference isn't clear, there really should be more of a description here...
diff --git a/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/impl/AssistantImpl.java b/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/impl/AssistantImpl.java
index 7789c03dd3f..35eea1c6c3c 100644
--- a/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/impl/AssistantImpl.java
+++ b/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/impl/AssistantImpl.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2014 Christian W. Damus and others.
+ * Copyright (c) 2014, 2015 Christian W. Damus and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
@@ -38,12 +38,12 @@ import org.eclipse.uml2.common.util.CacheAdapter;
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.impl.AssistantImpl#getProvider <em>Provider</em>}</li>
* <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.impl.AssistantImpl#getElementTypeID <em>Element Type ID</em>}</li>
* <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.impl.AssistantImpl#getElementType <em>Element Type</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/impl/AssistantPackageImpl.java b/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/impl/AssistantPackageImpl.java
index 6b21b70c168..f38a5b5d153 100644
--- a/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/impl/AssistantPackageImpl.java
+++ b/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/impl/AssistantPackageImpl.java
@@ -412,6 +412,30 @@ public class AssistantPackageImpl extends EPackageImpl implements AssistantPacka
* @generated
*/
@Override
+ public EAttribute getModelingAssistantProvider_RelationshipType()
+ {
+ return (EAttribute) modelingAssistantProviderEClass.getEStructuralFeatures().get(11);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getModelingAssistantProvider_RelationshipTypeID()
+ {
+ return (EAttribute) modelingAssistantProviderEClass.getEStructuralFeatures().get(12);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
public EOperation getModelingAssistantProvider__GetElementTypes()
{
return modelingAssistantProviderEClass.getEOperations().get(0);
@@ -460,6 +484,30 @@ public class AssistantPackageImpl extends EPackageImpl implements AssistantPacka
* @generated
*/
@Override
+ public EOperation getModelingAssistantProvider__GetRelationshipTypes()
+ {
+ return modelingAssistantProviderEClass.getEOperations().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EOperation getModelingAssistantProvider__IsRelationshipType__IElementType()
+ {
+ return modelingAssistantProviderEClass.getEOperations().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
public EClass getAssistant()
{
return assistantEClass;
@@ -1021,10 +1069,14 @@ public class AssistantPackageImpl extends EPackageImpl implements AssistantPacka
createEAttribute(modelingAssistantProviderEClass, MODELING_ASSISTANT_PROVIDER__CLIENT_CONTEXT_ID);
createEAttribute(modelingAssistantProviderEClass, MODELING_ASSISTANT_PROVIDER__EXCLUDED_ELEMENT_TYPE);
createEAttribute(modelingAssistantProviderEClass, MODELING_ASSISTANT_PROVIDER__EXCLUDED_ELEMENT_TYPE_ID);
+ createEAttribute(modelingAssistantProviderEClass, MODELING_ASSISTANT_PROVIDER__RELATIONSHIP_TYPE);
+ createEAttribute(modelingAssistantProviderEClass, MODELING_ASSISTANT_PROVIDER__RELATIONSHIP_TYPE_ID);
createEOperation(modelingAssistantProviderEClass, MODELING_ASSISTANT_PROVIDER___GET_ELEMENT_TYPES);
createEOperation(modelingAssistantProviderEClass, MODELING_ASSISTANT_PROVIDER___GET_CLIENT_CONTEXT);
createEOperation(modelingAssistantProviderEClass, MODELING_ASSISTANT_PROVIDER___GET_ELEMENT_TYPE__STRING);
createEOperation(modelingAssistantProviderEClass, MODELING_ASSISTANT_PROVIDER___GET_EXCLUDED_ELEMENT_TYPES);
+ createEOperation(modelingAssistantProviderEClass, MODELING_ASSISTANT_PROVIDER___GET_RELATIONSHIP_TYPES);
+ createEOperation(modelingAssistantProviderEClass, MODELING_ASSISTANT_PROVIDER___IS_RELATIONSHIP_TYPE__IELEMENTTYPE);
assistantEClass = createEClass(ASSISTANT);
createEAttribute(assistantEClass, ASSISTANT__ELEMENT_TYPE_ID);
@@ -1150,6 +1202,10 @@ public class AssistantPackageImpl extends EPackageImpl implements AssistantPacka
"excludedElementType", null, 0, -1, ModelingAssistantProvider.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
initEAttribute(getModelingAssistantProvider_ExcludedElementTypeID(), theTypesPackage.getString(),
"excludedElementTypeID", null, 0, -1, ModelingAssistantProvider.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getModelingAssistantProvider_RelationshipType(), this.getElementType(),
+ "relationshipType", null, 0, -1, ModelingAssistantProvider.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getModelingAssistantProvider_RelationshipTypeID(), theTypesPackage.getString(),
+ "relationshipTypeID", null, 0, -1, ModelingAssistantProvider.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
initEOperation(getModelingAssistantProvider__GetElementTypes(), this.getElementType(), "getElementTypes", 0, -1, IS_UNIQUE, !IS_ORDERED); //$NON-NLS-1$
@@ -1160,6 +1216,11 @@ public class AssistantPackageImpl extends EPackageImpl implements AssistantPacka
initEOperation(getModelingAssistantProvider__GetExcludedElementTypes(), this.getElementType(), "getExcludedElementTypes", 0, -1, IS_UNIQUE, !IS_ORDERED); //$NON-NLS-1$
+ initEOperation(getModelingAssistantProvider__GetRelationshipTypes(), this.getElementType(), "getRelationshipTypes", 0, -1, IS_UNIQUE, !IS_ORDERED); //$NON-NLS-1$
+
+ op = initEOperation(getModelingAssistantProvider__IsRelationshipType__IElementType(), theTypesPackage.getBoolean(), "isRelationshipType", 1, 1, IS_UNIQUE, !IS_ORDERED); //$NON-NLS-1$
+ addEParameter(op, this.getElementType(), "elementType", 1, 1, IS_UNIQUE, !IS_ORDERED); //$NON-NLS-1$
+
initEClass(assistantEClass, Assistant.class, "Assistant", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
initEAttribute(getAssistant_ElementTypeID(), theTypesPackage.getString(), "elementTypeID", null, 1, 1, Assistant.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
initEAttribute(getAssistant_ElementType(), this.getElementType(), "elementType", null, 1, 1, Assistant.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
@@ -1296,6 +1357,24 @@ public class AssistantPackageImpl extends EPackageImpl implements AssistantPacka
{
URI.createURI(eNS_URI).appendFragment("//ModelingAssistantProvider/assistant") //$NON-NLS-1$
});
+ addAnnotation(getModelingAssistantProvider_RelationshipType(),
+ source,
+ new String[]
+ {
+ },
+ new URI[]
+ {
+ URI.createURI(eNS_URI).appendFragment("//ModelingAssistantProvider/elementType") //$NON-NLS-1$
+ });
+ addAnnotation(getModelingAssistantProvider_RelationshipTypeID(),
+ source,
+ new String[]
+ {
+ },
+ new URI[]
+ {
+ URI.createURI(eNS_URI).appendFragment("//ModelingAssistantProvider/elementTypeID") //$NON-NLS-1$
+ });
addAnnotation(getPopupAssistant_OwnedFilter(),
source,
new String[]
diff --git a/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/impl/AssistedElementTypeFilterImpl.java b/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/impl/AssistedElementTypeFilterImpl.java
index 1822d999fb9..12121ccd49c 100644
--- a/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/impl/AssistedElementTypeFilterImpl.java
+++ b/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/impl/AssistedElementTypeFilterImpl.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2014 Christian W. Damus and others.
+ * Copyright (c) 2014, 2015 Christian W. Damus and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
@@ -40,11 +40,11 @@ import org.eclipse.uml2.common.util.CacheAdapter;
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.impl.AssistedElementTypeFilterImpl#getName <em>Name</em>}</li>
* <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.impl.AssistedElementTypeFilterImpl#getProvider <em>Provider</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/impl/ConnectionAssistantImpl.java b/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/impl/ConnectionAssistantImpl.java
index 1c242f7e11f..4a0c1264224 100644
--- a/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/impl/ConnectionAssistantImpl.java
+++ b/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/impl/ConnectionAssistantImpl.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2014 Christian W. Damus and others.
+ * Copyright (c) 2014, 2015 Christian W. Damus and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
@@ -34,6 +34,7 @@ import org.eclipse.papyrus.infra.gmfdiag.assistant.ModelingAssistantProvider;
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.impl.ConnectionAssistantImpl#getProvider <em>Provider</em>}</li>
* <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.impl.ConnectionAssistantImpl#getSourceFilter <em>Source Filter</em>}</li>
@@ -42,7 +43,6 @@ import org.eclipse.papyrus.infra.gmfdiag.assistant.ModelingAssistantProvider;
* <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.impl.ConnectionAssistantImpl#getOwnedTargetFilter <em>Owned Target Filter</em>}</li>
* <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.impl.ConnectionAssistantImpl#getOwningProvider <em>Owning Provider</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/impl/ElementTypeFilterImpl.java b/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/impl/ElementTypeFilterImpl.java
index b5408df7093..4f948e6d660 100644
--- a/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/impl/ElementTypeFilterImpl.java
+++ b/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/impl/ElementTypeFilterImpl.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2014 Christian W. Damus and others.
+ * Copyright (c) 2014, 2015 Christian W. Damus and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
@@ -33,13 +33,13 @@ import org.eclipse.uml2.common.util.CacheAdapter;
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.impl.ElementTypeFilterImpl#getName <em>Name</em>}</li>
* <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.impl.ElementTypeFilterImpl#getElementTypeID <em>Element Type ID</em>}</li>
* <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.impl.ElementTypeFilterImpl#getElementType <em>Element Type</em>}</li>
* <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.impl.ElementTypeFilterImpl#getProvider <em>Provider</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/impl/ModelingAssistantProviderImpl.java b/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/impl/ModelingAssistantProviderImpl.java
index 66c4a298bff..3589a8d3e2e 100644
--- a/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/impl/ModelingAssistantProviderImpl.java
+++ b/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/impl/ModelingAssistantProviderImpl.java
@@ -56,21 +56,23 @@ import org.eclipse.uml2.common.util.DerivedUnionEObjectEList;
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.impl.ModelingAssistantProviderImpl#getListeners <em>Listener</em>}</li>
* <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.impl.ModelingAssistantProviderImpl#getAssistants <em>Assistant</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.impl.ModelingAssistantProviderImpl#getElementTypeIDs <em>Element Type ID</em>}</li>
* <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.impl.ModelingAssistantProviderImpl#getName <em>Name</em>}</li>
* <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.impl.ModelingAssistantProviderImpl#getOwnedFilters <em>Owned Filter</em>}</li>
* <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.impl.ModelingAssistantProviderImpl#getPopupAssistants <em>Popup Assistant</em>}</li>
* <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.impl.ModelingAssistantProviderImpl#getConnectionAssistants <em>Connection Assistant</em>}</li>
* <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.impl.ModelingAssistantProviderImpl#getElementTypes <em>Element Type</em>}</li>
- * <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.impl.ModelingAssistantProviderImpl#getElementTypeIDs <em>Element Type ID</em>}</li>
* <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.impl.ModelingAssistantProviderImpl#getClientContext <em>Client Context</em>}</li>
* <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.impl.ModelingAssistantProviderImpl#getClientContextID <em>Client Context ID</em>}</li>
* <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.impl.ModelingAssistantProviderImpl#getExcludedElementTypes <em>Excluded Element Type</em>}</li>
* <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.impl.ModelingAssistantProviderImpl#getExcludedElementTypeIDs <em>Excluded Element Type ID</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.impl.ModelingAssistantProviderImpl#getRelationshipTypes <em>Relationship Type</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.impl.ModelingAssistantProviderImpl#getRelationshipTypeIDs <em>Relationship Type ID</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
@@ -88,6 +90,17 @@ public class ModelingAssistantProviderImpl extends MinimalEObjectImpl.Container
protected EList<IProviderChangeListener> listeners;
/**
+ * The cached value of the '{@link #getElementTypeIDs() <em>Element Type ID</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getElementTypeIDs()
+ * @generated
+ * @ordered
+ */
+ protected EList<String> elementTypeIDs;
+
+ /**
* The default value of the '{@link #getName() <em>Name</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -143,17 +156,6 @@ public class ModelingAssistantProviderImpl extends MinimalEObjectImpl.Container
protected EList<ConnectionAssistant> connectionAssistants;
/**
- * The cached value of the '{@link #getElementTypeIDs() <em>Element Type ID</em>}' attribute list.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- *
- * @see #getElementTypeIDs()
- * @generated
- * @ordered
- */
- protected EList<String> elementTypeIDs;
-
- /**
* The default value of the '{@link #getClientContext() <em>Client Context</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -198,6 +200,17 @@ public class ModelingAssistantProviderImpl extends MinimalEObjectImpl.Container
protected EList<String> excludedElementTypeIDs;
/**
+ * The cached value of the '{@link #getRelationshipTypeIDs() <em>Relationship Type ID</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getRelationshipTypeIDs()
+ * @generated
+ * @ordered
+ */
+ protected EList<String> relationshipTypeIDs;
+
+ /**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
*
@@ -466,6 +479,17 @@ public class ModelingAssistantProviderImpl extends MinimalEObjectImpl.Container
}
/**
+ * The array of subset feature identifiers for the '{@link #getElementTypeIDs() <em>Element Type ID</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getElementTypeIDs()
+ * @generated
+ * @ordered
+ */
+ protected static final int[] ELEMENT_TYPE_ID_ESUBSETS = new int[] { AssistantPackage.MODELING_ASSISTANT_PROVIDER__RELATIONSHIP_TYPE_ID };
+
+ /**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
*
@@ -562,6 +586,56 @@ public class ModelingAssistantProviderImpl extends MinimalEObjectImpl.Container
* @generated
*/
@Override
+ public EList<IElementType> getRelationshipTypes()
+ {
+ CacheAdapter cache = getCacheAdapter();
+ if (cache != null)
+ {
+ @SuppressWarnings("unchecked")
+ EList<IElementType> result = (EList<IElementType>) cache.get(eResource(), this, AssistantPackage.Literals.MODELING_ASSISTANT_PROVIDER__RELATIONSHIP_TYPE);
+ if (result == null)
+ {
+ cache.put(eResource(), this, AssistantPackage.Literals.MODELING_ASSISTANT_PROVIDER__RELATIONSHIP_TYPE, result = ModelingAssistantProviderOperations.getRelationshipTypes(this));
+ }
+ return result;
+ }
+ return ModelingAssistantProviderOperations.getRelationshipTypes(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EList<String> getRelationshipTypeIDs()
+ {
+ if (relationshipTypeIDs == null)
+ {
+ relationshipTypeIDs = new EDataTypeUniqueEList<String>(String.class, this, AssistantPackage.MODELING_ASSISTANT_PROVIDER__RELATIONSHIP_TYPE_ID);
+ }
+ return relationshipTypeIDs;
+ }
+
+ /**
+ * The array of superset feature identifiers for the '{@link #getRelationshipTypeIDs() <em>Relationship Type ID</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getRelationshipTypeIDs()
+ * @generated
+ * @ordered
+ */
+ protected static final int[] RELATIONSHIP_TYPE_ID_ESUPERSETS = new int[] { AssistantPackage.MODELING_ASSISTANT_PROVIDER__ELEMENT_TYPE_ID };
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
public boolean provides(IOperation operation)
{
return ModelingAssistantProviderOperations.provides(this, operation);
@@ -741,6 +815,18 @@ public class ModelingAssistantProviderImpl extends MinimalEObjectImpl.Container
*
* @generated
*/
+ @Override
+ public boolean isRelationshipType(IElementType elementType)
+ {
+ return ModelingAssistantProviderOperations.isRelationshipType(this, elementType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
@SuppressWarnings("unchecked")
@Override
public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs)
@@ -791,6 +877,8 @@ public class ModelingAssistantProviderImpl extends MinimalEObjectImpl.Container
return getListeners();
case AssistantPackage.MODELING_ASSISTANT_PROVIDER__ASSISTANT:
return getAssistants();
+ case AssistantPackage.MODELING_ASSISTANT_PROVIDER__ELEMENT_TYPE_ID:
+ return getElementTypeIDs();
case AssistantPackage.MODELING_ASSISTANT_PROVIDER__NAME:
return getName();
case AssistantPackage.MODELING_ASSISTANT_PROVIDER__OWNED_FILTER:
@@ -801,8 +889,6 @@ public class ModelingAssistantProviderImpl extends MinimalEObjectImpl.Container
return getConnectionAssistants();
case AssistantPackage.MODELING_ASSISTANT_PROVIDER__ELEMENT_TYPE:
return getElementTypes();
- case AssistantPackage.MODELING_ASSISTANT_PROVIDER__ELEMENT_TYPE_ID:
- return getElementTypeIDs();
case AssistantPackage.MODELING_ASSISTANT_PROVIDER__CLIENT_CONTEXT:
return getClientContext();
case AssistantPackage.MODELING_ASSISTANT_PROVIDER__CLIENT_CONTEXT_ID:
@@ -811,6 +897,10 @@ public class ModelingAssistantProviderImpl extends MinimalEObjectImpl.Container
return getExcludedElementTypes();
case AssistantPackage.MODELING_ASSISTANT_PROVIDER__EXCLUDED_ELEMENT_TYPE_ID:
return getExcludedElementTypeIDs();
+ case AssistantPackage.MODELING_ASSISTANT_PROVIDER__RELATIONSHIP_TYPE:
+ return getRelationshipTypes();
+ case AssistantPackage.MODELING_ASSISTANT_PROVIDER__RELATIONSHIP_TYPE_ID:
+ return getRelationshipTypeIDs();
}
return super.eGet(featureID, resolve, coreType);
}
@@ -831,6 +921,10 @@ public class ModelingAssistantProviderImpl extends MinimalEObjectImpl.Container
getListeners().clear();
getListeners().addAll((Collection<? extends IProviderChangeListener>) newValue);
return;
+ case AssistantPackage.MODELING_ASSISTANT_PROVIDER__ELEMENT_TYPE_ID:
+ getElementTypeIDs().clear();
+ getElementTypeIDs().addAll((Collection<? extends String>) newValue);
+ return;
case AssistantPackage.MODELING_ASSISTANT_PROVIDER__NAME:
setName((String) newValue);
return;
@@ -846,10 +940,6 @@ public class ModelingAssistantProviderImpl extends MinimalEObjectImpl.Container
getConnectionAssistants().clear();
getConnectionAssistants().addAll((Collection<? extends ConnectionAssistant>) newValue);
return;
- case AssistantPackage.MODELING_ASSISTANT_PROVIDER__ELEMENT_TYPE_ID:
- getElementTypeIDs().clear();
- getElementTypeIDs().addAll((Collection<? extends String>) newValue);
- return;
case AssistantPackage.MODELING_ASSISTANT_PROVIDER__CLIENT_CONTEXT_ID:
setClientContextID((String) newValue);
return;
@@ -857,6 +947,10 @@ public class ModelingAssistantProviderImpl extends MinimalEObjectImpl.Container
getExcludedElementTypeIDs().clear();
getExcludedElementTypeIDs().addAll((Collection<? extends String>) newValue);
return;
+ case AssistantPackage.MODELING_ASSISTANT_PROVIDER__RELATIONSHIP_TYPE_ID:
+ getRelationshipTypeIDs().clear();
+ getRelationshipTypeIDs().addAll((Collection<? extends String>) newValue);
+ return;
}
super.eSet(featureID, newValue);
}
@@ -875,6 +969,9 @@ public class ModelingAssistantProviderImpl extends MinimalEObjectImpl.Container
case AssistantPackage.MODELING_ASSISTANT_PROVIDER__LISTENER:
getListeners().clear();
return;
+ case AssistantPackage.MODELING_ASSISTANT_PROVIDER__ELEMENT_TYPE_ID:
+ getElementTypeIDs().clear();
+ return;
case AssistantPackage.MODELING_ASSISTANT_PROVIDER__NAME:
setName(NAME_EDEFAULT);
return;
@@ -887,15 +984,15 @@ public class ModelingAssistantProviderImpl extends MinimalEObjectImpl.Container
case AssistantPackage.MODELING_ASSISTANT_PROVIDER__CONNECTION_ASSISTANT:
getConnectionAssistants().clear();
return;
- case AssistantPackage.MODELING_ASSISTANT_PROVIDER__ELEMENT_TYPE_ID:
- getElementTypeIDs().clear();
- return;
case AssistantPackage.MODELING_ASSISTANT_PROVIDER__CLIENT_CONTEXT_ID:
setClientContextID(CLIENT_CONTEXT_ID_EDEFAULT);
return;
case AssistantPackage.MODELING_ASSISTANT_PROVIDER__EXCLUDED_ELEMENT_TYPE_ID:
getExcludedElementTypeIDs().clear();
return;
+ case AssistantPackage.MODELING_ASSISTANT_PROVIDER__RELATIONSHIP_TYPE_ID:
+ getRelationshipTypeIDs().clear();
+ return;
}
super.eUnset(featureID);
}
@@ -915,6 +1012,8 @@ public class ModelingAssistantProviderImpl extends MinimalEObjectImpl.Container
return listeners != null && !listeners.isEmpty();
case AssistantPackage.MODELING_ASSISTANT_PROVIDER__ASSISTANT:
return isSetAssistants();
+ case AssistantPackage.MODELING_ASSISTANT_PROVIDER__ELEMENT_TYPE_ID:
+ return elementTypeIDs != null && !elementTypeIDs.isEmpty();
case AssistantPackage.MODELING_ASSISTANT_PROVIDER__NAME:
return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
case AssistantPackage.MODELING_ASSISTANT_PROVIDER__OWNED_FILTER:
@@ -925,8 +1024,6 @@ public class ModelingAssistantProviderImpl extends MinimalEObjectImpl.Container
return connectionAssistants != null && !connectionAssistants.isEmpty();
case AssistantPackage.MODELING_ASSISTANT_PROVIDER__ELEMENT_TYPE:
return !getElementTypes().isEmpty();
- case AssistantPackage.MODELING_ASSISTANT_PROVIDER__ELEMENT_TYPE_ID:
- return elementTypeIDs != null && !elementTypeIDs.isEmpty();
case AssistantPackage.MODELING_ASSISTANT_PROVIDER__CLIENT_CONTEXT:
return CLIENT_CONTEXT_EDEFAULT == null ? getClientContext() != null : !CLIENT_CONTEXT_EDEFAULT.equals(getClientContext());
case AssistantPackage.MODELING_ASSISTANT_PROVIDER__CLIENT_CONTEXT_ID:
@@ -935,6 +1032,10 @@ public class ModelingAssistantProviderImpl extends MinimalEObjectImpl.Container
return !getExcludedElementTypes().isEmpty();
case AssistantPackage.MODELING_ASSISTANT_PROVIDER__EXCLUDED_ELEMENT_TYPE_ID:
return excludedElementTypeIDs != null && !excludedElementTypeIDs.isEmpty();
+ case AssistantPackage.MODELING_ASSISTANT_PROVIDER__RELATIONSHIP_TYPE:
+ return !getRelationshipTypes().isEmpty();
+ case AssistantPackage.MODELING_ASSISTANT_PROVIDER__RELATIONSHIP_TYPE_ID:
+ return relationshipTypeIDs != null && !relationshipTypeIDs.isEmpty();
}
return super.eIsSet(featureID);
}
@@ -982,6 +1083,8 @@ public class ModelingAssistantProviderImpl extends MinimalEObjectImpl.Container
return getTypesForPopupBar((IAdaptable) arguments.get(0));
case AssistantPackage.MODELING_ASSISTANT_PROVIDER___GET_ELEMENT_TYPE__STRING:
return getElementType((String) arguments.get(0));
+ case AssistantPackage.MODELING_ASSISTANT_PROVIDER___IS_RELATIONSHIP_TYPE__IELEMENTTYPE:
+ return isRelationshipType((IElementType) arguments.get(0));
}
return super.eInvoke(operationID, arguments);
}
@@ -1010,6 +1113,8 @@ public class ModelingAssistantProviderImpl extends MinimalEObjectImpl.Container
result.append(clientContextID);
result.append(", excludedElementTypeID: "); //$NON-NLS-1$
result.append(excludedElementTypeIDs);
+ result.append(", relationshipTypeID: "); //$NON-NLS-1$
+ result.append(relationshipTypeIDs);
result.append(')');
return result.toString();
}
diff --git a/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/impl/PopupAssistantImpl.java b/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/impl/PopupAssistantImpl.java
index ba7c216ee48..668be44144d 100644
--- a/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/impl/PopupAssistantImpl.java
+++ b/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/impl/PopupAssistantImpl.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2014 Christian W. Damus and others.
+ * Copyright (c) 2014, 2015 Christian W. Damus and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
@@ -34,13 +34,13 @@ import org.eclipse.papyrus.infra.gmfdiag.assistant.PopupAssistant;
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.impl.PopupAssistantImpl#getProvider <em>Provider</em>}</li>
* <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.impl.PopupAssistantImpl#getFilter <em>Filter</em>}</li>
* <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.impl.PopupAssistantImpl#getOwnedFilter <em>Owned Filter</em>}</li>
* <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.impl.PopupAssistantImpl#getOwningProvider <em>Owning Provider</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
diff --git a/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/internal/operations/AssistantOperations.java b/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/internal/operations/AssistantOperations.java
index aa3cdb5dd7d..466cd0b80b0 100644
--- a/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/internal/operations/AssistantOperations.java
+++ b/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/internal/operations/AssistantOperations.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2014 Christian W. Damus and others.
+ * Copyright (c) 2014, 2015 Christian W. Damus and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
@@ -22,10 +22,10 @@ import org.eclipse.papyrus.infra.gmfdiag.assistant.Assistant;
*
* <p>
* The following operations are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.Assistant#getElementType() <em>Get Element Type</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
@@ -63,4 +63,4 @@ public class AssistantOperations
return result;
}
-} // AssistantOperations \ No newline at end of file
+} // AssistantOperations
diff --git a/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/internal/operations/AssistedElementTypeFilterOperations.java b/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/internal/operations/AssistedElementTypeFilterOperations.java
index 4be323aef90..2059c2a0ec7 100644
--- a/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/internal/operations/AssistedElementTypeFilterOperations.java
+++ b/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/internal/operations/AssistedElementTypeFilterOperations.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2014 Christian W. Damus and others.
+ * Copyright (c) 2014, 2015 Christian W. Damus and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
@@ -30,11 +30,11 @@ import com.google.common.collect.Sets;
*
* <p>
* The following operations are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.infra.filters.Filter#matches(java.lang.Object) <em>Matches</em>}</li>
* <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.AssistedElementTypeFilter#getProvider() <em>Get Provider</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
@@ -104,4 +104,4 @@ public class AssistedElementTypeFilterOperations
return result;
}
-} // AssistedElementTypeFilterOperations \ No newline at end of file
+} // AssistedElementTypeFilterOperations
diff --git a/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/internal/operations/ElementTypeFilterOperations.java b/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/internal/operations/ElementTypeFilterOperations.java
index 66b8c568000..d147d51bceb 100644
--- a/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/internal/operations/ElementTypeFilterOperations.java
+++ b/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/internal/operations/ElementTypeFilterOperations.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2014 Christian W. Damus and others.
+ * Copyright (c) 2014, 2015 Christian W. Damus and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
@@ -25,12 +25,12 @@ import org.eclipse.papyrus.infra.gmfdiag.assistant.core.util.ModelingAssistantUt
*
* <p>
* The following operations are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.papyrus.infra.filters.Filter#matches(java.lang.Object) <em>Matches</em>}</li>
* <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.ElementTypeFilter#getElementType() <em>Get Element Type</em>}</li>
* <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.ElementTypeFilter#getProvider() <em>Get Provider</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
@@ -106,4 +106,4 @@ public class ElementTypeFilterOperations
return result;
}
-} // ElementTypeFilterOperations \ No newline at end of file
+} // ElementTypeFilterOperations
diff --git a/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/internal/operations/ModelingAssistantProviderOperations.java b/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/internal/operations/ModelingAssistantProviderOperations.java
index ff88e81ecae..a265af5ed9b 100644
--- a/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/internal/operations/ModelingAssistantProviderOperations.java
+++ b/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/internal/operations/ModelingAssistantProviderOperations.java
@@ -13,7 +13,6 @@ package org.eclipse.papyrus.infra.gmfdiag.assistant.internal.operations;
import static org.eclipse.papyrus.infra.gmfdiag.assistant.core.util.ModelingAssistantUtil.alphabetical;
import static org.eclipse.papyrus.infra.gmfdiag.assistant.core.util.ModelingAssistantUtil.filterConnectionTypes;
-import static org.eclipse.papyrus.infra.gmfdiag.assistant.core.util.ModelingAssistantUtil.isRelationship;
import java.util.Collection;
import java.util.List;
@@ -37,6 +36,7 @@ import org.eclipse.gmf.runtime.notation.View;
import org.eclipse.papyrus.infra.core.utils.AdapterUtils;
import org.eclipse.papyrus.infra.emf.utils.ECollections2;
import org.eclipse.papyrus.infra.emf.utils.ECollections2.ImmutableEListBuilder;
+import org.eclipse.papyrus.infra.gmfdiag.assistant.AssistantPackage;
import org.eclipse.papyrus.infra.gmfdiag.assistant.ConnectionAssistant;
import org.eclipse.papyrus.infra.gmfdiag.assistant.ModelingAssistantProvider;
import org.eclipse.papyrus.infra.gmfdiag.assistant.PopupAssistant;
@@ -44,10 +44,12 @@ import org.eclipse.papyrus.infra.gmfdiag.assistant.core.util.ModelingAssistantUt
import org.eclipse.papyrus.infra.gmfdiag.assistant.impl.ModelingAssistantProviderImpl;
import org.eclipse.papyrus.infra.gmfdiag.assistant.internal.core.util.ProviderCache;
import org.eclipse.papyrus.infra.services.edit.utils.ElementTypeUtils;
+import org.eclipse.uml2.common.util.CacheAdapter;
import com.google.common.base.Function;
import com.google.common.base.Objects;
import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
import com.google.common.collect.Sets;
@@ -58,6 +60,7 @@ import com.google.common.collect.Sets;
*
* <p>
* The following operations are supported:
+ * </p>
* <ul>
* <li>{@link org.eclipse.gmf.runtime.common.core.service.IProvider#provides(org.eclipse.gmf.runtime.common.core.service.IOperation) <em>Provides</em>}</li>
* <li>{@link org.eclipse.gmf.runtime.common.core.service.IProvider#addProviderChangeListener(org.eclipse.gmf.runtime.common.core.service.IProviderChangeListener) <em>Add Provider Change Listener</em>}</li>
@@ -79,8 +82,9 @@ import com.google.common.collect.Sets;
* <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.ModelingAssistantProvider#getClientContext() <em>Get Client Context</em>}</li>
* <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.ModelingAssistantProvider#getElementType(java.lang.String) <em>Get Element Type</em>}</li>
* <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.ModelingAssistantProvider#getExcludedElementTypes() <em>Get Excluded Element Types</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.ModelingAssistantProvider#getRelationshipTypes() <em>Get Relationship Types</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.ModelingAssistantProvider#isRelationshipType(org.eclipse.gmf.runtime.emf.type.core.IElementType) <em>Is Relationship Type</em>}</li>
* </ul>
- * </p>
*
* @generated
*/
@@ -293,7 +297,7 @@ public class ModelingAssistantProviderOperations
// The filter, if any, needs to match but we also don't want to propose connections
// from relationships (only node-like things)
if (((next.getSourceFilter() == null) || next.getSourceFilter().matches(sourceType))
- && !isRelationship(modelingAssistantProvider, sourceType)) {
+ && !modelingAssistantProvider.isRelationshipType(sourceType)) {
ModelingAssistantUtil.collectAllConcreteSubtypes(sourceType, modelingAssistantProvider, types);
}
}
@@ -335,7 +339,7 @@ public class ModelingAssistantProviderOperations
// The filter, if any, needs to match but we also don't want to propose connections
// to relationships (only node-like things)
if (((next.getTargetFilter() == null) || next.getTargetFilter().matches(targetType))
- && !isRelationship(modelingAssistantProvider, targetType)) {
+ && !modelingAssistantProvider.isRelationshipType(targetType)) {
ModelingAssistantUtil.collectAllConcreteSubtypes(targetType, modelingAssistantProvider, types);
}
}
@@ -536,4 +540,62 @@ public class ModelingAssistantProviderOperations
return result.sort(alphabetical()).build();
}
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated NOT
+ */
+ public static EList<IElementType> getRelationshipTypes(ModelingAssistantProvider modelingAssistantProvider)
+ {
+ Set<IElementType> types = Sets.newLinkedHashSet();
+ for (String next : modelingAssistantProvider.getRelationshipTypeIDs()) {
+ IElementType type = modelingAssistantProvider.getElementType(next);
+ if (type != null) {
+ types.add(type);
+ }
+ }
+
+ ImmutableEListBuilder<IElementType> result = ECollections2.immutableEListBuilder();
+ result.addAll(types);
+ return result.sort(alphabetical()).build();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated NOT
+ */
+ @SuppressWarnings("unchecked")
+ public static boolean isRelationshipType(ModelingAssistantProvider modelingAssistantProvider, IElementType elementType)
+ {
+ Set<IElementType> relationshipTypes;
+ CacheAdapter cache = CacheAdapter.getCacheAdapter(modelingAssistantProvider);
+ if (cache == null) {
+ relationshipTypes = ImmutableSet.copyOf(modelingAssistantProvider.getRelationshipTypes());
+ } else {
+ // We aren't going to use this EOperation having a parameter for any other cache, so use it for this
+ relationshipTypes = (Set<IElementType>) cache.get(modelingAssistantProvider.eResource(), modelingAssistantProvider, AssistantPackage.Literals.MODELING_ASSISTANT_PROVIDER___IS_RELATIONSHIP_TYPE__IELEMENTTYPE);
+ if (relationshipTypes == null) {
+ cache.put(modelingAssistantProvider.eResource(), modelingAssistantProvider, AssistantPackage.Literals.MODELING_ASSISTANT_PROVIDER___IS_RELATIONSHIP_TYPE__IELEMENTTYPE,
+ relationshipTypes = ImmutableSet.copyOf(modelingAssistantProvider.getRelationshipTypes()));
+ }
+ }
+
+ boolean result = relationshipTypes.contains(elementType);
+
+ if (!result) {
+ // Maybe it's a specialization of a relationship type
+ IElementType[] allSupers = elementType.getAllSuperTypes();
+
+ // The super types have the more specific types after the more general
+ for (int i = allSupers.length - 1; !result && (i >= 0); i--) {
+ result = relationshipTypes.contains(allSupers[i]);
+ }
+ }
+
+ return result;
+ }
+
} // ModelingAssistantProviderOperations
diff --git a/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src/org/eclipse/papyrus/infra/gmfdiag/assistant/core/util/ModelingAssistantUtil.java b/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src/org/eclipse/papyrus/infra/gmfdiag/assistant/core/util/ModelingAssistantUtil.java
index bb176208ce9..602b6739d12 100644
--- a/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src/org/eclipse/papyrus/infra/gmfdiag/assistant/core/util/ModelingAssistantUtil.java
+++ b/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant/src/org/eclipse/papyrus/infra/gmfdiag/assistant/core/util/ModelingAssistantUtil.java
@@ -34,7 +34,6 @@ import org.eclipse.gmf.runtime.emf.type.core.ISpecializationType;
import org.eclipse.gmf.runtime.notation.Edge;
import org.eclipse.gmf.runtime.notation.View;
import org.eclipse.papyrus.infra.core.utils.AdapterUtils;
-import org.eclipse.papyrus.infra.gmfdiag.assistant.ConnectionAssistant;
import org.eclipse.papyrus.infra.gmfdiag.assistant.ModelingAssistantProvider;
import org.eclipse.papyrus.infra.gmfdiag.assistant.internal.core.util.ProxyElementType;
import org.eclipse.papyrus.infra.gmfdiag.common.commands.SemanticElementAdapter;
@@ -345,19 +344,4 @@ public class ModelingAssistantUtil {
collator.setStrength(Collator.PRIMARY);
return Ordering.from(collator).onResultOf(primaryNameFunction()).compound(Ordering.natural().onResultOf(visualIDFunction()));
}
-
- public static boolean isRelationship(ModelingAssistantProvider provider, IElementType elementType) {
- boolean result = false;
-
- // A relationship is a type for which we provide connection assistants
- for (ConnectionAssistant next : provider.getConnectionAssistants()) {
- IElementType relationshipType = next.getElementType();
- if ((relationshipType != null) && isSubtype(elementType, relationshipType)) {
- result = true;
- break;
- }
- }
-
- return result;
- }
}
diff --git a/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.assistants.generator/src/org/eclipse/papyrus/uml/profile/assistants/generator/ModelingAssistantProviderRule.xtend b/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.assistants.generator/src/org/eclipse/papyrus/uml/profile/assistants/generator/ModelingAssistantProviderRule.xtend
index 5027642b9d8..c9cb22d39d9 100644
--- a/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.assistants.generator/src/org/eclipse/papyrus/uml/profile/assistants/generator/ModelingAssistantProviderRule.xtend
+++ b/plugins/uml/assistants/org.eclipse.papyrus.uml.profile.assistants.generator/src/org/eclipse/papyrus/uml/profile/assistants/generator/ModelingAssistantProviderRule.xtend
@@ -57,6 +57,7 @@ class ModelingAssistantProviderRule {
popupAssistants.addAll(ext.metaclass.diagramSpecificElementTypes.map[ext.toPopupAssistant(it)])
} else {
// Connection assistants to create relationships
+ relationshipTypeIDs.addAll(profileElementTypes)
connectionAssistants.addAll(ext.metaclass.diagramSpecificElementTypes.map[ext.toConnectionAssistant(it)])
}
]
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.clazz/model/classdiagram.assistants b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.clazz/model/classdiagram.assistants
index b656fe9e8d8..08f47f01b2f 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.clazz/model/classdiagram.assistants
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.clazz/model/classdiagram.assistants
@@ -518,4 +518,28 @@
<elementTypeID>org.eclipse.papyrus.uml.diagram.clazz.Dependency_2014</elementTypeID>
<excludedElementTypeID>org.eclipse.papyrus.uml.diagram.clazz.Association_2015</excludedElementTypeID>
<excludedElementTypeID>org.eclipse.papyrus.uml.diagram.clazz.Dependency_2014</excludedElementTypeID>
+ <relationshipTypeID>org.eclipse.papyrus.uml.diagram.clazz.AssociationClass_4017</relationshipTypeID>
+ <relationshipTypeID>org.eclipse.papyrus.uml.diagram.clazz.Association_4001</relationshipTypeID>
+ <relationshipTypeID>org.eclipse.papyrus.uml.diagram.clazz.Association_4019</relationshipTypeID>
+ <relationshipTypeID>org.eclipse.papyrus.uml.diagram.clazz.Generalization_4002</relationshipTypeID>
+ <relationshipTypeID>org.eclipse.papyrus.uml.diagram.clazz.InterfaceRealization_4003</relationshipTypeID>
+ <relationshipTypeID>org.eclipse.papyrus.uml.diagram.clazz.Substitution_4004</relationshipTypeID>
+ <relationshipTypeID>org.eclipse.papyrus.uml.diagram.clazz.Realization_4005</relationshipTypeID>
+ <relationshipTypeID>org.eclipse.papyrus.uml.diagram.clazz.Abstraction_4006</relationshipTypeID>
+ <relationshipTypeID>org.eclipse.papyrus.uml.diagram.clazz.Usage_4007</relationshipTypeID>
+ <relationshipTypeID>org.eclipse.papyrus.uml.diagram.clazz.Dependency_4008</relationshipTypeID>
+ <relationshipTypeID>org.eclipse.papyrus.uml.diagram.clazz.Dependency_4018</relationshipTypeID>
+ <relationshipTypeID>org.eclipse.papyrus.uml.diagram.clazz.ElementImport_4009</relationshipTypeID>
+ <relationshipTypeID>org.eclipse.papyrus.uml.diagram.clazz.PackageImport_4010</relationshipTypeID>
+ <relationshipTypeID>org.eclipse.papyrus.uml.diagram.clazz.PackageMerge_4011</relationshipTypeID>
+ <relationshipTypeID>org.eclipse.papyrus.uml.diagram.clazz.ProfileApplication_4012</relationshipTypeID>
+ <relationshipTypeID>org.eclipse.papyrus.uml.diagram.clazz.CommentAnnotatedElement_4013</relationshipTypeID>
+ <relationshipTypeID>org.eclipse.papyrus.uml.diagram.clazz.ConstraintConstrainedElement_4014</relationshipTypeID>
+ <relationshipTypeID>org.eclipse.papyrus.uml.diagram.clazz.TemplateBinding_4015</relationshipTypeID>
+ <relationshipTypeID>org.eclipse.papyrus.uml.diagram.clazz.GeneralizationSet_4020</relationshipTypeID>
+ <relationshipTypeID>org.eclipse.papyrus.uml.diagram.clazz.InstanceSpecificationLink_4021</relationshipTypeID>
+ <relationshipTypeID>org.eclipse.papyrus.uml.diagram.clazz.TimeObservationEvent_4024</relationshipTypeID>
+ <relationshipTypeID>org.eclipse.papyrus.uml.diagram.clazz.DurationObservationEvent_4025</relationshipTypeID>
+ <relationshipTypeID>org.eclipse.papyrus.uml.diagram.clazz.InformationFlow_4026</relationshipTypeID>
+ <relationshipTypeID>org.eclipse.papyrus.uml.diagram.clazz.ConstraintContext_8500</relationshipTypeID>
</assistant:ModelingAssistantProvider>
diff --git a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.usecase/models/usecaseDiagram.assistants b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.usecase/models/usecaseDiagram.assistants
index 5e086a526a1..6df4285f75d 100644
--- a/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.usecase/models/usecaseDiagram.assistants
+++ b/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.usecase/models/usecaseDiagram.assistants
@@ -217,4 +217,16 @@
<elementTypeID>org.eclipse.papyrus.uml.diagram.usecase.Realization_4017</elementTypeID>
<elementTypeID>org.eclipse.papyrus.uml.diagram.usecase.PackageMerge_4018</elementTypeID>
<elementTypeID>org.eclipse.papyrus.uml.diagram.usecase.PackageImport_4019</elementTypeID>
+ <relationshipTypeID>org.eclipse.papyrus.uml.diagram.usecase.Include_4008</relationshipTypeID>
+ <relationshipTypeID>org.eclipse.papyrus.uml.diagram.usecase.Extend_4009</relationshipTypeID>
+ <relationshipTypeID>org.eclipse.papyrus.uml.diagram.usecase.Generalization_4010</relationshipTypeID>
+ <relationshipTypeID>org.eclipse.papyrus.uml.diagram.usecase.Association_4011</relationshipTypeID>
+ <relationshipTypeID>org.eclipse.papyrus.uml.diagram.usecase.ConstraintConstrainedElement_4012</relationshipTypeID>
+ <relationshipTypeID>org.eclipse.papyrus.uml.diagram.usecase.Dependency_4013</relationshipTypeID>
+ <relationshipTypeID>org.eclipse.papyrus.uml.diagram.usecase.CommentAnnotatedElement_4014</relationshipTypeID>
+ <relationshipTypeID>org.eclipse.papyrus.uml.diagram.usecase.Abstraction_4015</relationshipTypeID>
+ <relationshipTypeID>org.eclipse.papyrus.uml.diagram.usecase.Usage_4016</relationshipTypeID>
+ <relationshipTypeID>org.eclipse.papyrus.uml.diagram.usecase.Realization_4017</relationshipTypeID>
+ <relationshipTypeID>org.eclipse.papyrus.uml.diagram.usecase.PackageMerge_4018</relationshipTypeID>
+ <relationshipTypeID>org.eclipse.papyrus.uml.diagram.usecase.PackageImport_4019</relationshipTypeID>
</assistant:ModelingAssistantProvider>
diff --git a/tests/junit/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant.tests/resources/j2ee-all.assistants b/tests/junit/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant.tests/resources/j2ee-all.assistants
index 2fc1faa9cfd..6773b06aee8 100644
--- a/tests/junit/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant.tests/resources/j2ee-all.assistants
+++ b/tests/junit/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant.tests/resources/j2ee-all.assistants
@@ -268,4 +268,6 @@
<excludedElementTypeID>org.eclipse.papyrus.uml.diagram.clazz.Association_2015</excludedElementTypeID>
<excludedElementTypeID>org.eclipse.papyrus.uml.diagram.clazz.Dependency_4018</excludedElementTypeID>
<excludedElementTypeID>org.eclipse.papyrus.uml.diagram.clazz.Dependency_2014</excludedElementTypeID>
+ <relationshipTypeID>org.eclipse.papyrus.example.j2ee.Import</relationshipTypeID>
+ <relationshipTypeID>org.eclipse.papyrus.example.j2ee.Web</relationshipTypeID>
</assistant:ModelingAssistantProvider>
diff --git a/tests/junit/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant.tests/resources/j2ee-usecase.assistants b/tests/junit/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant.tests/resources/j2ee-usecase.assistants
index 7a583335c82..ac81b0d7075 100644
--- a/tests/junit/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant.tests/resources/j2ee-usecase.assistants
+++ b/tests/junit/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant.tests/resources/j2ee-usecase.assistants
@@ -122,4 +122,6 @@
<elementTypeID>org.eclipse.papyrus.example.j2ee.WebScenario_3012</elementTypeID>
<elementTypeID>org.eclipse.papyrus.example.j2ee.WebScenario_2013</elementTypeID>
<elementTypeID>org.eclipse.papyrus.example.j2ee.WebScenario_2014</elementTypeID>
+ <relationshipTypeID>org.eclipse.papyrus.example.j2ee.Import_4013</relationshipTypeID>
+ <relationshipTypeID>org.eclipse.papyrus.example.j2ee.Web_4011</relationshipTypeID>
</assistant:ModelingAssistantProvider>
diff --git a/tests/junit/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant.tests/resources/test.assistants b/tests/junit/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant.tests/resources/test.assistants
index a92253b3e28..52043825be4 100644
--- a/tests/junit/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant.tests/resources/test.assistants
+++ b/tests/junit/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant.tests/resources/test.assistants
@@ -14,4 +14,6 @@
<elementTypeID>org.eclipse.papyrus.uml.Package</elementTypeID>
<elementTypeID>org.eclipse.papyrus.uml.Generalization</elementTypeID>
<excludedElementTypeID>org.eclipse.papyrus.uml.AssociationClass</excludedElementTypeID>
+ <relationshipTypeID>org.eclipse.papyrus.uml.Usage</relationshipTypeID>
+ <relationshipTypeID>org.eclipse.papyrus.uml.Generalization</relationshipTypeID>
</assistant:ModelingAssistantProvider>
diff --git a/tests/junit/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant.tests/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/tests/AssistedElementTypeFilterTest.java b/tests/junit/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant.tests/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/tests/AssistedElementTypeFilterTest.java
index 88dfd8893e7..cac460ceaaa 100644
--- a/tests/junit/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant.tests/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/tests/AssistedElementTypeFilterTest.java
+++ b/tests/junit/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant.tests/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/tests/AssistedElementTypeFilterTest.java
@@ -15,12 +15,9 @@ import static org.eclipse.papyrus.infra.gmfdiag.assistant.tests.ElementTypesUtil
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.CoreMatchers.nullValue;
import static org.hamcrest.MatcherAssert.assertThat;
-
import java.util.Arrays;
-
import junit.framework.TestCase;
import junit.textui.TestRunner;
-
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.ResourceSet;
diff --git a/tests/junit/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant.tests/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/tests/ModelingAssistantProviderTest.java b/tests/junit/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant.tests/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/tests/ModelingAssistantProviderTest.java
index c54f45d5d29..cf66119a9db 100644
--- a/tests/junit/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant.tests/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/tests/ModelingAssistantProviderTest.java
+++ b/tests/junit/plugins/infra/gmfdiag/assistant/org.eclipse.papyrus.infra.gmfdiag.assistant.tests/src-gen/org/eclipse/papyrus/infra/gmfdiag/assistant/tests/ModelingAssistantProviderTest.java
@@ -53,6 +53,7 @@ import org.hamcrest.CoreMatchers;
* <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.ModelingAssistantProvider#getElementTypes() <em>Element Type</em>}</li>
* <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.ModelingAssistantProvider#getClientContext() <em>Client Context</em>}</li>
* <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.ModelingAssistantProvider#getExcludedElementTypes() <em>Excluded Element Type</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.ModelingAssistantProvider#getRelationshipTypes() <em>Relationship Type</em>}</li>
* </ul>
* </p>
* <p>
@@ -75,6 +76,7 @@ import org.hamcrest.CoreMatchers;
* </em>}</li>
* <li>{@link org.eclipse.gmf.runtime.emf.ui.services.modelingassistant.IModelingAssistantProvider#getTypesForPopupBar(org.eclipse.core.runtime.IAdaptable) <em>Get Types For Popup Bar</em>}</li>
* <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.ModelingAssistantProvider#getElementType(java.lang.String) <em>Get Element Type</em>}</li>
+ * <li>{@link org.eclipse.papyrus.infra.gmfdiag.assistant.ModelingAssistantProvider#isRelationshipType(org.eclipse.gmf.runtime.emf.type.core.IElementType) <em>Is Relationship Type</em>}</li>
* </ul>
* </p>
*
@@ -216,6 +218,21 @@ public class ModelingAssistantProviderTest extends TestCase {
}
/**
+ * Tests the '{@link org.eclipse.papyrus.infra.gmfdiag.assistant.ModelingAssistantProvider#getRelationshipTypes() <em>Relationship Type</em>}' feature getter.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.infra.gmfdiag.assistant.ModelingAssistantProvider#getRelationshipTypes()
+ * @generated NOT
+ */
+ public void testGetRelationshipTypes()
+ {
+ assertThat(getFixture().getRelationshipTypes(), hasItem(canonicalize(UMLElementTypes.USAGE)));
+ assertThat(getFixture().getRelationshipTypes(), hasItem(canonicalize(UMLElementTypes.GENERALIZATION)));
+ assertThat(getFixture().getRelationshipTypes(), not(hasItem(canonicalize(UMLElementTypes.CLASS))));
+ }
+
+ /**
* Tests the '{@link org.eclipse.gmf.runtime.common.core.service.IProvider#provides(org.eclipse.gmf.runtime.common.core.service.IOperation) <em>Provides</em>}' operation.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -480,4 +497,19 @@ public class ModelingAssistantProviderTest extends TestCase {
assertThat(canonicalize(UMLElementTypes.CLASS), is(getFixture().getElementType("org.eclipse.papyrus.uml.Class")));
}
+ /**
+ * Tests the '{@link org.eclipse.papyrus.infra.gmfdiag.assistant.ModelingAssistantProvider#isRelationshipType(org.eclipse.gmf.runtime.emf.type.core.IElementType) <em>Is Relationship Type</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see org.eclipse.papyrus.infra.gmfdiag.assistant.ModelingAssistantProvider#isRelationshipType(org.eclipse.gmf.runtime.emf.type.core.IElementType)
+ * @generated NOT
+ */
+ public void testIsRelationshipType__IElementType()
+ {
+ assertThat(getFixture().isRelationshipType(canonicalize(UMLElementTypes.USAGE)), is(true));
+ assertThat(getFixture().isRelationshipType(canonicalize(UMLElementTypes.GENERALIZATION)), is(true));
+ assertThat(getFixture().isRelationshipType(canonicalize(UMLElementTypes.CLASS)), is(false));
+ }
+
} // ModelingAssistantProviderTest

Back to the top