Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian W. Damus2020-11-17 19:28:01 +0000
committerChristian W. Damus2020-11-24 14:45:51 +0000
commit75e6b4c3895e6e81a596fde3400bc611b9f2f8f6 (patch)
treef29c9d5f4525af57244c67cd47eab45c6ca89f0f
parentd6da06d8c5d4a4ceaa94f7ec961c92793e293fee (diff)
downloadorg.eclipse.papyrus-75e6b4c3895e6e81a596fde3400bc611b9f2f8f6.tar.gz
org.eclipse.papyrus-75e6b4c3895e6e81a596fde3400bc611b9f2f8f6.tar.xz
org.eclipse.papyrus-75e6b4c3895e6e81a596fde3400bc611b9f2f8f6.zip
Bug 568853: [Toolsmiths - ElementTypes] Add "MatchAndApply" Stereotype Matcher
- export StereotypeMatcher.ecore model to UML and use the UML as generator source - add a class that specializes both StereotypeApplicationMatcherConfiguration and AbstractAdviceBindingConfiguration to fulfill both roles - register matcher and advice factories to instantiate matcher and advice implementations from the new configuration https://bugs.eclipse.org/bugs/show_bug.cgi?id=568853 Signed-off-by: Christian W. Damus <give.a.damus@gmail.com> Change-Id: Iab4875a617ddf4d900451a6fc5b5f56b553c1d89 Signed-off-by: Christian W. Damus <give.a.damus@gmail.com>
-rw-r--r--plugins/infra/types/org.eclipse.papyrus.infra.types/model/ElementTypesConfigurations.genmodel3
-rw-r--r--plugins/uml/org.eclipse.papyrus.uml.types.core/icons/full/ctool16/CreateAbstractAdviceBindingConfiguration_matcherConfiguration_StereotypeMatcherAdviceConfiguration.gifbin0 -> 223 bytes
-rw-r--r--plugins/uml/org.eclipse.papyrus.uml.types.core/icons/full/ctool16/CreateContainerConfiguration_containerMatcherConfiguration_StereotypeMatcherAdviceConfiguration.gifbin0 -> 223 bytes
-rw-r--r--plugins/uml/org.eclipse.papyrus.uml.types.core/icons/full/ctool16/CreateElementTypeConfiguration_ownedAdvice_StereotypeMatcherAdviceConfiguration.gifbin0 -> 223 bytes
-rw-r--r--plugins/uml/org.eclipse.papyrus.uml.types.core/icons/full/ctool16/CreateElementTypeSetConfiguration_adviceBindingsConfigurations_StereotypeMatcherAdviceConfiguration.gifbin0 -> 223 bytes
-rw-r--r--plugins/uml/org.eclipse.papyrus.uml.types.core/icons/full/ctool16/CreateSpecializationTypeConfiguration_matcherConfiguration_StereotypeMatcherAdviceConfiguration.gifbin0 -> 223 bytes
-rw-r--r--plugins/uml/org.eclipse.papyrus.uml.types.core/icons/full/obj16/StereotypeMatcherAdviceConfiguration.gifbin0 -> 129 bytes
-rw-r--r--plugins/uml/org.eclipse.papyrus.uml.types.core/model/StereotypeMatcher.di2
-rw-r--r--plugins/uml/org.eclipse.papyrus.uml.types.core/model/StereotypeMatcher.ecore4
-rw-r--r--plugins/uml/org.eclipse.papyrus.uml.types.core/model/StereotypeMatcher.genmodel75
-rw-r--r--plugins/uml/org.eclipse.papyrus.uml.types.core/model/StereotypeMatcher.notation355
-rw-r--r--plugins/uml/org.eclipse.papyrus.uml.types.core/model/StereotypeMatcher.uml36
-rw-r--r--plugins/uml/org.eclipse.papyrus.uml.types.core/plugin.properties4
-rw-r--r--plugins/uml/org.eclipse.papyrus.uml.types.core/plugin.xml33
-rw-r--r--plugins/uml/org.eclipse.papyrus.uml.types.core/src-gen/org/eclipse/papyrus/uml/types/core/matchers/stereotype/StereotypeApplicationMatcherFactory.java12
-rw-r--r--plugins/uml/org.eclipse.papyrus.uml.types.core/src-gen/org/eclipse/papyrus/uml/types/core/matchers/stereotype/StereotypeApplicationMatcherPackage.java202
-rw-r--r--plugins/uml/org.eclipse.papyrus.uml.types.core/src-gen/org/eclipse/papyrus/uml/types/core/matchers/stereotype/StereotypeMatcherAdviceConfiguration.java29
-rw-r--r--plugins/uml/org.eclipse.papyrus.uml.types.core/src-gen/org/eclipse/papyrus/uml/types/core/matchers/stereotype/impl/StereotypeApplicationMatcherFactoryImpl.java12
-rw-r--r--plugins/uml/org.eclipse.papyrus.uml.types.core/src-gen/org/eclipse/papyrus/uml/types/core/matchers/stereotype/impl/StereotypeApplicationMatcherPackageImpl.java27
-rw-r--r--plugins/uml/org.eclipse.papyrus.uml.types.core/src-gen/org/eclipse/papyrus/uml/types/core/matchers/stereotype/impl/StereotypeMatcherAdviceConfigurationImpl.java489
-rw-r--r--plugins/uml/org.eclipse.papyrus.uml.types.core/src-gen/org/eclipse/papyrus/uml/types/core/matchers/stereotype/provider/StereotypeApplicationMatcherItemProviderAdapterFactory.java69
-rw-r--r--plugins/uml/org.eclipse.papyrus.uml.types.core/src-gen/org/eclipse/papyrus/uml/types/core/matchers/stereotype/provider/StereotypeMatcherAdviceConfigurationItemProvider.java244
-rw-r--r--plugins/uml/org.eclipse.papyrus.uml.types.core/src-gen/org/eclipse/papyrus/uml/types/core/matchers/stereotype/util/StereotypeApplicationMatcherAdapterFactory.java75
-rw-r--r--plugins/uml/org.eclipse.papyrus.uml.types.core/src-gen/org/eclipse/papyrus/uml/types/core/matchers/stereotype/util/StereotypeApplicationMatcherResourceFactoryImpl.java6
-rw-r--r--plugins/uml/org.eclipse.papyrus.uml.types.core/src-gen/org/eclipse/papyrus/uml/types/core/matchers/stereotype/util/StereotypeApplicationMatcherSwitch.java75
-rw-r--r--plugins/uml/org.eclipse.papyrus.uml.types.core/src/org/eclipse/papyrus/uml/types/core/matchers/stereotype/StereotypeApplicationMatcher.java43
-rw-r--r--plugins/uml/org.eclipse.papyrus.uml.types.core/src/org/eclipse/papyrus/uml/types/core/matchers/stereotype/StereotypeMatcherAdviceAdviceFactory.java40
-rw-r--r--plugins/uml/org.eclipse.papyrus.uml.types.core/src/org/eclipse/papyrus/uml/types/core/matchers/stereotype/StereotypeMatcherEditHelperAdvice.java137
28 files changed, 1915 insertions, 57 deletions
diff --git a/plugins/infra/types/org.eclipse.papyrus.infra.types/model/ElementTypesConfigurations.genmodel b/plugins/infra/types/org.eclipse.papyrus.infra.types/model/ElementTypesConfigurations.genmodel
index d3a58d97c48..dddee19b85e 100644
--- a/plugins/infra/types/org.eclipse.papyrus.infra.types/model/ElementTypesConfigurations.genmodel
+++ b/plugins/infra/types/org.eclipse.papyrus.infra.types/model/ElementTypesConfigurations.genmodel
@@ -43,6 +43,9 @@
extensibleProviderFactory="true" contentTypeIdentifier="org.eclipse.papyrus.infra.types"
fileExtensions="elementtypesconfigurations" ecorePackage="ElementTypesConfigurations.ecore#/"
operationsPackage="org.eclipse.papyrus.infra.types.operations">
+ <genAnnotations source="http://www.eclipse.org/emf/2002/GenModel/exporter/org.eclipse.uml2.uml.ecore.exporter">
+ <genAnnotations source="ElementTypesConfigurations.uml"/>
+ </genAnnotations>
<genEnums xsi:type="genmodel:GenEnum" typeSafeEnumCompatible="false" ecoreEnum="ElementTypesConfigurations.ecore#//InheritanceKind">
<genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="ElementTypesConfigurations.ecore#//InheritanceKind/none"/>
<genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="ElementTypesConfigurations.ecore#//InheritanceKind/all"/>
diff --git a/plugins/uml/org.eclipse.papyrus.uml.types.core/icons/full/ctool16/CreateAbstractAdviceBindingConfiguration_matcherConfiguration_StereotypeMatcherAdviceConfiguration.gif b/plugins/uml/org.eclipse.papyrus.uml.types.core/icons/full/ctool16/CreateAbstractAdviceBindingConfiguration_matcherConfiguration_StereotypeMatcherAdviceConfiguration.gif
new file mode 100644
index 00000000000..6a5dfd409aa
--- /dev/null
+++ b/plugins/uml/org.eclipse.papyrus.uml.types.core/icons/full/ctool16/CreateAbstractAdviceBindingConfiguration_matcherConfiguration_StereotypeMatcherAdviceConfiguration.gif
Binary files differ
diff --git a/plugins/uml/org.eclipse.papyrus.uml.types.core/icons/full/ctool16/CreateContainerConfiguration_containerMatcherConfiguration_StereotypeMatcherAdviceConfiguration.gif b/plugins/uml/org.eclipse.papyrus.uml.types.core/icons/full/ctool16/CreateContainerConfiguration_containerMatcherConfiguration_StereotypeMatcherAdviceConfiguration.gif
new file mode 100644
index 00000000000..2ce9ec86de4
--- /dev/null
+++ b/plugins/uml/org.eclipse.papyrus.uml.types.core/icons/full/ctool16/CreateContainerConfiguration_containerMatcherConfiguration_StereotypeMatcherAdviceConfiguration.gif
Binary files differ
diff --git a/plugins/uml/org.eclipse.papyrus.uml.types.core/icons/full/ctool16/CreateElementTypeConfiguration_ownedAdvice_StereotypeMatcherAdviceConfiguration.gif b/plugins/uml/org.eclipse.papyrus.uml.types.core/icons/full/ctool16/CreateElementTypeConfiguration_ownedAdvice_StereotypeMatcherAdviceConfiguration.gif
new file mode 100644
index 00000000000..d839c758a4c
--- /dev/null
+++ b/plugins/uml/org.eclipse.papyrus.uml.types.core/icons/full/ctool16/CreateElementTypeConfiguration_ownedAdvice_StereotypeMatcherAdviceConfiguration.gif
Binary files differ
diff --git a/plugins/uml/org.eclipse.papyrus.uml.types.core/icons/full/ctool16/CreateElementTypeSetConfiguration_adviceBindingsConfigurations_StereotypeMatcherAdviceConfiguration.gif b/plugins/uml/org.eclipse.papyrus.uml.types.core/icons/full/ctool16/CreateElementTypeSetConfiguration_adviceBindingsConfigurations_StereotypeMatcherAdviceConfiguration.gif
new file mode 100644
index 00000000000..40f87e13167
--- /dev/null
+++ b/plugins/uml/org.eclipse.papyrus.uml.types.core/icons/full/ctool16/CreateElementTypeSetConfiguration_adviceBindingsConfigurations_StereotypeMatcherAdviceConfiguration.gif
Binary files differ
diff --git a/plugins/uml/org.eclipse.papyrus.uml.types.core/icons/full/ctool16/CreateSpecializationTypeConfiguration_matcherConfiguration_StereotypeMatcherAdviceConfiguration.gif b/plugins/uml/org.eclipse.papyrus.uml.types.core/icons/full/ctool16/CreateSpecializationTypeConfiguration_matcherConfiguration_StereotypeMatcherAdviceConfiguration.gif
new file mode 100644
index 00000000000..6a5dfd409aa
--- /dev/null
+++ b/plugins/uml/org.eclipse.papyrus.uml.types.core/icons/full/ctool16/CreateSpecializationTypeConfiguration_matcherConfiguration_StereotypeMatcherAdviceConfiguration.gif
Binary files differ
diff --git a/plugins/uml/org.eclipse.papyrus.uml.types.core/icons/full/obj16/StereotypeMatcherAdviceConfiguration.gif b/plugins/uml/org.eclipse.papyrus.uml.types.core/icons/full/obj16/StereotypeMatcherAdviceConfiguration.gif
new file mode 100644
index 00000000000..89ad5da38ab
--- /dev/null
+++ b/plugins/uml/org.eclipse.papyrus.uml.types.core/icons/full/obj16/StereotypeMatcherAdviceConfiguration.gif
Binary files differ
diff --git a/plugins/uml/org.eclipse.papyrus.uml.types.core/model/StereotypeMatcher.di b/plugins/uml/org.eclipse.papyrus.uml.types.core/model/StereotypeMatcher.di
new file mode 100644
index 00000000000..bf9abab340f
--- /dev/null
+++ b/plugins/uml/org.eclipse.papyrus.uml.types.core/model/StereotypeMatcher.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
diff --git a/plugins/uml/org.eclipse.papyrus.uml.types.core/model/StereotypeMatcher.ecore b/plugins/uml/org.eclipse.papyrus.uml.types.core/model/StereotypeMatcher.ecore
index d009de33081..2b8432da06d 100644
--- a/plugins/uml/org.eclipse.papyrus.uml.types.core/model/StereotypeMatcher.ecore
+++ b/plugins/uml/org.eclipse.papyrus.uml.types.core/model/StereotypeMatcher.ecore
@@ -5,7 +5,9 @@
<eClassifiers xsi:type="ecore:EClass" name="StereotypeApplicationMatcherConfiguration"
eSuperTypes="platform:/plugin/org.eclipse.papyrus.infra.types/model/ElementTypesConfigurations.ecore#//AbstractMatcherConfiguration">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="stereotypesQualifiedNames"
- lowerBound="1" upperBound="-1" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+ lowerBound="1" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="profileUri" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="StereotypeMatcherAdviceConfiguration"
+ eSuperTypes="platform:/plugin/org.eclipse.papyrus.infra.types/model/ElementTypesConfigurations.ecore#//AbstractAdviceBindingConfiguration #//StereotypeApplicationMatcherConfiguration"/>
</ecore:EPackage>
diff --git a/plugins/uml/org.eclipse.papyrus.uml.types.core/model/StereotypeMatcher.genmodel b/plugins/uml/org.eclipse.papyrus.uml.types.core/model/StereotypeMatcher.genmodel
index 4e1a3dd2975..eea7943e0e4 100644
--- a/plugins/uml/org.eclipse.papyrus.uml.types.core/model/StereotypeMatcher.genmodel
+++ b/plugins/uml/org.eclipse.papyrus.uml.types.core/model/StereotypeMatcher.genmodel
@@ -1,20 +1,71 @@
<?xml version="1.0" encoding="UTF-8"?>
-<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
- xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" copyrightText="Copyright (c) 2014 CEA LIST.&#xA;&#xA; All rights reserved. This program and the accompanying materials&#xA; are made available under the terms of the Eclipse Public License 2.0&#xA; which accompanies this distribution, and is available at&#xA; https://www.eclipse.org/legal/epl-2.0/&#xA;&#xA; SPDX-License-Identifier: EPL-2.0&#xA;&#xA; Contributors:&#xA; CEA LIST - Initial API and implementation"
+<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:genmodel="http://www.eclipse.org/uml2/2.2.0/GenModel"
+ copyrightText="Copyright (c) 2020 CEA LIST.&#xA;&#xA;All rights reserved. This program and the accompanying materials&#xA;are made available under the terms of the Eclipse Public License 2.0&#xA;which accompanies this distribution, and is available at&#xA;https://www.eclipse.org/legal/epl-2.0/&#xA;&#xA;SPDX-License-Identifier: EPL-2.0&#xA;&#xA;Contributors:&#xA;CEA LIST - Initial API and implementation"
modelDirectory="/org.eclipse.papyrus.uml.types.core/src-gen" editDirectory="/org.eclipse.papyrus.uml.types.core/src-gen"
editorDirectory="/org.eclipse.papyrus.uml.types.core.editor/src-gen" modelPluginID="org.eclipse.papyrus.uml.types.core"
modelName="StereotypeApplicationMatcherConfiguration" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
- testsDirectory="/org.eclipse.papyrus.uml.types.core.tests/src-gen" importerID="org.eclipse.emf.importer.ecore"
- complianceLevel="7.0" copyrightFields="false" usedGenPackages="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore platform:/plugin/org.eclipse.papyrus.infra.types/model/ElementTypesConfigurations.genmodel#//types"
- operationReflection="true" importOrganizing="true">
- <foreignModel>StereotypeMatcher.ecore</foreignModel>
- <genPackages prefix="StereotypeApplicationMatcher" basePackage="org.eclipse.papyrus.uml.types.core.matchers"
- resource="XML" disposableProviderFactory="true" childCreationExtenders="true"
- ecorePackage="StereotypeMatcher.ecore#/">
- <genClasses ecoreClass="StereotypeMatcher.ecore#//StereotypeApplicationMatcherConfiguration"
+ testsDirectory="/org.eclipse.papyrus.uml.types.core.tests/src-gen" importerID="org.eclipse.uml2.uml.ecore.importer"
+ complianceLevel="11.0" copyrightFields="false" usedGenPackages="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore platform:/plugin/org.eclipse.papyrus.infra.types/model/ElementTypesConfigurations.genmodel#//types"
+ operationReflection="true" importOrganizing="true" operationsFolder="src-gen/">
+ <genAnnotations source="http://www.eclipse.org/emf/2002/GenModel/exporter/org.eclipse.uml2.uml.ecore.exporter">
+ <genAnnotations source="selectedPackages">
+ <details key="http://www.eclipse.org/papyrus/uml/types/stereotypematcher/1.1"
+ value="StereotypeMatcher.uml"/>
+ </genAnnotations>
+ <genAnnotations source="selectedReferencedPackages">
+ <details key="http://www.eclipse.org/emf/2002/Ecore" value="pathmap://UML_METAMODELS/Ecore.metamodel.uml"/>
+ <details key="http://www.eclipse.org/papyrus/infra/elementtypesconfigurations/1.2"
+ value="ElementTypesConfigurations.uml"/>
+ </genAnnotations>
+ <details key="directoryURI" value="."/>
+ <details key="SUBSETS_ANNOTATIONS" value="PROCESS"/>
+ <details key="UNION_ANNOTATIONS" value="PROCESS"/>
+ <details key="BODY_ANNOTATIONS" value="IGNORE"/>
+ <details key="OPPOSITE_ROLE_NAMES" value="IGNORE"/>
+ <details key="XMI_IDENTIFIERS" value="IGNORE"/>
+ <details key="ANNOTATION_DETAILS" value="IGNORE"/>
+ <details key="ECORE_TAGGED_VALUES" value="PROCESS"/>
+ <details key="DOCUMENTATION_ANNOTATIONS" value="PROCESS"/>
+ <details key="REDEFINES_ANNOTATIONS" value="PROCESS"/>
+ </genAnnotations>
+ <genAnnotations source="http://www.eclipse.org/emf/2002/GenModel/importer/org.eclipse.uml2.uml.ecore.importer">
+ <details key="OPPOSITE_ROLE_NAMES" value="IGNORE"/>
+ <details key="DUPLICATE_FEATURES" value="PROCESS"/>
+ <details key="ANNOTATION_DETAILS" value="PROCESS"/>
+ <details key="PROPERTY_DEFAULT_EXPRESSIONS" value="PROCESS"/>
+ <details key="DUPLICATE_FEATURE_INHERITANCE" value="PROCESS"/>
+ <details key="COMMENTS" value="PROCESS"/>
+ <details key="DERIVED_FEATURES" value="PROCESS"/>
+ <details key="SUPER_CLASS_ORDER" value="PROCESS"/>
+ <details key="DUPLICATE_OPERATION_INHERITANCE" value="PROCESS"/>
+ <details key="REDEFINING_OPERATIONS" value="PROCESS"/>
+ <details key="INVARIANT_CONSTRAINTS" value="PROCESS"/>
+ <details key="UNION_PROPERTIES" value="PROCESS"/>
+ <details key="DUPLICATE_OPERATIONS" value="PROCESS"/>
+ <details key="NON_API_INVARIANTS" value="PROCESS"/>
+ <details key="CAMEL_CASE_NAMES" value="IGNORE"/>
+ <details key="SUBSETTING_PROPERTIES" value="PROCESS"/>
+ <details key="OPERATION_BODIES" value="IGNORE"/>
+ <details key="ECORE_TAGGED_VALUES" value="PROCESS"/>
+ <details key="UNTYPED_PROPERTIES" value="REPORT"/>
+ <details key="REDEFINING_PROPERTIES" value="PROCESS"/>
+ <details key="INVOCATION_DELEGATES" value="PROCESS"/>
+ <details key="VALIDATION_DELEGATES" value="PROCESS"/>
+ </genAnnotations>
+ <foreignModel>StereotypeMatcher.uml</foreignModel>
+ <genPackages xsi:type="genmodel:GenPackage" prefix="StereotypeApplicationMatcher"
+ basePackage="org.eclipse.papyrus.uml.types.core.matchers" resource="XML" disposableProviderFactory="true"
+ generateExampleClass="false" childCreationExtenders="true" ecorePackage="StereotypeMatcher.ecore#/"
+ operationsPackage="org.eclipse.papyrus.uml.types.core.matchers.stereotype.operations">
+ <genAnnotations source="http://www.eclipse.org/emf/2002/GenModel/exporter/org.eclipse.uml2.uml.ecore.exporter">
+ <genAnnotations source="StereotypeMatcher.uml"/>
+ </genAnnotations>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="StereotypeMatcher.ecore#//StereotypeApplicationMatcherConfiguration"
labelFeature="#//stereotype/StereotypeApplicationMatcherConfiguration/profileUri">
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute StereotypeMatcher.ecore#//StereotypeApplicationMatcherConfiguration/stereotypesQualifiedNames"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute StereotypeMatcher.ecore#//StereotypeApplicationMatcherConfiguration/profileUri"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute StereotypeMatcher.ecore#//StereotypeApplicationMatcherConfiguration/stereotypesQualifiedNames"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute StereotypeMatcher.ecore#//StereotypeApplicationMatcherConfiguration/profileUri"/>
</genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="StereotypeMatcher.ecore#//StereotypeMatcherAdviceConfiguration"/>
</genPackages>
</genmodel:GenModel>
diff --git a/plugins/uml/org.eclipse.papyrus.uml.types.core/model/StereotypeMatcher.notation b/plugins/uml/org.eclipse.papyrus.uml.types.core/model/StereotypeMatcher.notation
new file mode 100644
index 00000000000..ccd1be1bae9
--- /dev/null
+++ b/plugins/uml/org.eclipse.papyrus.uml.types.core/model/StereotypeMatcher.notation
@@ -0,0 +1,355 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.3/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/gmfdiag/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_ty9yACkEEeuEo8scjf0hcw" type="PapyrusUMLClassDiagram" name="Stereotype Matchers" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_0DJ9sCkEEeuEo8scjf0hcw" type="Class_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_0DLy4CkEEeuEo8scjf0hcw" type="Class_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_0DLy4SkEEeuEo8scjf0hcw" type="Class_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0DLy4ikEEeuEo8scjf0hcw" y="15"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0DLy4ykEEeuEo8scjf0hcw" type="Class_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0DLy5CkEEeuEo8scjf0hcw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0DLy5SkEEeuEo8scjf0hcw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0DLy5ikEEeuEo8scjf0hcw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0DLy5ykEEeuEo8scjf0hcw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0DLy6CkEEeuEo8scjf0hcw" type="Class_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0DLy6SkEEeuEo8scjf0hcw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0DLy6ikEEeuEo8scjf0hcw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0DLy6ykEEeuEo8scjf0hcw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0DLy7CkEEeuEo8scjf0hcw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0DLy7SkEEeuEo8scjf0hcw" type="Class_NestedClassifierCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0DLy7ikEEeuEo8scjf0hcw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0DLy7ykEEeuEo8scjf0hcw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0DLy8CkEEeuEo8scjf0hcw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0DLy8SkEEeuEo8scjf0hcw"/>
+ </children>
+ <element xmi:type="uml:Class" href="platform:/plugin/org.eclipse.papyrus.infra.types/model/ElementTypesConfigurations.uml#_VkhwdRLoEeeDV7UHoBIkeA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0DJ9sSkEEeuEo8scjf0hcw" x="365" y="94"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0DZOQykEEeuEo8scjf0hcw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0DZ1UCkEEeuEo8scjf0hcw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_0DZ1UikEEeuEo8scjf0hcw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="platform:/plugin/org.eclipse.papyrus.infra.types/model/ElementTypesConfigurations.uml#_VkhwdRLoEeeDV7UHoBIkeA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0DZ1USkEEeuEo8scjf0hcw" x="200"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3tCOcCkEEeuEo8scjf0hcw" type="Class_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3tCOcikEEeuEo8scjf0hcw" type="Class_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_3tCOcykEEeuEo8scjf0hcw" type="Class_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3tCOdCkEEeuEo8scjf0hcw" y="15"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3tCOdSkEEeuEo8scjf0hcw" type="Class_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_3tCOdikEEeuEo8scjf0hcw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3tCOdykEEeuEo8scjf0hcw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3tCOeCkEEeuEo8scjf0hcw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3tCOeSkEEeuEo8scjf0hcw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3tCOeikEEeuEo8scjf0hcw" type="Class_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_3tCOeykEEeuEo8scjf0hcw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3tCOfCkEEeuEo8scjf0hcw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3tCOfSkEEeuEo8scjf0hcw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3tCOfikEEeuEo8scjf0hcw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3tC1gCkEEeuEo8scjf0hcw" type="Class_NestedClassifierCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_3tC1gSkEEeuEo8scjf0hcw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3tC1gikEEeuEo8scjf0hcw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3tC1gykEEeuEo8scjf0hcw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3tC1hCkEEeuEo8scjf0hcw"/>
+ </children>
+ <element xmi:type="uml:Class" href="platform:/plugin/org.eclipse.papyrus.infra.types/model/ElementTypesConfigurations.uml#_VkhwVxLoEeeDV7UHoBIkeA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3tCOcSkEEeuEo8scjf0hcw" x="659" y="96"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3tQ38ykEEeuEo8scjf0hcw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_3tQ39CkEEeuEo8scjf0hcw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_3tQ39ikEEeuEo8scjf0hcw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="platform:/plugin/org.eclipse.papyrus.infra.types/model/ElementTypesConfigurations.uml#_VkhwVxLoEeeDV7UHoBIkeA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3tQ39SkEEeuEo8scjf0hcw" x="200"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_6YzRICkEEeuEo8scjf0hcw" type="Class_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_6Yz4MCkEEeuEo8scjf0hcw" type="Class_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_6Yz4MSkEEeuEo8scjf0hcw" type="Class_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6Yz4MikEEeuEo8scjf0hcw" y="15"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_6Yz4MykEEeuEo8scjf0hcw" type="Class_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_6Yz4NCkEEeuEo8scjf0hcw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_6Yz4NSkEEeuEo8scjf0hcw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_6Yz4NikEEeuEo8scjf0hcw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6Yz4NykEEeuEo8scjf0hcw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_6Yz4OCkEEeuEo8scjf0hcw" type="Class_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_6Yz4OSkEEeuEo8scjf0hcw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_6Yz4OikEEeuEo8scjf0hcw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_6Yz4OykEEeuEo8scjf0hcw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6Yz4PCkEEeuEo8scjf0hcw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_6Yz4PSkEEeuEo8scjf0hcw" type="Class_NestedClassifierCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_6Yz4PikEEeuEo8scjf0hcw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_6Yz4PykEEeuEo8scjf0hcw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_6Yz4QCkEEeuEo8scjf0hcw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6Yz4QSkEEeuEo8scjf0hcw"/>
+ </children>
+ <element xmi:type="uml:Class" href="platform:/plugin/org.eclipse.papyrus.infra.types/model/ElementTypesConfigurations.uml#_VkhwQhLoEeeDV7UHoBIkeA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6YzRISkEEeuEo8scjf0hcw" x="56" y="41"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_6Y-QQCkEEeuEo8scjf0hcw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_6Y-QQSkEEeuEo8scjf0hcw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_6Y-QQykEEeuEo8scjf0hcw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="platform:/plugin/org.eclipse.papyrus.infra.types/model/ElementTypesConfigurations.uml#_VkhwQhLoEeeDV7UHoBIkeA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6Y-QQikEEeuEo8scjf0hcw" x="200"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_7S9zUCkEEeuEo8scjf0hcw" type="Class_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_7S-aYCkEEeuEo8scjf0hcw" type="Class_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7S-aYSkEEeuEo8scjf0hcw" type="Class_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7S-aYikEEeuEo8scjf0hcw" y="15"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_7S-aYykEEeuEo8scjf0hcw" type="Class_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_8Oau8CkEEeuEo8scjf0hcw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="StereotypeMatcher.uml#_N4HmAykEEeuEo8scjf0hcw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8Oau8SkEEeuEo8scjf0hcw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_8OuQ8CkEEeuEo8scjf0hcw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="StereotypeMatcher.uml#_N4HmBSkEEeuEo8scjf0hcw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8OuQ8SkEEeuEo8scjf0hcw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7S-aZCkEEeuEo8scjf0hcw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_7S-aZSkEEeuEo8scjf0hcw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_7S-aZikEEeuEo8scjf0hcw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7S-aZykEEeuEo8scjf0hcw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_7S-aaCkEEeuEo8scjf0hcw" type="Class_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7S-aaSkEEeuEo8scjf0hcw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_7S-aaikEEeuEo8scjf0hcw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_7S-aaykEEeuEo8scjf0hcw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7S-abCkEEeuEo8scjf0hcw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_7S-abSkEEeuEo8scjf0hcw" type="Class_NestedClassifierCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7S-abikEEeuEo8scjf0hcw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_7S-abykEEeuEo8scjf0hcw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_7S-acCkEEeuEo8scjf0hcw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7S-acSkEEeuEo8scjf0hcw"/>
+ </children>
+ <element xmi:type="uml:Class" href="StereotypeMatcher.uml#_N4HmASkEEeuEo8scjf0hcw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7S9zUSkEEeuEo8scjf0hcw" x="355" y="310"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_7TFvICkEEeuEo8scjf0hcw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7TFvISkEEeuEo8scjf0hcw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_7TFvIykEEeuEo8scjf0hcw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="StereotypeMatcher.uml#_N4HmASkEEeuEo8scjf0hcw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7TFvIikEEeuEo8scjf0hcw" x="200"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Bs4iwCkFEeuEo8scjf0hcw" type="Class_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Bs4iwikFEeuEo8scjf0hcw" type="Class_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Bs4iwykFEeuEo8scjf0hcw" type="Class_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Bs4ixCkFEeuEo8scjf0hcw" y="15"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Bs4ixSkFEeuEo8scjf0hcw" type="Class_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Bs4ixikFEeuEo8scjf0hcw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Bs4ixykFEeuEo8scjf0hcw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Bs4iyCkFEeuEo8scjf0hcw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Bs4iySkFEeuEo8scjf0hcw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Bs5J0CkFEeuEo8scjf0hcw" type="Class_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Bs5J0SkFEeuEo8scjf0hcw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Bs5J0ikFEeuEo8scjf0hcw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Bs5J0ykFEeuEo8scjf0hcw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Bs5J1CkFEeuEo8scjf0hcw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Bs5J1SkFEeuEo8scjf0hcw" type="Class_NestedClassifierCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Bs5J1ikFEeuEo8scjf0hcw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Bs5J1ykFEeuEo8scjf0hcw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Bs5J2CkFEeuEo8scjf0hcw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Bs5J2SkFEeuEo8scjf0hcw"/>
+ </children>
+ <element xmi:type="uml:Class" href="platform:/plugin/org.eclipse.papyrus.infra.types/model/ElementTypesConfigurations.uml#_VkhwgxLoEeeDV7UHoBIkeA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Bs4iwSkFEeuEo8scjf0hcw" x="53" y="245"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_BtBFoykFEeuEo8scjf0hcw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_BtBFpCkFEeuEo8scjf0hcw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_BtBFpikFEeuEo8scjf0hcw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="platform:/plugin/org.eclipse.papyrus.infra.types/model/ElementTypesConfigurations.uml#_VkhwgxLoEeeDV7UHoBIkeA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BtBFpSkFEeuEo8scjf0hcw" x="200"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_TynZECkFEeuEo8scjf0hcw" type="Class_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_TynZEikFEeuEo8scjf0hcw" type="Class_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_TynZEykFEeuEo8scjf0hcw" type="Class_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_TynZFCkFEeuEo8scjf0hcw" y="15"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TynZFSkFEeuEo8scjf0hcw" type="Class_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TynZFikFEeuEo8scjf0hcw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_TynZFykFEeuEo8scjf0hcw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_TynZGCkFEeuEo8scjf0hcw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TynZGSkFEeuEo8scjf0hcw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TyoAICkFEeuEo8scjf0hcw" type="Class_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TyoAISkFEeuEo8scjf0hcw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_TyoAIikFEeuEo8scjf0hcw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_TyoAIykFEeuEo8scjf0hcw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TyoAJCkFEeuEo8scjf0hcw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TyoAJSkFEeuEo8scjf0hcw" type="Class_NestedClassifierCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TyoAJikFEeuEo8scjf0hcw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_TyoAJykFEeuEo8scjf0hcw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_TyoAKCkFEeuEo8scjf0hcw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TyoAKSkFEeuEo8scjf0hcw"/>
+ </children>
+ <element xmi:type="uml:Class" href="StereotypeMatcher.uml#_TymK8CkFEeuEo8scjf0hcw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TynZESkFEeuEo8scjf0hcw" x="524" y="509"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_6P-26ikFEeuEo8scjf0hcw" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_6P-26ykFEeuEo8scjf0hcw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_6P-27SkFEeuEo8scjf0hcw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="StereotypeMatcher.uml#_TymK8CkFEeuEo8scjf0hcw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6P-27CkFEeuEo8scjf0hcw" x="724" y="509"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_ty9yASkEEeuEo8scjf0hcw" name="diagram_compatibility_version" stringValue="1.4.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_ty9yAikEEeuEo8scjf0hcw"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_ty9yAykEEeuEo8scjf0hcw" diagramKindId="org.eclipse.papyrus.uml.diagram.class">
+ <owner xmi:type="uml:Model" href="StereotypeMatcher.uml#_N4HmACkEEeuEo8scjf0hcw"/>
+ </styles>
+ <element xmi:type="uml:Model" href="StereotypeMatcher.uml#_N4HmACkEEeuEo8scjf0hcw"/>
+ <edges xmi:type="notation:Connector" xmi:id="_0DZ1UykEEeuEo8scjf0hcw" type="StereotypeCommentLink" source="_0DJ9sCkEEeuEo8scjf0hcw" target="_0DZOQykEEeuEo8scjf0hcw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_0DZ1VCkEEeuEo8scjf0hcw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_0DZ1WCkEEeuEo8scjf0hcw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="platform:/plugin/org.eclipse.papyrus.infra.types/model/ElementTypesConfigurations.uml#_VkhwdRLoEeeDV7UHoBIkeA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_0DZ1VSkEEeuEo8scjf0hcw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0DZ1VikEEeuEo8scjf0hcw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0DZ1VykEEeuEo8scjf0hcw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_3tQ39ykEEeuEo8scjf0hcw" type="StereotypeCommentLink" source="_3tCOcCkEEeuEo8scjf0hcw" target="_3tQ38ykEEeuEo8scjf0hcw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_3tQ3-CkEEeuEo8scjf0hcw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_3tQ3_CkEEeuEo8scjf0hcw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="platform:/plugin/org.eclipse.papyrus.infra.types/model/ElementTypesConfigurations.uml#_VkhwVxLoEeeDV7UHoBIkeA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3tQ3-SkEEeuEo8scjf0hcw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3tQ3-ikEEeuEo8scjf0hcw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3tQ3-ykEEeuEo8scjf0hcw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_6Y-QRCkEEeuEo8scjf0hcw" type="StereotypeCommentLink" source="_6YzRICkEEeuEo8scjf0hcw" target="_6Y-QQCkEEeuEo8scjf0hcw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_6Y-QRSkEEeuEo8scjf0hcw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_6Y-QSSkEEeuEo8scjf0hcw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="platform:/plugin/org.eclipse.papyrus.infra.types/model/ElementTypesConfigurations.uml#_VkhwQhLoEeeDV7UHoBIkeA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_6Y-QRikEEeuEo8scjf0hcw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_6Y-QRykEEeuEo8scjf0hcw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_6Y-QSCkEEeuEo8scjf0hcw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_7TFvJCkEEeuEo8scjf0hcw" type="StereotypeCommentLink" source="_7S9zUCkEEeuEo8scjf0hcw" target="_7TFvICkEEeuEo8scjf0hcw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_7TFvJSkEEeuEo8scjf0hcw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_7TFvKSkEEeuEo8scjf0hcw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="StereotypeMatcher.uml#_N4HmASkEEeuEo8scjf0hcw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_7TFvJikEEeuEo8scjf0hcw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7TFvJykEEeuEo8scjf0hcw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7TFvKCkEEeuEo8scjf0hcw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_-nEBUCkEEeuEo8scjf0hcw" type="Generalization_Edge" source="_7S9zUCkEEeuEo8scjf0hcw" target="_0DJ9sCkEEeuEo8scjf0hcw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_-nEBUykEEeuEo8scjf0hcw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_G0hyACkFEeuEo8scjf0hcw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-nEBVCkEEeuEo8scjf0hcw" x="-1" y="38"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_-nEBUSkEEeuEo8scjf0hcw"/>
+ <element xmi:type="uml:Generalization" href="StereotypeMatcher.uml#_N4HmAikEEeuEo8scjf0hcw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_-nEBUikEEeuEo8scjf0hcw" points="[306, 386, -643984, -643984]$[285, 197, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_G2hWECkFEeuEo8scjf0hcw" id="(0.3422222222222222,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_G2hWESkFEeuEo8scjf0hcw" id="(0.39520958083832336,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_BtBFpykFEeuEo8scjf0hcw" type="StereotypeCommentLink" source="_Bs4iwCkFEeuEo8scjf0hcw" target="_BtBFoykFEeuEo8scjf0hcw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_BtBFqCkFEeuEo8scjf0hcw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_BtBFrCkFEeuEo8scjf0hcw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="platform:/plugin/org.eclipse.papyrus.infra.types/model/ElementTypesConfigurations.uml#_VkhwgxLoEeeDV7UHoBIkeA"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_BtBFqSkFEeuEo8scjf0hcw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_BtBFqikFEeuEo8scjf0hcw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_BtBFqykFEeuEo8scjf0hcw"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_DJkjMCkFEeuEo8scjf0hcw" type="Generalization_Edge" source="_Bs4iwCkFEeuEo8scjf0hcw" target="_6YzRICkEEeuEo8scjf0hcw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_DJlKQCkFEeuEo8scjf0hcw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_Hcd7wCkFEeuEo8scjf0hcw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_DJlKQSkFEeuEo8scjf0hcw" y="39"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_DJkjMSkFEeuEo8scjf0hcw"/>
+ <element xmi:type="uml:Generalization" href="platform:/plugin/org.eclipse.papyrus.infra.types/model/ElementTypesConfigurations.uml#_VkhwhBLoEeeDV7UHoBIkeA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_DJkjMikFEeuEo8scjf0hcw" points="[635, 555, -643984, -643984]$[661, 481, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Hc4LcCkFEeuEo8scjf0hcw" id="(0.30057803468208094,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Hc4ygCkFEeuEo8scjf0hcw" id="(0.32,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_F4IbMCkFEeuEo8scjf0hcw" type="Association_Edge" source="_Bs4iwCkFEeuEo8scjf0hcw" target="_0DJ9sCkEEeuEo8scjf0hcw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_F4IbMykFEeuEo8scjf0hcw" type="Association_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_G0xCkCkFEeuEo8scjf0hcw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_F4IbNCkFEeuEo8scjf0hcw" x="1" y="-18"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_F4IbNSkFEeuEo8scjf0hcw" type="Association_NameLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_G1BhQCkFEeuEo8scjf0hcw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_F4IbNikFEeuEo8scjf0hcw" x="-1" y="18"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_F4IbNykFEeuEo8scjf0hcw" type="Association_TargetRoleLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_G1RY4CkFEeuEo8scjf0hcw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_F4IbOCkFEeuEo8scjf0hcw" x="31" y="-18"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_F4IbOSkFEeuEo8scjf0hcw" type="Association_SourceRoleLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_G1gpcCkFEeuEo8scjf0hcw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_F4IbOikFEeuEo8scjf0hcw" x="-76" y="-35"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_F4IbOykFEeuEo8scjf0hcw" type="Association_SourceMultiplicityLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_G14c4CkFEeuEo8scjf0hcw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_F4IbPCkFEeuEo8scjf0hcw" x="13" y="16"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_F4IbPSkFEeuEo8scjf0hcw" type="Association_TargetMultiplicityLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_G2IUgCkFEeuEo8scjf0hcw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_F4IbPikFEeuEo8scjf0hcw" x="-18" y="23"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_F4IbMSkFEeuEo8scjf0hcw"/>
+ <element xmi:type="uml:Association" href="platform:/plugin/org.eclipse.papyrus.infra.types/model/ElementTypesConfigurations.uml#_VkhwlBLoEeeDV7UHoBIkeA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_F4IbMikFEeuEo8scjf0hcw" points="[226, 293, -643984, -643984]$[392, 194, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_G2hWEikFEeuEo8scjf0hcw" id="(1.0,0.48)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_G2h9ICkFEeuEo8scjf0hcw" id="(0.16167664670658682,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_LY0ckCkFEeuEo8scjf0hcw" type="Generalization_Edge" source="_TynZECkFEeuEo8scjf0hcw" target="_3tCOcCkEEeuEo8scjf0hcw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_LY1DoCkFEeuEo8scjf0hcw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_L5C0wCkFEeuEo8scjf0hcw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_LY1DoSkFEeuEo8scjf0hcw" x="1" y="38"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_LY0ckSkFEeuEo8scjf0hcw"/>
+ <element xmi:type="uml:Generalization" href="StereotypeMatcher.uml#_LYiIsCkFEeuEo8scjf0hcw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_LY0ckikFEeuEo8scjf0hcw" points="[542, 387, -643984, -643984]$[641, 202, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_LZZEUCkFEeuEo8scjf0hcw" id="(0.7414634146341463,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_LZZEUSkFEeuEo8scjf0hcw" id="(0.38144329896907214,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_kX9asCkFEeuEo8scjf0hcw" type="Generalization_Edge" source="_TynZECkFEeuEo8scjf0hcw" target="_7S9zUCkEEeuEo8scjf0hcw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_kX-BwCkFEeuEo8scjf0hcw" type="Generalization_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kX-BwSkFEeuEo8scjf0hcw" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_kX9asSkFEeuEo8scjf0hcw"/>
+ <element xmi:type="uml:Generalization" href="StereotypeMatcher.uml#_kXqfwCkFEeuEo8scjf0hcw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_kX9asikFEeuEo8scjf0hcw" points="[584, 509, -643984, -643984]$[548, 433, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kYipgCkFEeuEo8scjf0hcw" id="(0.2926829268292683,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kYipgSkFEeuEo8scjf0hcw" id="(0.8577777777777778,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_6P-27ikFEeuEo8scjf0hcw" type="StereotypeCommentLink" source="_TynZECkFEeuEo8scjf0hcw" target="_6P-26ikFEeuEo8scjf0hcw">
+ <styles xmi:type="notation:FontStyle" xmi:id="_6P-27ykFEeuEo8scjf0hcw"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_6P-28ykFEeuEo8scjf0hcw" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="StereotypeMatcher.uml#_TymK8CkFEeuEo8scjf0hcw"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_6P-28CkFEeuEo8scjf0hcw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_6P-28SkFEeuEo8scjf0hcw"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_6P-28ikFEeuEo8scjf0hcw"/>
+ </edges>
+</notation:Diagram>
diff --git a/plugins/uml/org.eclipse.papyrus.uml.types.core/model/StereotypeMatcher.uml b/plugins/uml/org.eclipse.papyrus.uml.types.core/model/StereotypeMatcher.uml
new file mode 100644
index 00000000000..a774fc7b64a
--- /dev/null
+++ b/plugins/uml/org.eclipse.papyrus.uml.types.core/model/StereotypeMatcher.uml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Ecore="http://www.eclipse.org/uml2/schemas/Ecore/5" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/uml2/schemas/Ecore/5 pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA">
+ <uml:Model xmi:id="_N4HmACkEEeuEo8scjf0hcw" name="stereotype" URI="http://www.eclipse.org/papyrus/uml/types/stereotypematcher/1.1">
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_tzCDcCkEEeuEo8scjf0hcw">
+ <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
+ </packageImport>
+ <packagedElement xmi:type="uml:Class" xmi:id="_N4HmASkEEeuEo8scjf0hcw" name="StereotypeApplicationMatcherConfiguration">
+ <generalization xmi:type="uml:Generalization" xmi:id="_N4HmAikEEeuEo8scjf0hcw">
+ <general xmi:type="uml:Class" href="platform:/plugin/org.eclipse.papyrus.infra.types/model/ElementTypesConfigurations.uml#_VkhwdRLoEeeDV7UHoBIkeA"/>
+ </generalization>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_N4HmAykEEeuEo8scjf0hcw" name="stereotypesQualifiedNames" visibility="public" isOrdered="true">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_N4HmBCkEEeuEo8scjf0hcw" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_N4HmBSkEEeuEo8scjf0hcw" name="profileUri" visibility="public" isOrdered="true">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_N4HmBikEEeuEo8scjf0hcw"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_TymK8CkFEeuEo8scjf0hcw" name="StereotypeMatcherAdviceConfiguration">
+ <generalization xmi:type="uml:Generalization" xmi:id="_LYiIsCkFEeuEo8scjf0hcw">
+ <general xmi:type="uml:Class" href="platform:/plugin/org.eclipse.papyrus.infra.types/model/ElementTypesConfigurations.uml#_VkhwVxLoEeeDV7UHoBIkeA"/>
+ </generalization>
+ <generalization xmi:type="uml:Generalization" xmi:id="_kXqfwCkFEeuEo8scjf0hcw" general="_N4HmASkEEeuEo8scjf0hcw"/>
+ </packagedElement>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_N4HmBykEEeuEo8scjf0hcw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_N4HmCCkEEeuEo8scjf0hcw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_PROFILES/Ecore.profile.uml#_0"/>
+ </profileApplication>
+ </uml:Model>
+ <Ecore:EPackage xmi:id="_N4HmCSkEEeuEo8scjf0hcw" base_Package="_N4HmACkEEeuEo8scjf0hcw" nsPrefix="stereotypematcher" basePackage="org.eclipse.papyrus.uml.types.core.matchers"/>
+ <Ecore:EClass xmi:id="_N4HmCikEEeuEo8scjf0hcw" base_Class="_N4HmASkEEeuEo8scjf0hcw"/>
+ <Ecore:EClass xmi:id="_6PrU4CkFEeuEo8scjf0hcw" base_Class="_TymK8CkFEeuEo8scjf0hcw"/>
+</xmi:XMI>
diff --git a/plugins/uml/org.eclipse.papyrus.uml.types.core/plugin.properties b/plugins/uml/org.eclipse.papyrus.uml.types.core/plugin.properties
index 24b8fd6ab86..1e62d86f138 100644
--- a/plugins/uml/org.eclipse.papyrus.uml.types.core/plugin.properties
+++ b/plugins/uml/org.eclipse.papyrus.uml.types.core/plugin.properties
@@ -1,5 +1,5 @@
#################################################################################
-# Copyright (c) 2010 CEA LIST.
+# Copyright (c) 2010, 2020 CEA LIST, 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 2.0
# which accompanies this distribution, and is available at
@@ -9,6 +9,7 @@
#
# Contributors:
# Remi Schnekenburger (CEA LIST) remi.schnekenburger@cea.fr - initial API and implementation
+# Christian W. Damus - bug 568853
##################################################################################
pluginName = UML configurations for ElementTypesConfigurations framework
providerName = Eclipse Modeling Project
@@ -55,3 +56,4 @@ _UI_StereotypePropertyReferenceEdgeAdviceConfiguration_type = Stereotype Propert
_UI_StereotypePropertyReferenceEdgeAdviceConfiguration_featureToSet_feature = Feature To Set
_UI_StereotypePropertyReferenceEdgeAdviceConfiguration_stereotypeQualifiedName_feature = Stereotype Qualified Name
_UI_StereotypePropertyReferenceEdgeAdviceConfiguration_edgeLabel_feature = Edge Label
+_UI_StereotypeMatcherAdviceConfiguration_type = Stereotype Matcher Advice Configuration
diff --git a/plugins/uml/org.eclipse.papyrus.uml.types.core/plugin.xml b/plugins/uml/org.eclipse.papyrus.uml.types.core/plugin.xml
index 4f87f3969fe..01eeebcdc76 100644
--- a/plugins/uml/org.eclipse.papyrus.uml.types.core/plugin.xml
+++ b/plugins/uml/org.eclipse.papyrus.uml.types.core/plugin.xml
@@ -2,25 +2,6 @@
<?eclipse version="3.0"?>
<plugin>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
<extension point="org.eclipse.emf.ecore.generated_package">
<!-- @generated SetTypeAdvice -->
<package
@@ -177,6 +158,13 @@
</adviceConfigurationKind>
</extension>
<extension
+ point="org.eclipse.papyrus.infra.types.core.adviceConfigurationKind">
+ <adviceConfigurationKind
+ configurationClass="org.eclipse.papyrus.uml.types.core.matchers.stereotype.StereotypeMatcherAdviceConfiguration"
+ factoryClass="org.eclipse.papyrus.uml.types.core.matchers.stereotype.StereotypeMatcherAdviceAdviceFactory">
+ </adviceConfigurationKind>
+ </extension>
+ <extension
point="org.eclipse.papyrus.infra.types.rulebased.ruleKind">
<ruleKind
configurationClass="org.eclipse.papyrus.uml.types.core.rules.invariantstereotype.InvariantStereotypeRuleConfiguration"
@@ -190,6 +178,13 @@
factoryClass="org.eclipse.papyrus.uml.types.core.matchers.stereotype.StereotypeApplicationMatcherConfigurationFactory">
</matcherConfigurationKind>
</extension>
+ <extension
+ point="org.eclipse.papyrus.infra.types.core.matcherConfigurationKind">
+ <matcherConfigurationKind
+ configurationClass="org.eclipse.papyrus.uml.types.core.matchers.stereotype.StereotypeMatcherAdviceConfiguration"
+ factoryClass="org.eclipse.papyrus.uml.types.core.matchers.stereotype.StereotypeApplicationMatcherConfigurationFactory">
+ </matcherConfigurationKind>
+ </extension>
<extension point="org.eclipse.emf.ecore.generated_package">
<!-- @generated StereotypePropertyReferenceEdgeAdvice -->
<package
diff --git a/plugins/uml/org.eclipse.papyrus.uml.types.core/src-gen/org/eclipse/papyrus/uml/types/core/matchers/stereotype/StereotypeApplicationMatcherFactory.java b/plugins/uml/org.eclipse.papyrus.uml.types.core/src-gen/org/eclipse/papyrus/uml/types/core/matchers/stereotype/StereotypeApplicationMatcherFactory.java
index 37cc580ce9d..9cfaca156b3 100644
--- a/plugins/uml/org.eclipse.papyrus.uml.types.core/src-gen/org/eclipse/papyrus/uml/types/core/matchers/stereotype/StereotypeApplicationMatcherFactory.java
+++ b/plugins/uml/org.eclipse.papyrus.uml.types.core/src-gen/org/eclipse/papyrus/uml/types/core/matchers/stereotype/StereotypeApplicationMatcherFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2014 CEA LIST.
+ * Copyright (c) 2014, 2020 CEA LIST, Christian W. Damus, and others.
*
*
* All rights reserved. This program and the accompanying materials
@@ -11,6 +11,7 @@
*
* Contributors:
* CEA LIST - Initial API and implementation
+ * Christian W. Damus - bug 568853
*/
package org.eclipse.papyrus.uml.types.core.matchers.stereotype;
@@ -43,6 +44,15 @@ public interface StereotypeApplicationMatcherFactory extends EFactory {
StereotypeApplicationMatcherConfiguration createStereotypeApplicationMatcherConfiguration();
/**
+ * Returns a new object of class '<em>Stereotype Matcher Advice Configuration</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Stereotype Matcher Advice Configuration</em>'.
+ * @generated
+ */
+ StereotypeMatcherAdviceConfiguration createStereotypeMatcherAdviceConfiguration();
+
+ /**
* Returns the package supported by this factory.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
diff --git a/plugins/uml/org.eclipse.papyrus.uml.types.core/src-gen/org/eclipse/papyrus/uml/types/core/matchers/stereotype/StereotypeApplicationMatcherPackage.java b/plugins/uml/org.eclipse.papyrus.uml.types.core/src-gen/org/eclipse/papyrus/uml/types/core/matchers/stereotype/StereotypeApplicationMatcherPackage.java
index e2fa71dd012..ee355973737 100644
--- a/plugins/uml/org.eclipse.papyrus.uml.types.core/src-gen/org/eclipse/papyrus/uml/types/core/matchers/stereotype/StereotypeApplicationMatcherPackage.java
+++ b/plugins/uml/org.eclipse.papyrus.uml.types.core/src-gen/org/eclipse/papyrus/uml/types/core/matchers/stereotype/StereotypeApplicationMatcherPackage.java
@@ -145,6 +145,188 @@ public interface StereotypeApplicationMatcherPackage extends EPackage {
/**
+ * The meta object id for the '{@link org.eclipse.papyrus.uml.types.core.matchers.stereotype.impl.StereotypeMatcherAdviceConfigurationImpl <em>Stereotype Matcher Advice Configuration</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.uml.types.core.matchers.stereotype.impl.StereotypeMatcherAdviceConfigurationImpl
+ * @see org.eclipse.papyrus.uml.types.core.matchers.stereotype.impl.StereotypeApplicationMatcherPackageImpl#getStereotypeMatcherAdviceConfiguration()
+ * @generated
+ */
+ int STEREOTYPE_MATCHER_ADVICE_CONFIGURATION = 1;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STEREOTYPE_MATCHER_ADVICE_CONFIGURATION__DESCRIPTION = ElementTypesConfigurationsPackage.ABSTRACT_ADVICE_BINDING_CONFIGURATION__DESCRIPTION;
+
+ /**
+ * The feature id for the '<em><b>Owning Type</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STEREOTYPE_MATCHER_ADVICE_CONFIGURATION__OWNING_TYPE = ElementTypesConfigurationsPackage.ABSTRACT_ADVICE_BINDING_CONFIGURATION__OWNING_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Before</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STEREOTYPE_MATCHER_ADVICE_CONFIGURATION__BEFORE = ElementTypesConfigurationsPackage.ABSTRACT_ADVICE_BINDING_CONFIGURATION__BEFORE;
+
+ /**
+ * The feature id for the '<em><b>After</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STEREOTYPE_MATCHER_ADVICE_CONFIGURATION__AFTER = ElementTypesConfigurationsPackage.ABSTRACT_ADVICE_BINDING_CONFIGURATION__AFTER;
+
+ /**
+ * The feature id for the '<em><b>Identifier</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STEREOTYPE_MATCHER_ADVICE_CONFIGURATION__IDENTIFIER = ElementTypesConfigurationsPackage.ABSTRACT_ADVICE_BINDING_CONFIGURATION__IDENTIFIER;
+
+ /**
+ * The feature id for the '<em><b>Target</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STEREOTYPE_MATCHER_ADVICE_CONFIGURATION__TARGET = ElementTypesConfigurationsPackage.ABSTRACT_ADVICE_BINDING_CONFIGURATION__TARGET;
+
+ /**
+ * The feature id for the '<em><b>Container Configuration</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STEREOTYPE_MATCHER_ADVICE_CONFIGURATION__CONTAINER_CONFIGURATION = ElementTypesConfigurationsPackage.ABSTRACT_ADVICE_BINDING_CONFIGURATION__CONTAINER_CONFIGURATION;
+
+ /**
+ * The feature id for the '<em><b>Matcher Configuration</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STEREOTYPE_MATCHER_ADVICE_CONFIGURATION__MATCHER_CONFIGURATION = ElementTypesConfigurationsPackage.ABSTRACT_ADVICE_BINDING_CONFIGURATION__MATCHER_CONFIGURATION;
+
+ /**
+ * The feature id for the '<em><b>Inheritance</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STEREOTYPE_MATCHER_ADVICE_CONFIGURATION__INHERITANCE = ElementTypesConfigurationsPackage.ABSTRACT_ADVICE_BINDING_CONFIGURATION__INHERITANCE;
+
+ /**
+ * The feature id for the '<em><b>Apply To All Types</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STEREOTYPE_MATCHER_ADVICE_CONFIGURATION__APPLY_TO_ALL_TYPES = ElementTypesConfigurationsPackage.ABSTRACT_ADVICE_BINDING_CONFIGURATION__APPLY_TO_ALL_TYPES;
+
+ /**
+ * The feature id for the '<em><b>Owning Set</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STEREOTYPE_MATCHER_ADVICE_CONFIGURATION__OWNING_SET = ElementTypesConfigurationsPackage.ABSTRACT_ADVICE_BINDING_CONFIGURATION__OWNING_SET;
+
+ /**
+ * The feature id for the '<em><b>Element Type Set</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STEREOTYPE_MATCHER_ADVICE_CONFIGURATION__ELEMENT_TYPE_SET = ElementTypesConfigurationsPackage.ABSTRACT_ADVICE_BINDING_CONFIGURATION__ELEMENT_TYPE_SET;
+
+ /**
+ * The feature id for the '<em><b>Owning Target</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STEREOTYPE_MATCHER_ADVICE_CONFIGURATION__OWNING_TARGET = ElementTypesConfigurationsPackage.ABSTRACT_ADVICE_BINDING_CONFIGURATION__OWNING_TARGET;
+
+ /**
+ * The feature id for the '<em><b>Matched Type</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STEREOTYPE_MATCHER_ADVICE_CONFIGURATION__MATCHED_TYPE = ElementTypesConfigurationsPackage.ABSTRACT_ADVICE_BINDING_CONFIGURATION_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Stereotypes Qualified Names</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STEREOTYPE_MATCHER_ADVICE_CONFIGURATION__STEREOTYPES_QUALIFIED_NAMES = ElementTypesConfigurationsPackage.ABSTRACT_ADVICE_BINDING_CONFIGURATION_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Profile Uri</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STEREOTYPE_MATCHER_ADVICE_CONFIGURATION__PROFILE_URI = ElementTypesConfigurationsPackage.ABSTRACT_ADVICE_BINDING_CONFIGURATION_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Stereotype Matcher Advice Configuration</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STEREOTYPE_MATCHER_ADVICE_CONFIGURATION_FEATURE_COUNT = ElementTypesConfigurationsPackage.ABSTRACT_ADVICE_BINDING_CONFIGURATION_FEATURE_COUNT + 3;
+
+ /**
+ * The operation id for the '<em>Get Element Type Set</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STEREOTYPE_MATCHER_ADVICE_CONFIGURATION___GET_ELEMENT_TYPE_SET = ElementTypesConfigurationsPackage.ABSTRACT_ADVICE_BINDING_CONFIGURATION___GET_ELEMENT_TYPE_SET;
+
+ /**
+ * The number of operations of the '<em>Stereotype Matcher Advice Configuration</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STEREOTYPE_MATCHER_ADVICE_CONFIGURATION_OPERATION_COUNT = ElementTypesConfigurationsPackage.ABSTRACT_ADVICE_BINDING_CONFIGURATION_OPERATION_COUNT + 0;
+
+
+ /**
* Returns the meta object for class '{@link org.eclipse.papyrus.uml.types.core.matchers.stereotype.StereotypeApplicationMatcherConfiguration <em>Configuration</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -177,6 +359,16 @@ public interface StereotypeApplicationMatcherPackage extends EPackage {
EAttribute getStereotypeApplicationMatcherConfiguration_ProfileUri();
/**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.uml.types.core.matchers.stereotype.StereotypeMatcherAdviceConfiguration <em>Stereotype Matcher Advice Configuration</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Stereotype Matcher Advice Configuration</em>'.
+ * @see org.eclipse.papyrus.uml.types.core.matchers.stereotype.StereotypeMatcherAdviceConfiguration
+ * @generated
+ */
+ EClass getStereotypeMatcherAdviceConfiguration();
+
+ /**
* Returns the factory that creates the instances of the model.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -225,6 +417,16 @@ public interface StereotypeApplicationMatcherPackage extends EPackage {
*/
EAttribute STEREOTYPE_APPLICATION_MATCHER_CONFIGURATION__PROFILE_URI = eINSTANCE.getStereotypeApplicationMatcherConfiguration_ProfileUri();
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.uml.types.core.matchers.stereotype.impl.StereotypeMatcherAdviceConfigurationImpl <em>Stereotype Matcher Advice Configuration</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.uml.types.core.matchers.stereotype.impl.StereotypeMatcherAdviceConfigurationImpl
+ * @see org.eclipse.papyrus.uml.types.core.matchers.stereotype.impl.StereotypeApplicationMatcherPackageImpl#getStereotypeMatcherAdviceConfiguration()
+ * @generated
+ */
+ EClass STEREOTYPE_MATCHER_ADVICE_CONFIGURATION = eINSTANCE.getStereotypeMatcherAdviceConfiguration();
+
}
} //StereotypeApplicationMatcherPackage
diff --git a/plugins/uml/org.eclipse.papyrus.uml.types.core/src-gen/org/eclipse/papyrus/uml/types/core/matchers/stereotype/StereotypeMatcherAdviceConfiguration.java b/plugins/uml/org.eclipse.papyrus.uml.types.core/src-gen/org/eclipse/papyrus/uml/types/core/matchers/stereotype/StereotypeMatcherAdviceConfiguration.java
new file mode 100644
index 00000000000..b4619bc4519
--- /dev/null
+++ b/plugins/uml/org.eclipse.papyrus.uml.types.core/src-gen/org/eclipse/papyrus/uml/types/core/matchers/stereotype/StereotypeMatcherAdviceConfiguration.java
@@ -0,0 +1,29 @@
+/**
+ * Copyright (c) 2020 Christian W. Damus, CEA LIST, and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - Initial API and implementation
+ */
+package org.eclipse.papyrus.uml.types.core.matchers.stereotype;
+
+import org.eclipse.papyrus.infra.types.AbstractAdviceBindingConfiguration;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Stereotype Matcher Advice Configuration</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.uml.types.core.matchers.stereotype.StereotypeApplicationMatcherPackage#getStereotypeMatcherAdviceConfiguration()
+ * @model
+ * @generated
+ */
+public interface StereotypeMatcherAdviceConfiguration extends AbstractAdviceBindingConfiguration, StereotypeApplicationMatcherConfiguration {
+} // StereotypeMatcherAdviceConfiguration
diff --git a/plugins/uml/org.eclipse.papyrus.uml.types.core/src-gen/org/eclipse/papyrus/uml/types/core/matchers/stereotype/impl/StereotypeApplicationMatcherFactoryImpl.java b/plugins/uml/org.eclipse.papyrus.uml.types.core/src-gen/org/eclipse/papyrus/uml/types/core/matchers/stereotype/impl/StereotypeApplicationMatcherFactoryImpl.java
index ce06e125202..2f3be84614f 100644
--- a/plugins/uml/org.eclipse.papyrus.uml.types.core/src-gen/org/eclipse/papyrus/uml/types/core/matchers/stereotype/impl/StereotypeApplicationMatcherFactoryImpl.java
+++ b/plugins/uml/org.eclipse.papyrus.uml.types.core/src-gen/org/eclipse/papyrus/uml/types/core/matchers/stereotype/impl/StereotypeApplicationMatcherFactoryImpl.java
@@ -70,6 +70,7 @@ public class StereotypeApplicationMatcherFactoryImpl extends EFactoryImpl implem
public EObject create(EClass eClass) {
switch (eClass.getClassifierID()) {
case StereotypeApplicationMatcherPackage.STEREOTYPE_APPLICATION_MATCHER_CONFIGURATION: return createStereotypeApplicationMatcherConfiguration();
+ case StereotypeApplicationMatcherPackage.STEREOTYPE_MATCHER_ADVICE_CONFIGURATION: return createStereotypeMatcherAdviceConfiguration();
default:
throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
}
@@ -92,6 +93,17 @@ public class StereotypeApplicationMatcherFactoryImpl extends EFactoryImpl implem
* @generated
*/
@Override
+ public StereotypeMatcherAdviceConfiguration createStereotypeMatcherAdviceConfiguration() {
+ StereotypeMatcherAdviceConfigurationImpl stereotypeMatcherAdviceConfiguration = new StereotypeMatcherAdviceConfigurationImpl();
+ return stereotypeMatcherAdviceConfiguration;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
public StereotypeApplicationMatcherPackage getStereotypeApplicationMatcherPackage() {
return (StereotypeApplicationMatcherPackage)getEPackage();
}
diff --git a/plugins/uml/org.eclipse.papyrus.uml.types.core/src-gen/org/eclipse/papyrus/uml/types/core/matchers/stereotype/impl/StereotypeApplicationMatcherPackageImpl.java b/plugins/uml/org.eclipse.papyrus.uml.types.core/src-gen/org/eclipse/papyrus/uml/types/core/matchers/stereotype/impl/StereotypeApplicationMatcherPackageImpl.java
index 948618ae21e..c101a5564ac 100644
--- a/plugins/uml/org.eclipse.papyrus.uml.types.core/src-gen/org/eclipse/papyrus/uml/types/core/matchers/stereotype/impl/StereotypeApplicationMatcherPackageImpl.java
+++ b/plugins/uml/org.eclipse.papyrus.uml.types.core/src-gen/org/eclipse/papyrus/uml/types/core/matchers/stereotype/impl/StereotypeApplicationMatcherPackageImpl.java
@@ -27,6 +27,7 @@ import org.eclipse.papyrus.infra.types.ElementTypesConfigurationsPackage;
import org.eclipse.papyrus.uml.types.core.matchers.stereotype.StereotypeApplicationMatcherConfiguration;
import org.eclipse.papyrus.uml.types.core.matchers.stereotype.StereotypeApplicationMatcherFactory;
import org.eclipse.papyrus.uml.types.core.matchers.stereotype.StereotypeApplicationMatcherPackage;
+import org.eclipse.papyrus.uml.types.core.matchers.stereotype.StereotypeMatcherAdviceConfiguration;
/**
* <!-- begin-user-doc -->
@@ -43,6 +44,13 @@ public class StereotypeApplicationMatcherPackageImpl extends EPackageImpl implem
private EClass stereotypeApplicationMatcherConfigurationEClass = null;
/**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass stereotypeMatcherAdviceConfigurationEClass = null;
+
+ /**
* Creates an instance of the model <b>Package</b>, registered with
* {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
* package URI value.
@@ -143,6 +151,16 @@ public class StereotypeApplicationMatcherPackageImpl extends EPackageImpl implem
* @generated
*/
@Override
+ public EClass getStereotypeMatcherAdviceConfiguration() {
+ return stereotypeMatcherAdviceConfigurationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
public StereotypeApplicationMatcherFactory getStereotypeApplicationMatcherFactory() {
return (StereotypeApplicationMatcherFactory)getEFactoryInstance();
}
@@ -169,6 +187,8 @@ public class StereotypeApplicationMatcherPackageImpl extends EPackageImpl implem
stereotypeApplicationMatcherConfigurationEClass = createEClass(STEREOTYPE_APPLICATION_MATCHER_CONFIGURATION);
createEAttribute(stereotypeApplicationMatcherConfigurationEClass, STEREOTYPE_APPLICATION_MATCHER_CONFIGURATION__STEREOTYPES_QUALIFIED_NAMES);
createEAttribute(stereotypeApplicationMatcherConfigurationEClass, STEREOTYPE_APPLICATION_MATCHER_CONFIGURATION__PROFILE_URI);
+
+ stereotypeMatcherAdviceConfigurationEClass = createEClass(STEREOTYPE_MATCHER_ADVICE_CONFIGURATION);
}
/**
@@ -196,7 +216,6 @@ public class StereotypeApplicationMatcherPackageImpl extends EPackageImpl implem
// Obtain other dependent packages
ElementTypesConfigurationsPackage theElementTypesConfigurationsPackage = (ElementTypesConfigurationsPackage)EPackage.Registry.INSTANCE.getEPackage(ElementTypesConfigurationsPackage.eNS_URI);
- EcorePackage theEcorePackage = (EcorePackage)EPackage.Registry.INSTANCE.getEPackage(EcorePackage.eNS_URI);
// Create type parameters
@@ -204,12 +223,16 @@ public class StereotypeApplicationMatcherPackageImpl extends EPackageImpl implem
// Add supertypes to classes
stereotypeApplicationMatcherConfigurationEClass.getESuperTypes().add(theElementTypesConfigurationsPackage.getAbstractMatcherConfiguration());
+ stereotypeMatcherAdviceConfigurationEClass.getESuperTypes().add(theElementTypesConfigurationsPackage.getAbstractAdviceBindingConfiguration());
+ stereotypeMatcherAdviceConfigurationEClass.getESuperTypes().add(this.getStereotypeApplicationMatcherConfiguration());
// Initialize classes, features, and operations; add parameters
initEClass(stereotypeApplicationMatcherConfigurationEClass, StereotypeApplicationMatcherConfiguration.class, "StereotypeApplicationMatcherConfiguration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
- initEAttribute(getStereotypeApplicationMatcherConfiguration_StereotypesQualifiedNames(), theEcorePackage.getEString(), "stereotypesQualifiedNames", null, 1, -1, StereotypeApplicationMatcherConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getStereotypeApplicationMatcherConfiguration_StereotypesQualifiedNames(), ecorePackage.getEString(), "stereotypesQualifiedNames", null, 1, -1, StereotypeApplicationMatcherConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getStereotypeApplicationMatcherConfiguration_ProfileUri(), ecorePackage.getEString(), "profileUri", null, 0, 1, StereotypeApplicationMatcherConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEClass(stereotypeMatcherAdviceConfigurationEClass, StereotypeMatcherAdviceConfiguration.class, "StereotypeMatcherAdviceConfiguration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
// Create resource
createResource(eNS_URI);
}
diff --git a/plugins/uml/org.eclipse.papyrus.uml.types.core/src-gen/org/eclipse/papyrus/uml/types/core/matchers/stereotype/impl/StereotypeMatcherAdviceConfigurationImpl.java b/plugins/uml/org.eclipse.papyrus.uml.types.core/src-gen/org/eclipse/papyrus/uml/types/core/matchers/stereotype/impl/StereotypeMatcherAdviceConfigurationImpl.java
new file mode 100644
index 00000000000..35cfbead720
--- /dev/null
+++ b/plugins/uml/org.eclipse.papyrus.uml.types.core/src-gen/org/eclipse/papyrus/uml/types/core/matchers/stereotype/impl/StereotypeMatcherAdviceConfigurationImpl.java
@@ -0,0 +1,489 @@
+/**
+ * Copyright (c) 2020 Christian W. Damus, CEA LIST, and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - Initial API and implementation
+ */
+package org.eclipse.papyrus.uml.types.core.matchers.stereotype.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.resource.Resource;
+
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+import org.eclipse.papyrus.infra.types.AbstractMatcherConfiguration;
+import org.eclipse.papyrus.infra.types.ElementTypeConfiguration;
+import org.eclipse.papyrus.infra.types.ElementTypesConfigurationsPackage;
+import org.eclipse.papyrus.infra.types.SpecializationTypeConfiguration;
+
+import org.eclipse.papyrus.infra.types.impl.AbstractAdviceBindingConfigurationImpl;
+
+import org.eclipse.papyrus.uml.types.core.matchers.stereotype.StereotypeApplicationMatcherConfiguration;
+import org.eclipse.papyrus.uml.types.core.matchers.stereotype.StereotypeApplicationMatcherPackage;
+import org.eclipse.papyrus.uml.types.core.matchers.stereotype.StereotypeMatcherAdviceConfiguration;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Stereotype Matcher Advice Configuration</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.uml.types.core.matchers.stereotype.impl.StereotypeMatcherAdviceConfigurationImpl#getOwningType <em>Owning Type</em>}</li>
+ * <li>{@link org.eclipse.papyrus.uml.types.core.matchers.stereotype.impl.StereotypeMatcherAdviceConfigurationImpl#getMatchedType <em>Matched Type</em>}</li>
+ * <li>{@link org.eclipse.papyrus.uml.types.core.matchers.stereotype.impl.StereotypeMatcherAdviceConfigurationImpl#getStereotypesQualifiedNames <em>Stereotypes Qualified Names</em>}</li>
+ * <li>{@link org.eclipse.papyrus.uml.types.core.matchers.stereotype.impl.StereotypeMatcherAdviceConfigurationImpl#getProfileUri <em>Profile Uri</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class StereotypeMatcherAdviceConfigurationImpl extends AbstractAdviceBindingConfigurationImpl implements StereotypeMatcherAdviceConfiguration {
+ /**
+ * The cached value of the '{@link #getMatchedType() <em>Matched Type</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMatchedType()
+ * @generated
+ * @ordered
+ */
+ protected SpecializationTypeConfiguration matchedType;
+
+ /**
+ * The cached value of the '{@link #getStereotypesQualifiedNames() <em>Stereotypes Qualified Names</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStereotypesQualifiedNames()
+ * @generated
+ * @ordered
+ */
+ protected EList<String> stereotypesQualifiedNames;
+
+ /**
+ * The default value of the '{@link #getProfileUri() <em>Profile Uri</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getProfileUri()
+ * @generated
+ * @ordered
+ */
+ protected static final String PROFILE_URI_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getProfileUri() <em>Profile Uri</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getProfileUri()
+ * @generated
+ * @ordered
+ */
+ protected String profileUri = PROFILE_URI_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected StereotypeMatcherAdviceConfigurationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return StereotypeApplicationMatcherPackage.Literals.STEREOTYPE_MATCHER_ADVICE_CONFIGURATION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ElementTypeConfiguration getOwningType() {
+ if (eContainerFeatureID() != StereotypeApplicationMatcherPackage.STEREOTYPE_MATCHER_ADVICE_CONFIGURATION__OWNING_TYPE) return null;
+ return (ElementTypeConfiguration)eInternalContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetOwningType(ElementTypeConfiguration newOwningType, NotificationChain msgs) {
+ msgs = eBasicSetContainer((InternalEObject)newOwningType, StereotypeApplicationMatcherPackage.STEREOTYPE_MATCHER_ADVICE_CONFIGURATION__OWNING_TYPE, msgs);
+ Resource.Internal eInternalResource = eInternalResource();
+ if (eInternalResource == null || !eInternalResource.isLoading()) {
+ if (matchedType != null && matchedType != newOwningType) {
+ setMatchedType(null);
+ }
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setOwningType(ElementTypeConfiguration newOwningType) {
+ if (newOwningType != eInternalContainer() || (eContainerFeatureID() != StereotypeApplicationMatcherPackage.STEREOTYPE_MATCHER_ADVICE_CONFIGURATION__OWNING_TYPE && newOwningType != null)) {
+ if (EcoreUtil.isAncestor(this, newOwningType))
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ if (newOwningType != null)
+ msgs = ((InternalEObject)newOwningType).eInverseAdd(this, ElementTypesConfigurationsPackage.ELEMENT_TYPE_CONFIGURATION__OWNED_CONFIGURATIONS, ElementTypeConfiguration.class, msgs);
+ msgs = basicSetOwningType(newOwningType, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, StereotypeApplicationMatcherPackage.STEREOTYPE_MATCHER_ADVICE_CONFIGURATION__OWNING_TYPE, newOwningType, newOwningType));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public SpecializationTypeConfiguration getMatchedType() {
+ if (matchedType != null && matchedType.eIsProxy()) {
+ InternalEObject oldMatchedType = (InternalEObject)matchedType;
+ matchedType = (SpecializationTypeConfiguration)eResolveProxy(oldMatchedType);
+ if (matchedType != oldMatchedType) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, StereotypeApplicationMatcherPackage.STEREOTYPE_MATCHER_ADVICE_CONFIGURATION__MATCHED_TYPE, oldMatchedType, matchedType));
+ }
+ }
+ return matchedType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SpecializationTypeConfiguration basicGetMatchedType() {
+ return matchedType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetMatchedType(SpecializationTypeConfiguration newMatchedType, NotificationChain msgs) {
+ SpecializationTypeConfiguration oldMatchedType = matchedType;
+ matchedType = newMatchedType;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, StereotypeApplicationMatcherPackage.STEREOTYPE_MATCHER_ADVICE_CONFIGURATION__MATCHED_TYPE, oldMatchedType, newMatchedType);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ Resource.Internal eInternalResource = eInternalResource();
+ if (eInternalResource == null || !eInternalResource.isLoading()) {
+ if (newMatchedType != null) {
+ ElementTypeConfiguration owningType = getOwningType();
+ if (newMatchedType != owningType) {
+ setOwningType(newMatchedType);
+ }
+ }
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setMatchedType(SpecializationTypeConfiguration newMatchedType) {
+ if (newMatchedType != matchedType) {
+ NotificationChain msgs = null;
+ if (matchedType != null)
+ msgs = ((InternalEObject)matchedType).eInverseRemove(this, ElementTypesConfigurationsPackage.SPECIALIZATION_TYPE_CONFIGURATION__MATCHER_CONFIGURATION, SpecializationTypeConfiguration.class, msgs);
+ if (newMatchedType != null)
+ msgs = ((InternalEObject)newMatchedType).eInverseAdd(this, ElementTypesConfigurationsPackage.SPECIALIZATION_TYPE_CONFIGURATION__MATCHER_CONFIGURATION, SpecializationTypeConfiguration.class, msgs);
+ msgs = basicSetMatchedType(newMatchedType, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, StereotypeApplicationMatcherPackage.STEREOTYPE_MATCHER_ADVICE_CONFIGURATION__MATCHED_TYPE, newMatchedType, newMatchedType));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EList<String> getStereotypesQualifiedNames() {
+ if (stereotypesQualifiedNames == null) {
+ stereotypesQualifiedNames = new EDataTypeUniqueEList<String>(String.class, this, StereotypeApplicationMatcherPackage.STEREOTYPE_MATCHER_ADVICE_CONFIGURATION__STEREOTYPES_QUALIFIED_NAMES);
+ }
+ return stereotypesQualifiedNames;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getProfileUri() {
+ return profileUri;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setProfileUri(String newProfileUri) {
+ String oldProfileUri = profileUri;
+ profileUri = newProfileUri;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, StereotypeApplicationMatcherPackage.STEREOTYPE_MATCHER_ADVICE_CONFIGURATION__PROFILE_URI, oldProfileUri, profileUri));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseAddGen(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case StereotypeApplicationMatcherPackage.STEREOTYPE_MATCHER_ADVICE_CONFIGURATION__OWNING_TYPE:
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ return basicSetOwningType((ElementTypeConfiguration)otherEnd, msgs);
+ case StereotypeApplicationMatcherPackage.STEREOTYPE_MATCHER_ADVICE_CONFIGURATION__MATCHED_TYPE:
+ if (matchedType != null)
+ msgs = ((InternalEObject)matchedType).eInverseRemove(this, ElementTypesConfigurationsPackage.SPECIALIZATION_TYPE_CONFIGURATION__MATCHER_CONFIGURATION, SpecializationTypeConfiguration.class, msgs);
+ return basicSetMatchedType((SpecializationTypeConfiguration)otherEnd, msgs);
+ }
+ return super.eInverseAddGen(otherEnd, featureID, msgs);
+ }
+
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ NotificationChain result = eInverseAddGen(otherEnd, featureID, msgs);
+
+ switch (featureID) {
+ case StereotypeApplicationMatcherPackage.STEREOTYPE_MATCHER_ADVICE_CONFIGURATION__MATCHED_TYPE:
+ if (otherEnd != null) {
+ // Maintain the subset constraint
+ result = basicSetTarget((ElementTypeConfiguration) otherEnd, result);
+ }
+ break;
+ }
+
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case StereotypeApplicationMatcherPackage.STEREOTYPE_MATCHER_ADVICE_CONFIGURATION__OWNING_TYPE:
+ return basicSetOwningType(null, msgs);
+ case StereotypeApplicationMatcherPackage.STEREOTYPE_MATCHER_ADVICE_CONFIGURATION__MATCHED_TYPE:
+ return basicSetMatchedType(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+ switch (eContainerFeatureID()) {
+ case StereotypeApplicationMatcherPackage.STEREOTYPE_MATCHER_ADVICE_CONFIGURATION__OWNING_TYPE:
+ return eInternalContainer().eInverseRemove(this, ElementTypesConfigurationsPackage.ELEMENT_TYPE_CONFIGURATION__OWNED_CONFIGURATIONS, ElementTypeConfiguration.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case StereotypeApplicationMatcherPackage.STEREOTYPE_MATCHER_ADVICE_CONFIGURATION__MATCHED_TYPE:
+ if (resolve) return getMatchedType();
+ return basicGetMatchedType();
+ case StereotypeApplicationMatcherPackage.STEREOTYPE_MATCHER_ADVICE_CONFIGURATION__STEREOTYPES_QUALIFIED_NAMES:
+ return getStereotypesQualifiedNames();
+ case StereotypeApplicationMatcherPackage.STEREOTYPE_MATCHER_ADVICE_CONFIGURATION__PROFILE_URI:
+ return getProfileUri();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case StereotypeApplicationMatcherPackage.STEREOTYPE_MATCHER_ADVICE_CONFIGURATION__MATCHED_TYPE:
+ setMatchedType((SpecializationTypeConfiguration)newValue);
+ return;
+ case StereotypeApplicationMatcherPackage.STEREOTYPE_MATCHER_ADVICE_CONFIGURATION__STEREOTYPES_QUALIFIED_NAMES:
+ getStereotypesQualifiedNames().clear();
+ getStereotypesQualifiedNames().addAll((Collection<? extends String>)newValue);
+ return;
+ case StereotypeApplicationMatcherPackage.STEREOTYPE_MATCHER_ADVICE_CONFIGURATION__PROFILE_URI:
+ setProfileUri((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case StereotypeApplicationMatcherPackage.STEREOTYPE_MATCHER_ADVICE_CONFIGURATION__MATCHED_TYPE:
+ setMatchedType((SpecializationTypeConfiguration)null);
+ return;
+ case StereotypeApplicationMatcherPackage.STEREOTYPE_MATCHER_ADVICE_CONFIGURATION__STEREOTYPES_QUALIFIED_NAMES:
+ getStereotypesQualifiedNames().clear();
+ return;
+ case StereotypeApplicationMatcherPackage.STEREOTYPE_MATCHER_ADVICE_CONFIGURATION__PROFILE_URI:
+ setProfileUri(PROFILE_URI_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case StereotypeApplicationMatcherPackage.STEREOTYPE_MATCHER_ADVICE_CONFIGURATION__OWNING_TYPE:
+ return getOwningType() != null;
+ case StereotypeApplicationMatcherPackage.STEREOTYPE_MATCHER_ADVICE_CONFIGURATION__MATCHED_TYPE:
+ return matchedType != null;
+ case StereotypeApplicationMatcherPackage.STEREOTYPE_MATCHER_ADVICE_CONFIGURATION__STEREOTYPES_QUALIFIED_NAMES:
+ return stereotypesQualifiedNames != null && !stereotypesQualifiedNames.isEmpty();
+ case StereotypeApplicationMatcherPackage.STEREOTYPE_MATCHER_ADVICE_CONFIGURATION__PROFILE_URI:
+ return PROFILE_URI_EDEFAULT == null ? profileUri != null : !PROFILE_URI_EDEFAULT.equals(profileUri);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+ if (baseClass == AbstractMatcherConfiguration.class) {
+ switch (derivedFeatureID) {
+ case StereotypeApplicationMatcherPackage.STEREOTYPE_MATCHER_ADVICE_CONFIGURATION__MATCHED_TYPE: return ElementTypesConfigurationsPackage.ABSTRACT_MATCHER_CONFIGURATION__MATCHED_TYPE;
+ default: return -1;
+ }
+ }
+ if (baseClass == StereotypeApplicationMatcherConfiguration.class) {
+ switch (derivedFeatureID) {
+ case StereotypeApplicationMatcherPackage.STEREOTYPE_MATCHER_ADVICE_CONFIGURATION__STEREOTYPES_QUALIFIED_NAMES: return StereotypeApplicationMatcherPackage.STEREOTYPE_APPLICATION_MATCHER_CONFIGURATION__STEREOTYPES_QUALIFIED_NAMES;
+ case StereotypeApplicationMatcherPackage.STEREOTYPE_MATCHER_ADVICE_CONFIGURATION__PROFILE_URI: return StereotypeApplicationMatcherPackage.STEREOTYPE_APPLICATION_MATCHER_CONFIGURATION__PROFILE_URI;
+ default: return -1;
+ }
+ }
+ return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+ if (baseClass == AbstractMatcherConfiguration.class) {
+ switch (baseFeatureID) {
+ case ElementTypesConfigurationsPackage.ABSTRACT_MATCHER_CONFIGURATION__MATCHED_TYPE: return StereotypeApplicationMatcherPackage.STEREOTYPE_MATCHER_ADVICE_CONFIGURATION__MATCHED_TYPE;
+ default: return -1;
+ }
+ }
+ if (baseClass == StereotypeApplicationMatcherConfiguration.class) {
+ switch (baseFeatureID) {
+ case StereotypeApplicationMatcherPackage.STEREOTYPE_APPLICATION_MATCHER_CONFIGURATION__STEREOTYPES_QUALIFIED_NAMES: return StereotypeApplicationMatcherPackage.STEREOTYPE_MATCHER_ADVICE_CONFIGURATION__STEREOTYPES_QUALIFIED_NAMES;
+ case StereotypeApplicationMatcherPackage.STEREOTYPE_APPLICATION_MATCHER_CONFIGURATION__PROFILE_URI: return StereotypeApplicationMatcherPackage.STEREOTYPE_MATCHER_ADVICE_CONFIGURATION__PROFILE_URI;
+ default: return -1;
+ }
+ }
+ return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (stereotypesQualifiedNames: ");
+ result.append(stereotypesQualifiedNames);
+ result.append(", profileUri: ");
+ result.append(profileUri);
+ result.append(')');
+ return result.toString();
+ }
+
+} //StereotypeMatcherAdviceConfigurationImpl
diff --git a/plugins/uml/org.eclipse.papyrus.uml.types.core/src-gen/org/eclipse/papyrus/uml/types/core/matchers/stereotype/provider/StereotypeApplicationMatcherItemProviderAdapterFactory.java b/plugins/uml/org.eclipse.papyrus.uml.types.core/src-gen/org/eclipse/papyrus/uml/types/core/matchers/stereotype/provider/StereotypeApplicationMatcherItemProviderAdapterFactory.java
index c893cb9fb9b..f4324a264ca 100644
--- a/plugins/uml/org.eclipse.papyrus.uml.types.core/src-gen/org/eclipse/papyrus/uml/types/core/matchers/stereotype/provider/StereotypeApplicationMatcherItemProviderAdapterFactory.java
+++ b/plugins/uml/org.eclipse.papyrus.uml.types.core/src-gen/org/eclipse/papyrus/uml/types/core/matchers/stereotype/provider/StereotypeApplicationMatcherItemProviderAdapterFactory.java
@@ -46,6 +46,8 @@ import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
import org.eclipse.papyrus.infra.types.AbstractAdviceBindingConfiguration;
import org.eclipse.papyrus.infra.types.ContainerConfiguration;
+import org.eclipse.papyrus.infra.types.ElementTypeConfiguration;
+import org.eclipse.papyrus.infra.types.ElementTypeSetConfiguration;
import org.eclipse.papyrus.infra.types.ElementTypesConfigurationsPackage;
import org.eclipse.papyrus.infra.types.SpecializationTypeConfiguration;
import org.eclipse.papyrus.infra.types.util.ElementTypesConfigurationsSwitch;
@@ -126,6 +128,29 @@ public class StereotypeApplicationMatcherItemProviderAdapterFactory extends Ster
}
/**
+ * This keeps track of the one adapter used for all {@link org.eclipse.papyrus.uml.types.core.matchers.stereotype.StereotypeMatcherAdviceConfiguration} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected StereotypeMatcherAdviceConfigurationItemProvider stereotypeMatcherAdviceConfigurationItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.papyrus.uml.types.core.matchers.stereotype.StereotypeMatcherAdviceConfiguration}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createStereotypeMatcherAdviceConfigurationAdapter() {
+ if (stereotypeMatcherAdviceConfigurationItemProvider == null) {
+ stereotypeMatcherAdviceConfigurationItemProvider = new StereotypeMatcherAdviceConfigurationItemProvider(this);
+ }
+
+ return stereotypeMatcherAdviceConfigurationItemProvider;
+ }
+
+ /**
* This returns the root adapter factory that contains this factory.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -231,6 +256,7 @@ public class StereotypeApplicationMatcherItemProviderAdapterFactory extends Ster
@Override
public void dispose() {
if (stereotypeApplicationMatcherConfigurationItemProvider != null) stereotypeApplicationMatcherConfigurationItemProvider.dispose();
+ if (stereotypeMatcherAdviceConfigurationItemProvider != null) stereotypeMatcherAdviceConfigurationItemProvider.dispose();
}
/**
@@ -279,12 +305,45 @@ public class StereotypeApplicationMatcherItemProviderAdapterFactory extends Ster
* @generated
*/
@Override
+ public Object caseElementTypeSetConfiguration(ElementTypeSetConfiguration object) {
+ newChildDescriptors.add
+ (createChildParameter
+ (ElementTypesConfigurationsPackage.Literals.ELEMENT_TYPE_SET_CONFIGURATION__ADVICE_BINDINGS_CONFIGURATIONS,
+ StereotypeApplicationMatcherFactory.eINSTANCE.createStereotypeMatcherAdviceConfiguration()));
+
+ return null;
+ }
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object caseElementTypeConfiguration(ElementTypeConfiguration object) {
+ newChildDescriptors.add
+ (createChildParameter
+ (ElementTypesConfigurationsPackage.Literals.ELEMENT_TYPE_CONFIGURATION__OWNED_ADVICE,
+ StereotypeApplicationMatcherFactory.eINSTANCE.createStereotypeMatcherAdviceConfiguration()));
+
+ return null;
+ }
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
public Object caseAbstractAdviceBindingConfiguration(AbstractAdviceBindingConfiguration object) {
newChildDescriptors.add
(createChildParameter
(ElementTypesConfigurationsPackage.Literals.ABSTRACT_ADVICE_BINDING_CONFIGURATION__MATCHER_CONFIGURATION,
StereotypeApplicationMatcherFactory.eINSTANCE.createStereotypeApplicationMatcherConfiguration()));
+ newChildDescriptors.add
+ (createChildParameter
+ (ElementTypesConfigurationsPackage.Literals.ABSTRACT_ADVICE_BINDING_CONFIGURATION__MATCHER_CONFIGURATION,
+ StereotypeApplicationMatcherFactory.eINSTANCE.createStereotypeMatcherAdviceConfiguration()));
+
return null;
}
@@ -300,6 +359,11 @@ public class StereotypeApplicationMatcherItemProviderAdapterFactory extends Ster
(ElementTypesConfigurationsPackage.Literals.CONTAINER_CONFIGURATION__CONTAINER_MATCHER_CONFIGURATION,
StereotypeApplicationMatcherFactory.eINSTANCE.createStereotypeApplicationMatcherConfiguration()));
+ newChildDescriptors.add
+ (createChildParameter
+ (ElementTypesConfigurationsPackage.Literals.CONTAINER_CONFIGURATION__CONTAINER_MATCHER_CONFIGURATION,
+ StereotypeApplicationMatcherFactory.eINSTANCE.createStereotypeMatcherAdviceConfiguration()));
+
return null;
}
@@ -315,6 +379,11 @@ public class StereotypeApplicationMatcherItemProviderAdapterFactory extends Ster
(ElementTypesConfigurationsPackage.Literals.SPECIALIZATION_TYPE_CONFIGURATION__MATCHER_CONFIGURATION,
StereotypeApplicationMatcherFactory.eINSTANCE.createStereotypeApplicationMatcherConfiguration()));
+ newChildDescriptors.add
+ (createChildParameter
+ (ElementTypesConfigurationsPackage.Literals.SPECIALIZATION_TYPE_CONFIGURATION__MATCHER_CONFIGURATION,
+ StereotypeApplicationMatcherFactory.eINSTANCE.createStereotypeMatcherAdviceConfiguration()));
+
return null;
}
/**
diff --git a/plugins/uml/org.eclipse.papyrus.uml.types.core/src-gen/org/eclipse/papyrus/uml/types/core/matchers/stereotype/provider/StereotypeMatcherAdviceConfigurationItemProvider.java b/plugins/uml/org.eclipse.papyrus.uml.types.core/src-gen/org/eclipse/papyrus/uml/types/core/matchers/stereotype/provider/StereotypeMatcherAdviceConfigurationItemProvider.java
new file mode 100644
index 00000000000..7e778d990fb
--- /dev/null
+++ b/plugins/uml/org.eclipse.papyrus.uml.types.core/src-gen/org/eclipse/papyrus/uml/types/core/matchers/stereotype/provider/StereotypeMatcherAdviceConfigurationItemProvider.java
@@ -0,0 +1,244 @@
+/**
+ * Copyright (c) 2020 Christian W. Damus, CEA LIST, and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - Initial API and implementation
+ */
+package org.eclipse.papyrus.uml.types.core.matchers.stereotype.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.command.Command;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.domain.EditingDomain;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.papyrus.infra.types.ElementTypesConfigurationsPackage;
+
+import org.eclipse.papyrus.infra.types.provider.AbstractAdviceBindingConfigurationItemProvider;
+
+import org.eclipse.papyrus.uml.types.core.matchers.stereotype.StereotypeApplicationMatcherFactory;
+import org.eclipse.papyrus.uml.types.core.matchers.stereotype.StereotypeApplicationMatcherPackage;
+import org.eclipse.papyrus.uml.types.core.matchers.stereotype.StereotypeMatcherAdviceConfiguration;
+
+import org.eclipse.uml2.common.edit.command.SubsetSupersetSetCommand;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.uml.types.core.matchers.stereotype.StereotypeMatcherAdviceConfiguration} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class StereotypeMatcherAdviceConfigurationItemProvider extends AbstractAdviceBindingConfigurationItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StereotypeMatcherAdviceConfigurationItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addMatchedTypePropertyDescriptor(object);
+ addStereotypesQualifiedNamesPropertyDescriptor(object);
+ addProfileUriPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Matched Type feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addMatchedTypePropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_AbstractMatcherConfiguration_matchedType_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_AbstractMatcherConfiguration_matchedType_feature", "_UI_AbstractMatcherConfiguration_type"),
+ ElementTypesConfigurationsPackage.Literals.ABSTRACT_MATCHER_CONFIGURATION__MATCHED_TYPE,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Stereotypes Qualified Names feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addStereotypesQualifiedNamesPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_StereotypeApplicationMatcherConfiguration_stereotypesQualifiedNames_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_StereotypeApplicationMatcherConfiguration_stereotypesQualifiedNames_feature", "_UI_StereotypeApplicationMatcherConfiguration_type"),
+ StereotypeApplicationMatcherPackage.Literals.STEREOTYPE_APPLICATION_MATCHER_CONFIGURATION__STEREOTYPES_QUALIFIED_NAMES,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Profile Uri feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addProfileUriPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_StereotypeApplicationMatcherConfiguration_profileUri_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_StereotypeApplicationMatcherConfiguration_profileUri_feature", "_UI_StereotypeApplicationMatcherConfiguration_type"),
+ StereotypeApplicationMatcherPackage.Literals.STEREOTYPE_APPLICATION_MATCHER_CONFIGURATION__PROFILE_URI,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This returns StereotypeMatcherAdviceConfiguration.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/StereotypeMatcherAdviceConfiguration"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((StereotypeMatcherAdviceConfiguration)object).getDescription();
+ return label == null || label.length() == 0 ?
+ getString("_UI_StereotypeMatcherAdviceConfiguration_type") :
+ getString("_UI_StereotypeMatcherAdviceConfiguration_type") + " " + label;
+ }
+
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(StereotypeMatcherAdviceConfiguration.class)) {
+ case StereotypeApplicationMatcherPackage.STEREOTYPE_MATCHER_ADVICE_CONFIGURATION__STEREOTYPES_QUALIFIED_NAMES:
+ case StereotypeApplicationMatcherPackage.STEREOTYPE_MATCHER_ADVICE_CONFIGURATION__PROFILE_URI:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ElementTypesConfigurationsPackage.Literals.ABSTRACT_ADVICE_BINDING_CONFIGURATION__MATCHER_CONFIGURATION,
+ StereotypeApplicationMatcherFactory.eINSTANCE.createStereotypeApplicationMatcherConfiguration()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ElementTypesConfigurationsPackage.Literals.ABSTRACT_ADVICE_BINDING_CONFIGURATION__MATCHER_CONFIGURATION,
+ StereotypeApplicationMatcherFactory.eINSTANCE.createStereotypeMatcherAdviceConfiguration()));
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return StereotypeApplicationMatcherConfigurationEditPlugin.INSTANCE;
+ }
+
+ /**
+ * @see org.eclipse.emf.edit.provider.ItemProviderAdapter#createSetCommand(org.eclipse.emf.edit.domain.EditingDomain, org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EStructuralFeature, java.lang.Object)
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected Command createSetCommand(EditingDomain domain, EObject owner, EStructuralFeature feature, Object value) {
+ if (feature == ElementTypesConfigurationsPackage.Literals.ABSTRACT_MATCHER_CONFIGURATION__MATCHED_TYPE) {
+ return new SubsetSupersetSetCommand(domain, owner, feature, new EStructuralFeature[] {ElementTypesConfigurationsPackage.Literals.CONFIGURATION_ELEMENT__OWNING_TYPE}, null, value);
+ }
+ if (feature == ElementTypesConfigurationsPackage.Literals.CONFIGURATION_ELEMENT__OWNING_TYPE) {
+ return new SubsetSupersetSetCommand(domain, owner, feature, null, new EStructuralFeature[] {ElementTypesConfigurationsPackage.Literals.ABSTRACT_MATCHER_CONFIGURATION__MATCHED_TYPE}, value);
+ }
+ return super.createSetCommand(domain, owner, feature, value);
+ }
+
+}
diff --git a/plugins/uml/org.eclipse.papyrus.uml.types.core/src-gen/org/eclipse/papyrus/uml/types/core/matchers/stereotype/util/StereotypeApplicationMatcherAdapterFactory.java b/plugins/uml/org.eclipse.papyrus.uml.types.core/src-gen/org/eclipse/papyrus/uml/types/core/matchers/stereotype/util/StereotypeApplicationMatcherAdapterFactory.java
index eb77165456a..e9ce05b7920 100644
--- a/plugins/uml/org.eclipse.papyrus.uml.types.core/src-gen/org/eclipse/papyrus/uml/types/core/matchers/stereotype/util/StereotypeApplicationMatcherAdapterFactory.java
+++ b/plugins/uml/org.eclipse.papyrus.uml.types.core/src-gen/org/eclipse/papyrus/uml/types/core/matchers/stereotype/util/StereotypeApplicationMatcherAdapterFactory.java
@@ -22,9 +22,12 @@ import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.infra.types.AbstractAdviceBindingConfiguration;
import org.eclipse.papyrus.infra.types.AbstractMatcherConfiguration;
+import org.eclipse.papyrus.infra.types.AdviceConfiguration;
import org.eclipse.papyrus.infra.types.ConfigurationElement;
+import org.eclipse.papyrus.infra.types.IdentifiedConfiguration;
import org.eclipse.papyrus.uml.types.core.matchers.stereotype.*;
/**
@@ -88,6 +91,10 @@ public class StereotypeApplicationMatcherAdapterFactory extends AdapterFactoryIm
return createStereotypeApplicationMatcherConfigurationAdapter();
}
@Override
+ public Adapter caseStereotypeMatcherAdviceConfiguration(StereotypeMatcherAdviceConfiguration object) {
+ return createStereotypeMatcherAdviceConfigurationAdapter();
+ }
+ @Override
public Adapter caseConfigurationElement(ConfigurationElement object) {
return createConfigurationElementAdapter();
}
@@ -96,6 +103,18 @@ public class StereotypeApplicationMatcherAdapterFactory extends AdapterFactoryIm
return createAbstractMatcherConfigurationAdapter();
}
@Override
+ public Adapter caseAdviceConfiguration(AdviceConfiguration object) {
+ return createAdviceConfigurationAdapter();
+ }
+ @Override
+ public Adapter caseIdentifiedConfiguration(IdentifiedConfiguration object) {
+ return createIdentifiedConfigurationAdapter();
+ }
+ @Override
+ public Adapter caseAbstractAdviceBindingConfiguration(AbstractAdviceBindingConfiguration object) {
+ return createAbstractAdviceBindingConfigurationAdapter();
+ }
+ @Override
public Adapter defaultCase(EObject object) {
return createEObjectAdapter();
}
@@ -130,6 +149,20 @@ public class StereotypeApplicationMatcherAdapterFactory extends AdapterFactoryIm
}
/**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.uml.types.core.matchers.stereotype.StereotypeMatcherAdviceConfiguration <em>Stereotype Matcher Advice Configuration</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.uml.types.core.matchers.stereotype.StereotypeMatcherAdviceConfiguration
+ * @generated
+ */
+ public Adapter createStereotypeMatcherAdviceConfigurationAdapter() {
+ return null;
+ }
+
+ /**
* Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.types.ConfigurationElement <em>Configuration Element</em>}'.
* <!-- begin-user-doc -->
* This default implementation returns null so that we can easily ignore cases;
@@ -158,6 +191,48 @@ public class StereotypeApplicationMatcherAdapterFactory extends AdapterFactoryIm
}
/**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.types.AdviceConfiguration <em>Advice Configuration</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.types.AdviceConfiguration
+ * @generated
+ */
+ public Adapter createAdviceConfigurationAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.types.IdentifiedConfiguration <em>Identified Configuration</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.types.IdentifiedConfiguration
+ * @generated
+ */
+ public Adapter createIdentifiedConfigurationAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.infra.types.AbstractAdviceBindingConfiguration <em>Abstract Advice Binding Configuration</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.infra.types.AbstractAdviceBindingConfiguration
+ * @generated
+ */
+ public Adapter createAbstractAdviceBindingConfigurationAdapter() {
+ return null;
+ }
+
+ /**
* Creates a new adapter for the default case.
* <!-- begin-user-doc -->
* This default implementation returns null.
diff --git a/plugins/uml/org.eclipse.papyrus.uml.types.core/src-gen/org/eclipse/papyrus/uml/types/core/matchers/stereotype/util/StereotypeApplicationMatcherResourceFactoryImpl.java b/plugins/uml/org.eclipse.papyrus.uml.types.core/src-gen/org/eclipse/papyrus/uml/types/core/matchers/stereotype/util/StereotypeApplicationMatcherResourceFactoryImpl.java
index 08a245d539d..949db328666 100644
--- a/plugins/uml/org.eclipse.papyrus.uml.types.core/src-gen/org/eclipse/papyrus/uml/types/core/matchers/stereotype/util/StereotypeApplicationMatcherResourceFactoryImpl.java
+++ b/plugins/uml/org.eclipse.papyrus.uml.types.core/src-gen/org/eclipse/papyrus/uml/types/core/matchers/stereotype/util/StereotypeApplicationMatcherResourceFactoryImpl.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2014 CEA LIST.
+ * Copyright (c) 2014, 2020 CEA LIST, Christian W. Damus, and others.
*
*
* All rights reserved. This program and the accompanying materials
@@ -11,6 +11,7 @@
*
* Contributors:
* CEA LIST - Initial API and implementation
+ * Christian W. Damus - bug 568853
*/
package org.eclipse.papyrus.uml.types.core.matchers.stereotype.util;
@@ -19,6 +20,7 @@ import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.impl.ResourceFactoryImpl;
+import org.eclipse.emf.ecore.xmi.XMLResource;
/**
* <!-- begin-user-doc -->
@@ -46,7 +48,7 @@ public class StereotypeApplicationMatcherResourceFactoryImpl extends ResourceFac
*/
@Override
public Resource createResource(URI uri) {
- Resource result = new StereotypeApplicationMatcherResourceImpl(uri);
+ XMLResource result = new StereotypeApplicationMatcherResourceImpl(uri);
return result;
}
diff --git a/plugins/uml/org.eclipse.papyrus.uml.types.core/src-gen/org/eclipse/papyrus/uml/types/core/matchers/stereotype/util/StereotypeApplicationMatcherSwitch.java b/plugins/uml/org.eclipse.papyrus.uml.types.core/src-gen/org/eclipse/papyrus/uml/types/core/matchers/stereotype/util/StereotypeApplicationMatcherSwitch.java
index 000c4274b53..49139639c2e 100644
--- a/plugins/uml/org.eclipse.papyrus.uml.types.core/src-gen/org/eclipse/papyrus/uml/types/core/matchers/stereotype/util/StereotypeApplicationMatcherSwitch.java
+++ b/plugins/uml/org.eclipse.papyrus.uml.types.core/src-gen/org/eclipse/papyrus/uml/types/core/matchers/stereotype/util/StereotypeApplicationMatcherSwitch.java
@@ -20,9 +20,12 @@ import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.util.Switch;
+import org.eclipse.papyrus.infra.types.AbstractAdviceBindingConfiguration;
import org.eclipse.papyrus.infra.types.AbstractMatcherConfiguration;
+import org.eclipse.papyrus.infra.types.AdviceConfiguration;
import org.eclipse.papyrus.infra.types.ConfigurationElement;
+import org.eclipse.papyrus.infra.types.IdentifiedConfiguration;
import org.eclipse.papyrus.uml.types.core.matchers.stereotype.*;
/**
@@ -90,6 +93,18 @@ public class StereotypeApplicationMatcherSwitch<T> extends Switch<T> {
if (result == null) result = defaultCase(theEObject);
return result;
}
+ case StereotypeApplicationMatcherPackage.STEREOTYPE_MATCHER_ADVICE_CONFIGURATION: {
+ StereotypeMatcherAdviceConfiguration stereotypeMatcherAdviceConfiguration = (StereotypeMatcherAdviceConfiguration)theEObject;
+ T result = caseStereotypeMatcherAdviceConfiguration(stereotypeMatcherAdviceConfiguration);
+ if (result == null) result = caseAbstractAdviceBindingConfiguration(stereotypeMatcherAdviceConfiguration);
+ if (result == null) result = caseStereotypeApplicationMatcherConfiguration(stereotypeMatcherAdviceConfiguration);
+ if (result == null) result = caseAdviceConfiguration(stereotypeMatcherAdviceConfiguration);
+ if (result == null) result = caseIdentifiedConfiguration(stereotypeMatcherAdviceConfiguration);
+ if (result == null) result = caseAbstractMatcherConfiguration(stereotypeMatcherAdviceConfiguration);
+ if (result == null) result = caseConfigurationElement(stereotypeMatcherAdviceConfiguration);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
default: return defaultCase(theEObject);
}
}
@@ -110,6 +125,21 @@ public class StereotypeApplicationMatcherSwitch<T> extends Switch<T> {
}
/**
+ * Returns the result of interpreting the object as an instance of '<em>Stereotype Matcher Advice Configuration</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Stereotype Matcher Advice Configuration</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseStereotypeMatcherAdviceConfiguration(StereotypeMatcherAdviceConfiguration object) {
+ return null;
+ }
+
+ /**
* Returns the result of interpreting the object as an instance of '<em>Configuration Element</em>'.
* <!-- begin-user-doc -->
* This implementation returns null;
@@ -140,6 +170,51 @@ public class StereotypeApplicationMatcherSwitch<T> extends Switch<T> {
}
/**
+ * Returns the result of interpreting the object as an instance of '<em>Advice Configuration</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Advice Configuration</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAdviceConfiguration(AdviceConfiguration object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Identified Configuration</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Identified Configuration</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseIdentifiedConfiguration(IdentifiedConfiguration object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Abstract Advice Binding Configuration</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Abstract Advice Binding Configuration</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAbstractAdviceBindingConfiguration(AbstractAdviceBindingConfiguration object) {
+ return null;
+ }
+
+ /**
* Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
* <!-- begin-user-doc -->
* This implementation returns null;
diff --git a/plugins/uml/org.eclipse.papyrus.uml.types.core/src/org/eclipse/papyrus/uml/types/core/matchers/stereotype/StereotypeApplicationMatcher.java b/plugins/uml/org.eclipse.papyrus.uml.types.core/src/org/eclipse/papyrus/uml/types/core/matchers/stereotype/StereotypeApplicationMatcher.java
index 285e1d2d236..edf9be6df20 100644
--- a/plugins/uml/org.eclipse.papyrus.uml.types.core/src/org/eclipse/papyrus/uml/types/core/matchers/stereotype/StereotypeApplicationMatcher.java
+++ b/plugins/uml/org.eclipse.papyrus.uml.types.core/src/org/eclipse/papyrus/uml/types/core/matchers/stereotype/StereotypeApplicationMatcher.java
@@ -1,5 +1,5 @@
/*****************************************************************************
- * Copyright (c) 2014 CEA LIST.
+ * Copyright (c) 2014, 2020 CEA LIST, 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 2.0
@@ -10,17 +10,18 @@
*
* Contributors:
* CEA LIST - Initial API and implementation
+ * Christian W. Damus - bug 568853
*
*****************************************************************************/
package org.eclipse.papyrus.uml.types.core.matchers.stereotype;
-import java.util.ArrayList;
+import java.util.HashSet;
import java.util.List;
+import java.util.Set;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.gmf.runtime.emf.type.core.IElementMatcher;
import org.eclipse.uml2.uml.Element;
-import org.eclipse.uml2.uml.Model;
import org.eclipse.uml2.uml.Profile;
@@ -38,12 +39,18 @@ public class StereotypeApplicationMatcher implements IElementMatcher {
}
+ @Override
public boolean matches(EObject eObject) {
if (!(eObject instanceof Element)) {
return false;
}
Element element = (Element) eObject;
+
+ if (profileUri != null && !isProfileApplied(element, profileUri)) {
+ return false;
+ }
+
if (element.getAppliedStereotypes().isEmpty()) {
return false;
}
@@ -54,22 +61,6 @@ public class StereotypeApplicationMatcher implements IElementMatcher {
}
}
- if (profileUri != null) {
- Model model = element.getModel();
- if (model == null) {
- return false;
- }
-
- List<String> appliedProfileByUri = new ArrayList<String>();
- for (Profile appliedProfile : model.getAllAppliedProfiles()) {
- appliedProfileByUri.add(appliedProfile.getURI());
- }
-
- if (!appliedProfileByUri.contains(profileUri)) {
- return false;
- }
-
- }
return true;
}
@@ -82,4 +73,18 @@ public class StereotypeApplicationMatcher implements IElementMatcher {
this.stereotypesQualifiedNames = stereotypeQualifiedName;
}
+ public static boolean isProfileApplied(Element element, String profileURI) {
+ org.eclipse.uml2.uml.Package package_ = element.getNearestPackage();
+ if (package_ == null) {
+ return false;
+ }
+
+ Set<String> appliedProfileByURI = new HashSet<>();
+ for (Profile appliedProfile : package_.getAllAppliedProfiles()) {
+ appliedProfileByURI.add(appliedProfile.getURI());
+ }
+
+ return appliedProfileByURI.contains(profileURI);
+ }
+
}
diff --git a/plugins/uml/org.eclipse.papyrus.uml.types.core/src/org/eclipse/papyrus/uml/types/core/matchers/stereotype/StereotypeMatcherAdviceAdviceFactory.java b/plugins/uml/org.eclipse.papyrus.uml.types.core/src/org/eclipse/papyrus/uml/types/core/matchers/stereotype/StereotypeMatcherAdviceAdviceFactory.java
new file mode 100644
index 00000000000..fcdfb17e356
--- /dev/null
+++ b/plugins/uml/org.eclipse.papyrus.uml.types.core/src/org/eclipse/papyrus/uml/types/core/matchers/stereotype/StereotypeMatcherAdviceAdviceFactory.java
@@ -0,0 +1,40 @@
+/*****************************************************************************
+ * Copyright (c) 2020 Christian W. Damus, CEA LIST, and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package org.eclipse.papyrus.uml.types.core.matchers.stereotype;
+
+import org.eclipse.gmf.runtime.emf.type.core.edithelper.IEditHelperAdvice;
+import org.eclipse.papyrus.infra.types.AbstractAdviceBindingConfiguration;
+import org.eclipse.papyrus.infra.types.core.factories.impl.AbstractAdviceBindingFactory;
+import org.eclipse.papyrus.infra.types.core.impl.NullEditHelperAdvice;
+
+/**
+ * Advice factory for advice described by the combination stereotype matcher and advice configuration.
+ */
+public class StereotypeMatcherAdviceAdviceFactory extends AbstractAdviceBindingFactory<AbstractAdviceBindingConfiguration> {
+
+ @Override
+ public AbstractAdviceBindingConfiguration createAdviceBindingConfiguration() {
+ return StereotypeApplicationMatcherFactory.eINSTANCE.createStereotypeMatcherAdviceConfiguration();
+ }
+
+ @Override
+ protected IEditHelperAdvice getEditHelperAdvice(AbstractAdviceBindingConfiguration adviceConfiguration) {
+ return (adviceConfiguration instanceof StereotypeMatcherAdviceConfiguration)
+ ? new StereotypeMatcherEditHelperAdvice((StereotypeMatcherAdviceConfiguration) adviceConfiguration)
+ : NullEditHelperAdvice.getInstance();
+ }
+
+}
diff --git a/plugins/uml/org.eclipse.papyrus.uml.types.core/src/org/eclipse/papyrus/uml/types/core/matchers/stereotype/StereotypeMatcherEditHelperAdvice.java b/plugins/uml/org.eclipse.papyrus.uml.types.core/src/org/eclipse/papyrus/uml/types/core/matchers/stereotype/StereotypeMatcherEditHelperAdvice.java
new file mode 100644
index 00000000000..b26be250804
--- /dev/null
+++ b/plugins/uml/org.eclipse.papyrus.uml.types.core/src/org/eclipse/papyrus/uml/types/core/matchers/stereotype/StereotypeMatcherEditHelperAdvice.java
@@ -0,0 +1,137 @@
+/*****************************************************************************
+ * Copyright (c) 2020 Christian W. Damus, CEA LIST, and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Christian W. Damus - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.uml.types.core.matchers.stereotype;
+
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.gmf.runtime.common.core.command.ICommand;
+import org.eclipse.gmf.runtime.emf.type.core.edithelper.AbstractEditHelperAdvice;
+import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
+import org.eclipse.gmf.runtime.emf.type.core.requests.IEditCommandRequest;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.papyrus.infra.services.edit.service.ElementEditServiceUtils;
+import org.eclipse.papyrus.infra.services.edit.service.IElementEditService;
+import org.eclipse.papyrus.infra.services.edit.utils.RequestParameterConstants;
+import org.eclipse.papyrus.uml.tools.utils.NamedElementUtil;
+import org.eclipse.papyrus.uml.types.core.Activator;
+import org.eclipse.papyrus.uml.types.core.requests.ApplyStereotypeRequest;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.Stereotype;
+
+/**
+ * An advice that applies the stereotype(s) specified by a stereotype application matcher.
+ */
+public class StereotypeMatcherEditHelperAdvice extends AbstractEditHelperAdvice {
+
+
+ protected StereotypeApplicationMatcherConfiguration configuration;
+
+
+ public StereotypeMatcherEditHelperAdvice(StereotypeApplicationMatcherConfiguration configuration) {
+ this.configuration = configuration;
+ }
+
+ @Override
+ public boolean approveRequest(IEditCommandRequest request) {
+ if (request instanceof CreateElementRequest) {
+ CreateElementRequest createElement = (CreateElementRequest) request;
+
+ if (configuration == null) {
+ return false;
+ }
+
+ if (!(createElement.getContainer() instanceof Element)) {
+ return false;
+ }
+
+ Element container = (Element) createElement.getContainer();
+ Package nearestPackage = container.getNearestPackage();
+ if (nearestPackage == null) {
+ return false;
+ }
+
+ String profileURI = configuration.getProfileUri();
+ if (profileURI == null || !StereotypeApplicationMatcher.isProfileApplied(container, profileURI)) {
+ // If the profile is not applied, then we cannot apply the stereotypes
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+ @Override
+ public void configureRequest(final IEditCommandRequest request) {
+ if (!(request instanceof ConfigureRequest)) {
+ return;
+ }
+
+ // Use the last stereotype for the name to set, similar to the ApplyStereotypeAdvice
+ List<String> stereotypeQNames = configuration.getStereotypesQualifiedNames();
+ if (!stereotypeQNames.isEmpty()) {
+ request.setParameter(RequestParameterConstants.BASE_NAME_TO_SET,
+ NamedElementUtil.getNameFromQualifiedName(stereotypeQNames.get(stereotypeQNames.size() - 1)));
+ }
+ }
+
+ @Override
+ protected ICommand getAfterConfigureCommand(ConfigureRequest request) {
+ ICommand result = null;
+
+ if (configuration == null) {
+ return result;
+ }
+
+ EObject elementToConfigure = request.getElementToConfigure();
+ if (!(elementToConfigure instanceof Element)) {
+ return result;
+ }
+
+ TransactionalEditingDomain editingDomain = request.getEditingDomain();
+ if (editingDomain == null) {
+ return result;
+ }
+
+ IElementEditService service = ElementEditServiceUtils.getCommandProvider(elementToConfigure);
+ if (service == null) {
+ Activator.log.error(NLS.bind("Cannot get edit service from element: {0}.", elementToConfigure), null); //$NON-NLS-1$
+ return result;
+ }
+
+ for (String next : configuration.getStereotypesQualifiedNames()) {
+ Stereotype stereotype = ((Element) elementToConfigure).getApplicableStereotype(next);
+ if (stereotype != null) {
+ ICommand applyStereotypeCommand = service.getEditCommand(new ApplyStereotypeRequest((Element) elementToConfigure, stereotype, editingDomain));
+
+ if (result == null) {
+ result = applyStereotypeCommand;
+ } else {
+ result = result.compose(applyStereotypeCommand);
+ }
+ }
+
+ }
+
+ if (result != null) {
+ result = result.reduce();
+ }
+
+ return result;
+ }
+
+}

Back to the top