Smell 'Speculative Generality Interface' added
diff --git a/org.eclipse.emf.refactor.smells.uml24.henshin/.settings/org.eclipse.core.resources.prefs b/org.eclipse.emf.refactor.smells.uml24.henshin/.settings/org.eclipse.core.resources.prefs
index 64f1b16..2613848 100644
--- a/org.eclipse.emf.refactor.smells.uml24.henshin/.settings/org.eclipse.core.resources.prefs
+++ b/org.eclipse.emf.refactor.smells.uml24.henshin/.settings/org.eclipse.core.resources.prefs
@@ -1,3 +1,8 @@
eclipse.preferences.version=1
+encoding//transformations/attributenameoverridden.henshin_diagram=UTF-8
+encoding//transformations/equallynamedclasses.henshin_diagram=UTF-8
encoding//transformations/nospecification.henshin=UTF-8
encoding//transformations/nospecification.henshin_diagram=UTF-8
+encoding//transformations/specializationaggregation.henshin_diagram=UTF-8
+encoding//transformations/speculativegeneralityclass.henshin_diagram=UTF-8
+encoding//transformations/speculativegeneralityinterface.henshin_diagram=UTF-8
diff --git a/org.eclipse.emf.refactor.smells.uml24.henshin/bin/org/eclipse/emf/refactor/modelsmell/NoSpecification.class b/org.eclipse.emf.refactor.smells.uml24.henshin/bin/org/eclipse/emf/refactor/smells/uml24/henshin/AttributeNameOverridden.class
similarity index 67%
copy from org.eclipse.emf.refactor.smells.uml24.henshin/bin/org/eclipse/emf/refactor/modelsmell/NoSpecification.class
copy to org.eclipse.emf.refactor.smells.uml24.henshin/bin/org/eclipse/emf/refactor/smells/uml24/henshin/AttributeNameOverridden.class
index 7e6af84..6b05bc8 100644
--- a/org.eclipse.emf.refactor.smells.uml24.henshin/bin/org/eclipse/emf/refactor/modelsmell/NoSpecification.class
+++ b/org.eclipse.emf.refactor.smells.uml24.henshin/bin/org/eclipse/emf/refactor/smells/uml24/henshin/AttributeNameOverridden.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.smells.uml24.henshin/bin/org/eclipse/emf/refactor/modelsmell/NoSpecification.class b/org.eclipse.emf.refactor.smells.uml24.henshin/bin/org/eclipse/emf/refactor/smells/uml24/henshin/EquallyNamedClasses.class
similarity index 67%
copy from org.eclipse.emf.refactor.smells.uml24.henshin/bin/org/eclipse/emf/refactor/modelsmell/NoSpecification.class
copy to org.eclipse.emf.refactor.smells.uml24.henshin/bin/org/eclipse/emf/refactor/smells/uml24/henshin/EquallyNamedClasses.class
index 7e6af84..cf75665 100644
--- a/org.eclipse.emf.refactor.smells.uml24.henshin/bin/org/eclipse/emf/refactor/modelsmell/NoSpecification.class
+++ b/org.eclipse.emf.refactor.smells.uml24.henshin/bin/org/eclipse/emf/refactor/smells/uml24/henshin/EquallyNamedClasses.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.smells.uml24.henshin/bin/org/eclipse/emf/refactor/modelsmell/NoSpecification.class b/org.eclipse.emf.refactor.smells.uml24.henshin/bin/org/eclipse/emf/refactor/smells/uml24/henshin/NoSpecification.class
similarity index 71%
rename from org.eclipse.emf.refactor.smells.uml24.henshin/bin/org/eclipse/emf/refactor/modelsmell/NoSpecification.class
rename to org.eclipse.emf.refactor.smells.uml24.henshin/bin/org/eclipse/emf/refactor/smells/uml24/henshin/NoSpecification.class
index 7e6af84..0ee889b 100644
--- a/org.eclipse.emf.refactor.smells.uml24.henshin/bin/org/eclipse/emf/refactor/modelsmell/NoSpecification.class
+++ b/org.eclipse.emf.refactor.smells.uml24.henshin/bin/org/eclipse/emf/refactor/smells/uml24/henshin/NoSpecification.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.smells.uml24.henshin/bin/org/eclipse/emf/refactor/modelsmell/NoSpecification.class b/org.eclipse.emf.refactor.smells.uml24.henshin/bin/org/eclipse/emf/refactor/smells/uml24/henshin/SpecializationAggregation.class
similarity index 66%
copy from org.eclipse.emf.refactor.smells.uml24.henshin/bin/org/eclipse/emf/refactor/modelsmell/NoSpecification.class
copy to org.eclipse.emf.refactor.smells.uml24.henshin/bin/org/eclipse/emf/refactor/smells/uml24/henshin/SpecializationAggregation.class
index 7e6af84..c4fbec7 100644
--- a/org.eclipse.emf.refactor.smells.uml24.henshin/bin/org/eclipse/emf/refactor/modelsmell/NoSpecification.class
+++ b/org.eclipse.emf.refactor.smells.uml24.henshin/bin/org/eclipse/emf/refactor/smells/uml24/henshin/SpecializationAggregation.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.smells.uml24.henshin/bin/org/eclipse/emf/refactor/modelsmell/NoSpecification.class b/org.eclipse.emf.refactor.smells.uml24.henshin/bin/org/eclipse/emf/refactor/smells/uml24/henshin/SpeculativeGeneralityClass.class
similarity index 66%
copy from org.eclipse.emf.refactor.smells.uml24.henshin/bin/org/eclipse/emf/refactor/modelsmell/NoSpecification.class
copy to org.eclipse.emf.refactor.smells.uml24.henshin/bin/org/eclipse/emf/refactor/smells/uml24/henshin/SpeculativeGeneralityClass.class
index 7e6af84..1f4479f 100644
--- a/org.eclipse.emf.refactor.smells.uml24.henshin/bin/org/eclipse/emf/refactor/modelsmell/NoSpecification.class
+++ b/org.eclipse.emf.refactor.smells.uml24.henshin/bin/org/eclipse/emf/refactor/smells/uml24/henshin/SpeculativeGeneralityClass.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.smells.uml24.henshin/bin/org/eclipse/emf/refactor/modelsmell/NoSpecification.class b/org.eclipse.emf.refactor.smells.uml24.henshin/bin/org/eclipse/emf/refactor/smells/uml24/henshin/SpeculativeGeneralityInterface.class
similarity index 65%
copy from org.eclipse.emf.refactor.smells.uml24.henshin/bin/org/eclipse/emf/refactor/modelsmell/NoSpecification.class
copy to org.eclipse.emf.refactor.smells.uml24.henshin/bin/org/eclipse/emf/refactor/smells/uml24/henshin/SpeculativeGeneralityInterface.class
index 7e6af84..c4c1ac3 100644
--- a/org.eclipse.emf.refactor.smells.uml24.henshin/bin/org/eclipse/emf/refactor/modelsmell/NoSpecification.class
+++ b/org.eclipse.emf.refactor.smells.uml24.henshin/bin/org/eclipse/emf/refactor/smells/uml24/henshin/SpeculativeGeneralityInterface.class
Binary files differ
diff --git a/org.eclipse.emf.refactor.smells.uml24.henshin/plugin.xml b/org.eclipse.emf.refactor.smells.uml24.henshin/plugin.xml
index 63d4ab8..e82b323 100644
--- a/org.eclipse.emf.refactor.smells.uml24.henshin/plugin.xml
+++ b/org.eclipse.emf.refactor.smells.uml24.henshin/plugin.xml
@@ -1,6 +1,47 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<plugin>
<extension point="org.eclipse.emf.refactor.smells">
-<modelsmell id="org.eclipse.emf.refactor.smells.uml24.nospecification" modelsmell_description="The model contains an abstract Class without any concrete subclasses." modelsmell_finderclass="org.eclipse.emf.refactor.modelsmell.NoSpecification" modelsmell_metamodel="http://www.eclipse.org/uml2/4.0.0/UML" modelsmell_name="No Specification"/>
+<modelsmell
+ id="org.eclipse.emf.refactor.smells.uml24.nospecification"
+ modelsmell_description="The model contains an abstract Class without any concrete subclasses."
+ modelsmell_finderclass="org.eclipse.emf.refactor.smells.uml24.henshin.NoSpecification"
+ modelsmell_metamodel="http://www.eclipse.org/uml2/4.0.0/UML"
+ modelsmell_name="No Specification">
+</modelsmell>
+<modelsmell
+ id="org.eclipse.emf.refactor.smells.uml24.henshin.attributenameoverridden"
+ modelsmell_description="The model contains an attribute with the same name as an inherited and redefined attribute."
+ modelsmell_finderclass="org.eclipse.emf.refactor.smells.uml24.henshin.AttributeNameOverridden"
+ modelsmell_metamodel="http://www.eclipse.org/uml2/4.0.0/UML"
+ modelsmell_name="Attribute Name Overridden">
+</modelsmell>
+<modelsmell
+ id="org.eclipse.emf.refactor.smells.uml24.henshin.equallynamedclasses"
+ modelsmell_description="The model contains two classes (in different packages) having the same name."
+ modelsmell_finderclass="org.eclipse.emf.refactor.smells.uml24.henshin.EquallyNamedClasses"
+ modelsmell_metamodel="http://www.eclipse.org/uml2/4.0.0/UML"
+ modelsmell_name="Equally Named Classes">
+</modelsmell>
+<modelsmell
+ id="org.eclipse.emf.refactor.smells.uml24.henshin.specializationaggregation"
+ modelsmell_description="The model contains a generalization hierarchy between associations."
+ modelsmell_finderclass="org.eclipse.emf.refactor.smells.uml24.henshin.SpecializationAggregation"
+ modelsmell_metamodel="http://www.eclipse.org/uml2/4.0.0/UML"
+ modelsmell_name="Specialization Aggregation">
+</modelsmell>
+<modelsmell
+ id="org.eclipse.emf.refactor.smells.uml24.henshin.speculativegeneralityclass"
+ modelsmell_description="The model contains an abstract class that is inherited by one single class only."
+ modelsmell_finderclass="org.eclipse.emf.refactor.smells.uml24.henshin.SpeculativeGeneralityClass"
+ modelsmell_metamodel="http://www.eclipse.org/uml2/4.0.0/UML"
+ modelsmell_name="Speculative Generality Class">
+</modelsmell>
+<modelsmell
+ id="org.eclipse.emf.refactor.smells.uml24.henshin.speculativegeneralityinterface"
+ modelsmell_description="The model contains an interface that is implemented by one single class only."
+ modelsmell_finderclass="org.eclipse.emf.refactor.smells.uml24.henshin.SpeculativeGeneralityInterface"
+ modelsmell_metamodel="http://www.eclipse.org/uml2/4.0.0/UML"
+ modelsmell_name="Speculative Generality Interface">
+</modelsmell>
</extension>
</plugin>
diff --git a/org.eclipse.emf.refactor.smells.uml24.henshin/src/org/eclipse/emf/refactor/modelsmell/NoSpecification.java b/org.eclipse.emf.refactor.smells.uml24.henshin/src/org/eclipse/emf/refactor/smells/uml24/henshin/AttributeNameOverridden.java
similarity index 82%
copy from org.eclipse.emf.refactor.smells.uml24.henshin/src/org/eclipse/emf/refactor/modelsmell/NoSpecification.java
copy to org.eclipse.emf.refactor.smells.uml24.henshin/src/org/eclipse/emf/refactor/smells/uml24/henshin/AttributeNameOverridden.java
index 99d22ee..66d67ed 100644
--- a/org.eclipse.emf.refactor.smells.uml24.henshin/src/org/eclipse/emf/refactor/modelsmell/NoSpecification.java
+++ b/org.eclipse.emf.refactor.smells.uml24.henshin/src/org/eclipse/emf/refactor/smells/uml24/henshin/AttributeNameOverridden.java
@@ -1,4 +1,4 @@
-package org.eclipse.emf.refactor.modelsmell;
+package org.eclipse.emf.refactor.smells.uml24.henshin;
import java.io.IOException;
import java.net.URL;
@@ -11,10 +11,10 @@
import org.eclipse.emf.refactor.smells.henshin.managers.HenshinRuntimeManager;
import org.eclipse.emf.refactor.smells.interfaces.IModelSmellFinder;
-public final class NoSpecification implements IModelSmellFinder {
+public final class AttributeNameOverridden implements IModelSmellFinder {
private final String transformationPath = "transformations/";
- private final String henshinFileName = "nospecification.henshin";
+ private final String henshinFileName = "attributenameoverridden.henshin";
@Override
public LinkedList<LinkedList<EObject>> findSmell(EObject root) {
diff --git a/org.eclipse.emf.refactor.smells.uml24.henshin/src/org/eclipse/emf/refactor/modelsmell/NoSpecification.java b/org.eclipse.emf.refactor.smells.uml24.henshin/src/org/eclipse/emf/refactor/smells/uml24/henshin/EquallyNamedClasses.java
similarity index 83%
copy from org.eclipse.emf.refactor.smells.uml24.henshin/src/org/eclipse/emf/refactor/modelsmell/NoSpecification.java
copy to org.eclipse.emf.refactor.smells.uml24.henshin/src/org/eclipse/emf/refactor/smells/uml24/henshin/EquallyNamedClasses.java
index 99d22ee..0630a3d 100644
--- a/org.eclipse.emf.refactor.smells.uml24.henshin/src/org/eclipse/emf/refactor/modelsmell/NoSpecification.java
+++ b/org.eclipse.emf.refactor.smells.uml24.henshin/src/org/eclipse/emf/refactor/smells/uml24/henshin/EquallyNamedClasses.java
@@ -1,4 +1,4 @@
-package org.eclipse.emf.refactor.modelsmell;
+package org.eclipse.emf.refactor.smells.uml24.henshin;
import java.io.IOException;
import java.net.URL;
@@ -11,10 +11,10 @@
import org.eclipse.emf.refactor.smells.henshin.managers.HenshinRuntimeManager;
import org.eclipse.emf.refactor.smells.interfaces.IModelSmellFinder;
-public final class NoSpecification implements IModelSmellFinder {
+public final class EquallyNamedClasses implements IModelSmellFinder {
private final String transformationPath = "transformations/";
- private final String henshinFileName = "nospecification.henshin";
+ private final String henshinFileName = "equallynamedclasses.henshin";
@Override
public LinkedList<LinkedList<EObject>> findSmell(EObject root) {
diff --git a/org.eclipse.emf.refactor.smells.uml24.henshin/src/org/eclipse/emf/refactor/modelsmell/NoSpecification.java b/org.eclipse.emf.refactor.smells.uml24.henshin/src/org/eclipse/emf/refactor/smells/uml24/henshin/NoSpecification.java
similarity index 95%
rename from org.eclipse.emf.refactor.smells.uml24.henshin/src/org/eclipse/emf/refactor/modelsmell/NoSpecification.java
rename to org.eclipse.emf.refactor.smells.uml24.henshin/src/org/eclipse/emf/refactor/smells/uml24/henshin/NoSpecification.java
index 99d22ee..bbcbf5d 100644
--- a/org.eclipse.emf.refactor.smells.uml24.henshin/src/org/eclipse/emf/refactor/modelsmell/NoSpecification.java
+++ b/org.eclipse.emf.refactor.smells.uml24.henshin/src/org/eclipse/emf/refactor/smells/uml24/henshin/NoSpecification.java
@@ -1,4 +1,4 @@
-package org.eclipse.emf.refactor.modelsmell;
+package org.eclipse.emf.refactor.smells.uml24.henshin;
import java.io.IOException;
import java.net.URL;
diff --git a/org.eclipse.emf.refactor.smells.uml24.henshin/src/org/eclipse/emf/refactor/modelsmell/NoSpecification.java b/org.eclipse.emf.refactor.smells.uml24.henshin/src/org/eclipse/emf/refactor/smells/uml24/henshin/SpecializationAggregation.java
similarity index 82%
copy from org.eclipse.emf.refactor.smells.uml24.henshin/src/org/eclipse/emf/refactor/modelsmell/NoSpecification.java
copy to org.eclipse.emf.refactor.smells.uml24.henshin/src/org/eclipse/emf/refactor/smells/uml24/henshin/SpecializationAggregation.java
index 99d22ee..3a0e994 100644
--- a/org.eclipse.emf.refactor.smells.uml24.henshin/src/org/eclipse/emf/refactor/modelsmell/NoSpecification.java
+++ b/org.eclipse.emf.refactor.smells.uml24.henshin/src/org/eclipse/emf/refactor/smells/uml24/henshin/SpecializationAggregation.java
@@ -1,4 +1,4 @@
-package org.eclipse.emf.refactor.modelsmell;
+package org.eclipse.emf.refactor.smells.uml24.henshin;
import java.io.IOException;
import java.net.URL;
@@ -11,10 +11,10 @@
import org.eclipse.emf.refactor.smells.henshin.managers.HenshinRuntimeManager;
import org.eclipse.emf.refactor.smells.interfaces.IModelSmellFinder;
-public final class NoSpecification implements IModelSmellFinder {
+public final class SpecializationAggregation implements IModelSmellFinder {
private final String transformationPath = "transformations/";
- private final String henshinFileName = "nospecification.henshin";
+ private final String henshinFileName = "specializationaggregation.henshin";
@Override
public LinkedList<LinkedList<EObject>> findSmell(EObject root) {
diff --git a/org.eclipse.emf.refactor.smells.uml24.henshin/src/org/eclipse/emf/refactor/modelsmell/NoSpecification.java b/org.eclipse.emf.refactor.smells.uml24.henshin/src/org/eclipse/emf/refactor/smells/uml24/henshin/SpeculativeGeneralityClass.java
similarity index 82%
copy from org.eclipse.emf.refactor.smells.uml24.henshin/src/org/eclipse/emf/refactor/modelsmell/NoSpecification.java
copy to org.eclipse.emf.refactor.smells.uml24.henshin/src/org/eclipse/emf/refactor/smells/uml24/henshin/SpeculativeGeneralityClass.java
index 99d22ee..338fd2d 100644
--- a/org.eclipse.emf.refactor.smells.uml24.henshin/src/org/eclipse/emf/refactor/modelsmell/NoSpecification.java
+++ b/org.eclipse.emf.refactor.smells.uml24.henshin/src/org/eclipse/emf/refactor/smells/uml24/henshin/SpeculativeGeneralityClass.java
@@ -1,4 +1,4 @@
-package org.eclipse.emf.refactor.modelsmell;
+package org.eclipse.emf.refactor.smells.uml24.henshin;
import java.io.IOException;
import java.net.URL;
@@ -11,10 +11,10 @@
import org.eclipse.emf.refactor.smells.henshin.managers.HenshinRuntimeManager;
import org.eclipse.emf.refactor.smells.interfaces.IModelSmellFinder;
-public final class NoSpecification implements IModelSmellFinder {
+public final class SpeculativeGeneralityClass implements IModelSmellFinder {
private final String transformationPath = "transformations/";
- private final String henshinFileName = "nospecification.henshin";
+ private final String henshinFileName = "speculativegeneralityclass.henshin";
@Override
public LinkedList<LinkedList<EObject>> findSmell(EObject root) {
diff --git a/org.eclipse.emf.refactor.smells.uml24.henshin/src/org/eclipse/emf/refactor/modelsmell/NoSpecification.java b/org.eclipse.emf.refactor.smells.uml24.henshin/src/org/eclipse/emf/refactor/smells/uml24/henshin/SpeculativeGeneralityInterface.java
similarity index 82%
copy from org.eclipse.emf.refactor.smells.uml24.henshin/src/org/eclipse/emf/refactor/modelsmell/NoSpecification.java
copy to org.eclipse.emf.refactor.smells.uml24.henshin/src/org/eclipse/emf/refactor/smells/uml24/henshin/SpeculativeGeneralityInterface.java
index 99d22ee..555e2a3 100644
--- a/org.eclipse.emf.refactor.smells.uml24.henshin/src/org/eclipse/emf/refactor/modelsmell/NoSpecification.java
+++ b/org.eclipse.emf.refactor.smells.uml24.henshin/src/org/eclipse/emf/refactor/smells/uml24/henshin/SpeculativeGeneralityInterface.java
@@ -1,4 +1,4 @@
-package org.eclipse.emf.refactor.modelsmell;
+package org.eclipse.emf.refactor.smells.uml24.henshin;
import java.io.IOException;
import java.net.URL;
@@ -11,10 +11,10 @@
import org.eclipse.emf.refactor.smells.henshin.managers.HenshinRuntimeManager;
import org.eclipse.emf.refactor.smells.interfaces.IModelSmellFinder;
-public final class NoSpecification implements IModelSmellFinder {
+public final class SpeculativeGeneralityInterface implements IModelSmellFinder {
private final String transformationPath = "transformations/";
- private final String henshinFileName = "nospecification.henshin";
+ private final String henshinFileName = "speculativegeneralityinterface.henshin";
@Override
public LinkedList<LinkedList<EObject>> findSmell(EObject root) {
diff --git a/org.eclipse.emf.refactor.smells.uml24.henshin/transformations/attributenameoverridden.henshin b/org.eclipse.emf.refactor.smells.uml24.henshin/transformations/attributenameoverridden.henshin
new file mode 100644
index 0000000..8af8fff
--- /dev/null
+++ b/org.eclipse.emf.refactor.smells.uml24.henshin/transformations/attributenameoverridden.henshin
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<henshin:Module xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:henshin="http://www.eclipse.org/emf/2011/Henshin">
+ <imports href="http://www.eclipse.org/uml2/4.0.0/UML#/"/>
+ <units xsi:type="henshin:Rule" name="mainRule">
+ <parameters name="an"/>
+ <lhs name="Lhs">
+ <nodes>
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Property"/>
+ <attributes value="an">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//NamedElement/name"/>
+ </attributes>
+ </nodes>
+ <nodes>
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Property"/>
+ <attributes value="an">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//NamedElement/name"/>
+ </attributes>
+ </nodes>
+ <formula xsi:type="henshin:NestedCondition" xmi:id="_2eeKgKpyEeKxY8S7jup9FQ">
+ <conclusion xmi:id="_2eeKgapyEeKxY8S7jup9FQ">
+ <nodes xmi:id="_2eeKgqpyEeKxY8S7jup9FQ" incoming="_EYcyEKpzEeKxY8S7jup9FQ" outgoing="_iPAdAKpxEeKxY8S7jup9FQ">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Property"/>
+ <attributes xmi:id="_2eeKg6pyEeKxY8S7jup9FQ" value="an">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//NamedElement/name"/>
+ </attributes>
+ </nodes>
+ <nodes xmi:id="_2eeKhapyEeKxY8S7jup9FQ" incoming="_iPAdAKpxEeKxY8S7jup9FQ _8E948KpyEeKxY8S7jup9FQ">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Property"/>
+ <attributes xmi:id="_2eeKhqpyEeKxY8S7jup9FQ" value="an">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//NamedElement/name"/>
+ </attributes>
+ </nodes>
+ <nodes xmi:id="_6j-AQKpyEeKxY8S7jup9FQ" outgoing="_8E948KpyEeKxY8S7jup9FQ">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier"/>
+ </nodes>
+ <nodes xmi:id="_Dfw2kKpzEeKxY8S7jup9FQ" outgoing="_EYcyEKpzEeKxY8S7jup9FQ">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier"/>
+ </nodes>
+ <edges xmi:id="_iPAdAKpxEeKxY8S7jup9FQ" source="_2eeKgqpyEeKxY8S7jup9FQ" target="_2eeKhapyEeKxY8S7jup9FQ">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//RedefinableElement/redefinedElement"/>
+ </edges>
+ <edges xmi:id="_8E948KpyEeKxY8S7jup9FQ" source="_6j-AQKpyEeKxY8S7jup9FQ" target="_2eeKhapyEeKxY8S7jup9FQ">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier/attribute"/>
+ </edges>
+ <edges xmi:id="_EYcyEKpzEeKxY8S7jup9FQ" source="_Dfw2kKpzEeKxY8S7jup9FQ" target="_2eeKgqpyEeKxY8S7jup9FQ">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier/attribute"/>
+ </edges>
+ </conclusion>
+ <mappings xmi:id="_2eeKhKpyEeKxY8S7jup9FQ" origin="//@units.0/@lhs/@nodes.0" image="_2eeKgqpyEeKxY8S7jup9FQ"/>
+ <mappings xmi:id="_2eeKh6pyEeKxY8S7jup9FQ" origin="//@units.0/@lhs/@nodes.1" image="_2eeKhapyEeKxY8S7jup9FQ"/>
+ </formula>
+ </lhs>
+ <rhs name="Rhs">
+ <nodes>
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Property"/>
+ <attributes value="an">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//NamedElement/name"/>
+ </attributes>
+ </nodes>
+ <nodes>
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Property"/>
+ <attributes value="an">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//NamedElement/name"/>
+ </attributes>
+ </nodes>
+ </rhs>
+ <mappings origin="//@units.0/@lhs/@nodes.0" image="//@units.0/@rhs/@nodes.0"/>
+ <mappings origin="//@units.0/@lhs/@nodes.1" image="//@units.0/@rhs/@nodes.1"/>
+ </units>
+</henshin:Module>
diff --git a/org.eclipse.emf.refactor.smells.uml24.henshin/transformations/attributenameoverridden.henshin_diagram b/org.eclipse.emf.refactor.smells.uml24.henshin/transformations/attributenameoverridden.henshin_diagram
new file mode 100644
index 0000000..57dc80a
--- /dev/null
+++ b/org.eclipse.emf.refactor.smells.uml24.henshin/transformations/attributenameoverridden.henshin_diagram
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:henshin="http://www.eclipse.org/emf/2011/Henshin" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmi:id="_UPIicKppEeKxY8S7jup9FQ" type="Henshin" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_UT5GoKppEeKxY8S7jup9FQ" type="2001" fontName="Segoe UI" italic="true" fillColor="16114135" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ATfBc6prEeKxY8S7jup9FQ" source="defaultAction">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ATfBdKprEeKxY8S7jup9FQ" key="value" value="require"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_UT5GoqppEeKxY8S7jup9FQ" type="5001"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_UT5Go6ppEeKxY8S7jup9FQ" type="7001">
+ <children xmi:type="notation:Shape" xmi:id="_Cpl9M6prEeKxY8S7jup9FQ" type="3001" fontName="Segoe UI">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Cpl9NaprEeKxY8S7jup9FQ" type="5002"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Cpl9NqprEeKxY8S7jup9FQ" type="5003"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Cpl9N6prEeKxY8S7jup9FQ" type="7002">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Cpl9OKprEeKxY8S7jup9FQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Cpl9OaprEeKxY8S7jup9FQ"/>
+ </children>
+ <element xmi:type="henshin:Node" href="attributenameoverridden.henshin#//@units.0/@lhs/@nodes.0"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Cpl9NKprEeKxY8S7jup9FQ" x="38" y="184"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_aoJZUKpxEeKxY8S7jup9FQ" type="3001" fontName="Segoe UI">
+ <children xmi:type="notation:DecorationNode" xmi:id="_aoJZUqpxEeKxY8S7jup9FQ" type="5002"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_aoJZU6pxEeKxY8S7jup9FQ" type="5003"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_aoJZVKpxEeKxY8S7jup9FQ" type="7002">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_aoJZVapxEeKxY8S7jup9FQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_aoJZVqpxEeKxY8S7jup9FQ"/>
+ </children>
+ <element xmi:type="henshin:Node" href="attributenameoverridden.henshin#//@units.0/@lhs/@nodes.1"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aoJZUapxEeKxY8S7jup9FQ" x="38" y="26"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_6kHxQapyEeKxY8S7jup9FQ" type="3001" fontName="Segoe UI">
+ <children xmi:type="notation:DecorationNode" xmi:id="_6kHxQ6pyEeKxY8S7jup9FQ" type="5002"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_6kHxRKpyEeKxY8S7jup9FQ" type="5003"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_6kHxRapyEeKxY8S7jup9FQ" type="7002">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_6kHxRqpyEeKxY8S7jup9FQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_6kHxR6pyEeKxY8S7jup9FQ"/>
+ </children>
+ <element xmi:type="henshin:Node" href="attributenameoverridden.henshin#_6j-AQKpyEeKxY8S7jup9FQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6kHxQqpyEeKxY8S7jup9FQ" x="229" y="32"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_DgXTgKpzEeKxY8S7jup9FQ" type="3001" fontName="Segoe UI">
+ <children xmi:type="notation:DecorationNode" xmi:id="_DgXTgqpzEeKxY8S7jup9FQ" type="5002"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_DgXTg6pzEeKxY8S7jup9FQ" type="5003"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_DgXThKpzEeKxY8S7jup9FQ" type="7002">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_DgXThapzEeKxY8S7jup9FQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_DgXThqpzEeKxY8S7jup9FQ"/>
+ </children>
+ <element xmi:type="henshin:Node" href="attributenameoverridden.henshin#_Dfw2kKpzEeKxY8S7jup9FQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DgXTgapzEeKxY8S7jup9FQ" x="229" y="189"/>
+ </children>
+ </children>
+ <element xmi:type="henshin:Rule" href="attributenameoverridden.henshin#//@units.0"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UT5GoappEeKxY8S7jup9FQ" x="112" y="61" width="346" height="313"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_UPIicappEeKxY8S7jup9FQ"/>
+ <element xmi:type="henshin:Module" href="attributenameoverridden.henshin#/"/>
+ <edges xmi:type="notation:Connector" xmi:id="_iPJm8KpxEeKxY8S7jup9FQ" type="4001" source="_Cpl9M6prEeKxY8S7jup9FQ" target="_aoJZUKpxEeKxY8S7jup9FQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_iPJm86pxEeKxY8S7jup9FQ" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_iPJm9KpxEeKxY8S7jup9FQ" x="-13" y="68"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_iPJm9apxEeKxY8S7jup9FQ" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_iPJm9qpxEeKxY8S7jup9FQ" x="10" y="44"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_iPJm8apxEeKxY8S7jup9FQ" fontName="Segoe UI"/>
+ <element xmi:type="henshin:Edge" href="attributenameoverridden.henshin#_iPAdAKpxEeKxY8S7jup9FQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_iPJm8qpxEeKxY8S7jup9FQ" points="[-4, -14, 38, 153]$[-45, -198, -3, -31]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_iPJm96pxEeKxY8S7jup9FQ" id="(0.5376344086021505,0.2222222222222222)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_8FHp8KpyEeKxY8S7jup9FQ" type="4001" source="_6kHxQapyEeKxY8S7jup9FQ" target="_aoJZUKpxEeKxY8S7jup9FQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8FHp86pyEeKxY8S7jup9FQ" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8FHp9KpyEeKxY8S7jup9FQ" x="2" y="-17"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_8FHp9apyEeKxY8S7jup9FQ" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8FHp9qpyEeKxY8S7jup9FQ" y="15"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_8FHp8apyEeKxY8S7jup9FQ" fontName="Segoe UI"/>
+ <element xmi:type="henshin:Edge" href="attributenameoverridden.henshin#_8E948KpyEeKxY8S7jup9FQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_8FHp8qpyEeKxY8S7jup9FQ" points="[-38, -3, 177, 9]$[-168, -12, 47, 0]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_EYl8AKpzEeKxY8S7jup9FQ" type="4001" source="_DgXTgKpzEeKxY8S7jup9FQ" target="_Cpl9M6prEeKxY8S7jup9FQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_EYl8A6pzEeKxY8S7jup9FQ" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_EYl8BKpzEeKxY8S7jup9FQ" x="2" y="-16"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_EYl8BapzEeKxY8S7jup9FQ" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_EYl8BqpzEeKxY8S7jup9FQ" y="16"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_EYl8AapzEeKxY8S7jup9FQ" fontName="Segoe UI"/>
+ <element xmi:type="henshin:Edge" href="attributenameoverridden.henshin#_EYcyEKpzEeKxY8S7jup9FQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_EYl8AqpzEeKxY8S7jup9FQ" points="[-3, 0, 145, -6]$[-144, 38, 4, 32]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_EYl8B6pzEeKxY8S7jup9FQ" id="(0.04477611940298507,0.38461538461538464)"/>
+ </edges>
+</notation:Diagram>
diff --git a/org.eclipse.emf.refactor.smells.uml24.henshin/transformations/equallynamedclasses.henshin b/org.eclipse.emf.refactor.smells.uml24.henshin/transformations/equallynamedclasses.henshin
new file mode 100644
index 0000000..d158f1b
--- /dev/null
+++ b/org.eclipse.emf.refactor.smells.uml24.henshin/transformations/equallynamedclasses.henshin
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<henshin:Module xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:henshin="http://www.eclipse.org/emf/2011/Henshin" xmi:id="_74pXYKp2EeKxY8S7jup9FQ">
+ <imports href="http://www.eclipse.org/uml2/4.0.0/UML#/"/>
+ <units xsi:type="henshin:Rule" xmi:id="_74p-cKp2EeKxY8S7jup9FQ" name="mainRule">
+ <parameters xmi:id="_74p-cap2EeKxY8S7jup9FQ" name="cn"/>
+ <lhs xmi:id="_74p-cqp2EeKxY8S7jup9FQ" name="Lhs">
+ <nodes xmi:id="_fPCdMKp3EeKxY8S7jup9FQ">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Class"/>
+ <attributes xmi:id="_l6Oi0Kp3EeKxY8S7jup9FQ" value="cn">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//NamedElement/name"/>
+ </attributes>
+ </nodes>
+ <nodes xmi:id="_gJeFIKp3EeKxY8S7jup9FQ">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Class"/>
+ <attributes xmi:id="_mMzgkKp3EeKxY8S7jup9FQ" value="cn">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//NamedElement/name"/>
+ </attributes>
+ </nodes>
+ <formula xsi:type="henshin:NestedCondition" xmi:id="_c5EO4Kp4EeKxY8S7jup9FQ">
+ <conclusion xmi:id="_c5EO4ap4EeKxY8S7jup9FQ">
+ <nodes xmi:id="_c5GEEKp4EeKxY8S7jup9FQ" incoming="_yUDmQKp3EeKxY8S7jup9FQ">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Class"/>
+ <attributes xmi:id="_c5GEEap4EeKxY8S7jup9FQ" value="cn">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//NamedElement/name"/>
+ </attributes>
+ </nodes>
+ <nodes xmi:id="_kRPy0Kp3EeKxY8S7jup9FQ" outgoing="_yUDmQKp3EeKxY8S7jup9FQ">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package"/>
+ </nodes>
+ <nodes xmi:id="_dwHysKp4EeKxY8S7jup9FQ" incoming="_01TbAKp3EeKxY8S7jup9FQ">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Class"/>
+ <attributes xmi:id="_dwHysap4EeKxY8S7jup9FQ" value="cn">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//NamedElement/name"/>
+ </attributes>
+ </nodes>
+ <nodes xmi:id="_lIUkwKp3EeKxY8S7jup9FQ" outgoing="_01TbAKp3EeKxY8S7jup9FQ">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package"/>
+ </nodes>
+ <edges xmi:id="_yUDmQKp3EeKxY8S7jup9FQ" source="_kRPy0Kp3EeKxY8S7jup9FQ" target="_c5GEEKp4EeKxY8S7jup9FQ">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package/packagedElement"/>
+ </edges>
+ <edges xmi:id="_01TbAKp3EeKxY8S7jup9FQ" source="_lIUkwKp3EeKxY8S7jup9FQ" target="_dwHysKp4EeKxY8S7jup9FQ">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Package/packagedElement"/>
+ </edges>
+ </conclusion>
+ <mappings xmi:id="_c5GrIKp4EeKxY8S7jup9FQ" origin="_fPCdMKp3EeKxY8S7jup9FQ" image="_c5GEEKp4EeKxY8S7jup9FQ"/>
+ <mappings xmi:id="_dwHysqp4EeKxY8S7jup9FQ" origin="_gJeFIKp3EeKxY8S7jup9FQ" image="_dwHysKp4EeKxY8S7jup9FQ"/>
+ </formula>
+ </lhs>
+ <rhs xmi:id="_74qlgKp2EeKxY8S7jup9FQ" name="Rhs">
+ <nodes xmi:id="_fPE5cKp3EeKxY8S7jup9FQ">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Class"/>
+ <attributes xmi:id="_l6QYAKp3EeKxY8S7jup9FQ" value="cn">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//NamedElement/name"/>
+ </attributes>
+ </nodes>
+ <nodes xmi:id="_gJesMKp3EeKxY8S7jup9FQ">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Class"/>
+ <attributes xmi:id="_mM0usKp3EeKxY8S7jup9FQ" value="cn">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//NamedElement/name"/>
+ </attributes>
+ </nodes>
+ </rhs>
+ <mappings xmi:id="_fPFggKp3EeKxY8S7jup9FQ" origin="_fPCdMKp3EeKxY8S7jup9FQ" image="_fPE5cKp3EeKxY8S7jup9FQ"/>
+ <mappings xmi:id="_gJesMap3EeKxY8S7jup9FQ" origin="_gJeFIKp3EeKxY8S7jup9FQ" image="_gJesMKp3EeKxY8S7jup9FQ"/>
+ </units>
+</henshin:Module>
diff --git a/org.eclipse.emf.refactor.smells.uml24.henshin/transformations/equallynamedclasses.henshin_diagram b/org.eclipse.emf.refactor.smells.uml24.henshin/transformations/equallynamedclasses.henshin_diagram
new file mode 100644
index 0000000..d6467e7
--- /dev/null
+++ b/org.eclipse.emf.refactor.smells.uml24.henshin/transformations/equallynamedclasses.henshin_diagram
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:henshin="http://www.eclipse.org/emf/2011/Henshin" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmi:id="_DwKGMKp3EeKxY8S7jup9FQ" type="Henshin" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_Dz8aAKp3EeKxY8S7jup9FQ" type="2001" fontName="Segoe UI" italic="true" fillColor="16114135" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fPFggap3EeKxY8S7jup9FQ" source="defaultAction">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fPFggqp3EeKxY8S7jup9FQ" key="value" value="require"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Dz8aAqp3EeKxY8S7jup9FQ" type="5001"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Dz8aA6p3EeKxY8S7jup9FQ" type="7001">
+ <children xmi:type="notation:Shape" xmi:id="_fPHVsKp3EeKxY8S7jup9FQ" type="3001" fontName="Segoe UI">
+ <children xmi:type="notation:DecorationNode" xmi:id="_fPHVsqp3EeKxY8S7jup9FQ" type="5002"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_fPHVs6p3EeKxY8S7jup9FQ" type="5003"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_fPHVtKp3EeKxY8S7jup9FQ" type="7002">
+ <children xmi:type="notation:Node" xmi:id="_l6XFsKp3EeKxY8S7jup9FQ" type="3002">
+ <element xmi:type="henshin:Attribute" href="equallynamedclasses.henshin#_l6Oi0Kp3EeKxY8S7jup9FQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_l6XFsap3EeKxY8S7jup9FQ"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_fPHVtap3EeKxY8S7jup9FQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_fPHVtqp3EeKxY8S7jup9FQ"/>
+ </children>
+ <element xmi:type="henshin:Node" href="equallynamedclasses.henshin#_fPCdMKp3EeKxY8S7jup9FQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fPHVsap3EeKxY8S7jup9FQ" x="98" y="42"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_gJghYKp3EeKxY8S7jup9FQ" type="3001" fontName="Segoe UI">
+ <children xmi:type="notation:DecorationNode" xmi:id="_gJghYqp3EeKxY8S7jup9FQ" type="5002"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_gJghY6p3EeKxY8S7jup9FQ" type="5003"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_gJghZKp3EeKxY8S7jup9FQ" type="7002">
+ <children xmi:type="notation:Node" xmi:id="_mM5AIKp3EeKxY8S7jup9FQ" type="3002">
+ <element xmi:type="henshin:Attribute" href="equallynamedclasses.henshin#_mMzgkKp3EeKxY8S7jup9FQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_mM5AIap3EeKxY8S7jup9FQ"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_gJghZap3EeKxY8S7jup9FQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_gJghZqp3EeKxY8S7jup9FQ"/>
+ </children>
+ <element xmi:type="henshin:Node" href="equallynamedclasses.henshin#_gJeFIKp3EeKxY8S7jup9FQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gJghYap3EeKxY8S7jup9FQ" x="174" y="174"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kRYVsKp3EeKxY8S7jup9FQ" type="3001" fontName="Segoe UI">
+ <children xmi:type="notation:DecorationNode" xmi:id="_kRY8wKp3EeKxY8S7jup9FQ" type="5002"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kRY8wap3EeKxY8S7jup9FQ" type="5003"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kRY8wqp3EeKxY8S7jup9FQ" type="7002">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kRY8w6p3EeKxY8S7jup9FQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kRY8xKp3EeKxY8S7jup9FQ"/>
+ </children>
+ <element xmi:type="henshin:Node" href="equallynamedclasses.henshin#_kRPy0Kp3EeKxY8S7jup9FQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kRYVsap3EeKxY8S7jup9FQ" x="335" y="52"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_lIfj4Kp3EeKxY8S7jup9FQ" type="3001" fontName="Segoe UI">
+ <children xmi:type="notation:DecorationNode" xmi:id="_lIgK8Kp3EeKxY8S7jup9FQ" type="5002"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_lIgK8ap3EeKxY8S7jup9FQ" type="5003"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_lIgK8qp3EeKxY8S7jup9FQ" type="7002">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_lIgK86p3EeKxY8S7jup9FQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_lIgK9Kp3EeKxY8S7jup9FQ"/>
+ </children>
+ <element xmi:type="henshin:Node" href="equallynamedclasses.henshin#_lIUkwKp3EeKxY8S7jup9FQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lIfj4ap3EeKxY8S7jup9FQ" x="358" y="198"/>
+ </children>
+ </children>
+ <element xmi:type="henshin:Rule" href="equallynamedclasses.henshin#_74p-cKp2EeKxY8S7jup9FQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Dz8aAap3EeKxY8S7jup9FQ" x="105" y="113" width="513" height="404"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_DwKGMap3EeKxY8S7jup9FQ"/>
+ <element xmi:type="henshin:Module" href="equallynamedclasses.henshin#_74pXYKp2EeKxY8S7jup9FQ"/>
+ <edges xmi:type="notation:Connector" xmi:id="_yUMJIKp3EeKxY8S7jup9FQ" type="4001" source="_kRYVsKp3EeKxY8S7jup9FQ" target="_fPHVsKp3EeKxY8S7jup9FQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_yUMwMKp3EeKxY8S7jup9FQ" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_yUMwMap3EeKxY8S7jup9FQ" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_yUMwMqp3EeKxY8S7jup9FQ" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_yUMwM6p3EeKxY8S7jup9FQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_yUMJIap3EeKxY8S7jup9FQ" fontName="Segoe UI"/>
+ <element xmi:type="henshin:Edge" href="equallynamedclasses.henshin#_yUDmQKp3EeKxY8S7jup9FQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_yUMJIqp3EeKxY8S7jup9FQ" points="[-38, -5, 191, 0]$[-230, -36, -1, -31]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_01g2YKp3EeKxY8S7jup9FQ" type="4001" source="_lIfj4Kp3EeKxY8S7jup9FQ" target="_gJghYKp3EeKxY8S7jup9FQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_01g2Y6p3EeKxY8S7jup9FQ" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_01hdcKp3EeKxY8S7jup9FQ" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_01hdcap3EeKxY8S7jup9FQ" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_01hdcqp3EeKxY8S7jup9FQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_01g2Yap3EeKxY8S7jup9FQ" fontName="Segoe UI"/>
+ <element xmi:type="henshin:Edge" href="equallynamedclasses.henshin#_01TbAKp3EeKxY8S7jup9FQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_01g2Yqp3EeKxY8S7jup9FQ" points="[-38, -6, 138, 13]$[-130, -22, 46, -3]"/>
+ </edges>
+</notation:Diagram>
diff --git a/org.eclipse.emf.refactor.smells.uml24.henshin/transformations/specializationaggregation.henshin b/org.eclipse.emf.refactor.smells.uml24.henshin/transformations/specializationaggregation.henshin
new file mode 100644
index 0000000..11be8d5
--- /dev/null
+++ b/org.eclipse.emf.refactor.smells.uml24.henshin/transformations/specializationaggregation.henshin
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<henshin:Module xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:henshin="http://www.eclipse.org/emf/2011/Henshin" xmi:id="_GdGW4FWvEeK0V4B2JYxJUg">
+ <imports href="http://www.eclipse.org/uml2/4.0.0/UML#/"/>
+ <units xsi:type="henshin:Rule" xmi:id="_GdG98FWvEeK0V4B2JYxJUg" name="mainRule">
+ <lhs xmi:id="_GdG98VWvEeK0V4B2JYxJUg" name="Lhs">
+ <nodes xmi:id="_fCpfoKp6EeKxY8S7jup9FQ" incoming="_NmZ1wKp7EeKxY8S7jup9FQ">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Association"/>
+ </nodes>
+ <nodes xmi:id="_fqJkgKp6EeKxY8S7jup9FQ" outgoing="_M9teEKp7EeKxY8S7jup9FQ">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Association"/>
+ </nodes>
+ <nodes xmi:id="_MDiU0Kp7EeKxY8S7jup9FQ" incoming="_M9teEKp7EeKxY8S7jup9FQ" outgoing="_NmZ1wKp7EeKxY8S7jup9FQ">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Generalization"/>
+ </nodes>
+ <edges xmi:id="_M9teEKp7EeKxY8S7jup9FQ" source="_fqJkgKp6EeKxY8S7jup9FQ" target="_MDiU0Kp7EeKxY8S7jup9FQ">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier/generalization"/>
+ </edges>
+ <edges xmi:id="_NmZ1wKp7EeKxY8S7jup9FQ" source="_MDiU0Kp7EeKxY8S7jup9FQ" target="_fCpfoKp6EeKxY8S7jup9FQ">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Generalization/general"/>
+ </edges>
+ </lhs>
+ <rhs xmi:id="_GdHlAFWvEeK0V4B2JYxJUg" name="Rhs">
+ <nodes xmi:id="_fCsi8Kp6EeKxY8S7jup9FQ" incoming="_Nmf8YKp7EeKxY8S7jup9FQ">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Association"/>
+ </nodes>
+ <nodes xmi:id="_fqKLkKp6EeKxY8S7jup9FQ" outgoing="_M9v6UKp7EeKxY8S7jup9FQ">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Association"/>
+ </nodes>
+ <nodes xmi:id="_MDi74Kp7EeKxY8S7jup9FQ" incoming="_M9v6UKp7EeKxY8S7jup9FQ" outgoing="_Nmf8YKp7EeKxY8S7jup9FQ">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Generalization"/>
+ </nodes>
+ <edges xmi:id="_M9v6UKp7EeKxY8S7jup9FQ" source="_fqKLkKp6EeKxY8S7jup9FQ" target="_MDi74Kp7EeKxY8S7jup9FQ">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier/generalization"/>
+ </edges>
+ <edges xmi:id="_Nmf8YKp7EeKxY8S7jup9FQ" source="_MDi74Kp7EeKxY8S7jup9FQ" target="_fCsi8Kp6EeKxY8S7jup9FQ">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Generalization/general"/>
+ </edges>
+ </rhs>
+ <mappings xmi:id="_fCsi8ap6EeKxY8S7jup9FQ" origin="_fCpfoKp6EeKxY8S7jup9FQ" image="_fCsi8Kp6EeKxY8S7jup9FQ"/>
+ <mappings xmi:id="_fqKLkap6EeKxY8S7jup9FQ" origin="_fqJkgKp6EeKxY8S7jup9FQ" image="_fqKLkKp6EeKxY8S7jup9FQ"/>
+ <mappings xmi:id="_MDji8Kp7EeKxY8S7jup9FQ" origin="_MDiU0Kp7EeKxY8S7jup9FQ" image="_MDi74Kp7EeKxY8S7jup9FQ"/>
+ </units>
+</henshin:Module>
diff --git a/org.eclipse.emf.refactor.smells.uml24.henshin/transformations/specializationaggregation.henshin_diagram b/org.eclipse.emf.refactor.smells.uml24.henshin/transformations/specializationaggregation.henshin_diagram
new file mode 100644
index 0000000..a80dbd4
--- /dev/null
+++ b/org.eclipse.emf.refactor.smells.uml24.henshin/transformations/specializationaggregation.henshin_diagram
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:henshin="http://www.eclipse.org/emf/2011/Henshin" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmi:id="_dF0mkKp6EeKxY8S7jup9FQ" type="Henshin" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_dJwrYKp6EeKxY8S7jup9FQ" type="2001" fontName="Segoe UI" italic="true" fillColor="16114135" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fCsi8qp6EeKxY8S7jup9FQ" source="defaultAction">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fCsi86p6EeKxY8S7jup9FQ" key="value" value="preserve"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_dJxScKp6EeKxY8S7jup9FQ" type="5001"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_dJxScap6EeKxY8S7jup9FQ" type="7001">
+ <children xmi:type="notation:Shape" xmi:id="_fCuYIKp6EeKxY8S7jup9FQ" type="3001" fontName="Segoe UI">
+ <children xmi:type="notation:DecorationNode" xmi:id="_fCuYIqp6EeKxY8S7jup9FQ" type="5002"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_fCuYI6p6EeKxY8S7jup9FQ" type="5003"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_fCu_MKp6EeKxY8S7jup9FQ" type="7002">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_fCu_Map6EeKxY8S7jup9FQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_fCu_Mqp6EeKxY8S7jup9FQ"/>
+ </children>
+ <element xmi:type="henshin:Node" href="specializationaggregation.henshin#_fCpfoKp6EeKxY8S7jup9FQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fCuYIap6EeKxY8S7jup9FQ" x="89" y="46"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_fqMAwKp6EeKxY8S7jup9FQ" type="3001" fontName="Segoe UI">
+ <children xmi:type="notation:DecorationNode" xmi:id="_fqMn0Kp6EeKxY8S7jup9FQ" type="5002"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_fqMn0ap6EeKxY8S7jup9FQ" type="5003"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_fqMn0qp6EeKxY8S7jup9FQ" type="7002">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_fqMn06p6EeKxY8S7jup9FQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_fqMn1Kp6EeKxY8S7jup9FQ"/>
+ </children>
+ <element xmi:type="henshin:Node" href="specializationaggregation.henshin#_fqJkgKp6EeKxY8S7jup9FQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fqMAwap6EeKxY8S7jup9FQ" x="130" y="254"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_MDlYIKp7EeKxY8S7jup9FQ" type="3001" fontName="Segoe UI">
+ <children xmi:type="notation:DecorationNode" xmi:id="_MDl_MKp7EeKxY8S7jup9FQ" type="5002"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_MDl_Map7EeKxY8S7jup9FQ" type="5003"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_MDl_Mqp7EeKxY8S7jup9FQ" type="7002">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_MDl_M6p7EeKxY8S7jup9FQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_MDl_NKp7EeKxY8S7jup9FQ"/>
+ </children>
+ <element xmi:type="henshin:Node" href="specializationaggregation.henshin#_MDiU0Kp7EeKxY8S7jup9FQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MDlYIap7EeKxY8S7jup9FQ" x="332" y="137"/>
+ </children>
+ </children>
+ <element xmi:type="henshin:Rule" href="specializationaggregation.henshin#_GdG98FWvEeK0V4B2JYxJUg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dJwrYap6EeKxY8S7jup9FQ" x="126" y="70" width="567" height="416"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_dF0mkap6EeKxY8S7jup9FQ"/>
+ <element xmi:type="henshin:Module" href="specializationaggregation.henshin#_GdGW4FWvEeK0V4B2JYxJUg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_M9zksKp7EeKxY8S7jup9FQ" type="4001" source="_fqMAwKp6EeKxY8S7jup9FQ" target="_MDlYIKp7EeKxY8S7jup9FQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_M9zks6p7EeKxY8S7jup9FQ" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_M9zktKp7EeKxY8S7jup9FQ" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_M9zktap7EeKxY8S7jup9FQ" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_M9zktqp7EeKxY8S7jup9FQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_M9zksap7EeKxY8S7jup9FQ" fontName="Segoe UI"/>
+ <element xmi:type="henshin:Edge" href="specializationaggregation.henshin#_M9teEKp7EeKxY8S7jup9FQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_M9zksqp7EeKxY8S7jup9FQ" points="[42, -23, -170, 94]$[205, -91, -7, 26]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_NmmDAKp7EeKxY8S7jup9FQ" type="4001" source="_MDlYIKp7EeKxY8S7jup9FQ" target="_fCuYIKp6EeKxY8S7jup9FQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_NmmDA6p7EeKxY8S7jup9FQ" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NmmDBKp7EeKxY8S7jup9FQ" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_NmmDBap7EeKxY8S7jup9FQ" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NmmDBqp7EeKxY8S7jup9FQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_NmmDAap7EeKxY8S7jup9FQ" fontName="Segoe UI"/>
+ <element xmi:type="henshin:Edge" href="specializationaggregation.henshin#_NmZ1wKp7EeKxY8S7jup9FQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NmmDAqp7EeKxY8S7jup9FQ" points="[-52, -19, 201, 72]$[-250, -65, 3, 26]"/>
+ </edges>
+</notation:Diagram>
diff --git a/org.eclipse.emf.refactor.smells.uml24.henshin/transformations/speculativegeneralityclass.henshin b/org.eclipse.emf.refactor.smells.uml24.henshin/transformations/speculativegeneralityclass.henshin
new file mode 100644
index 0000000..fbd1ffe
--- /dev/null
+++ b/org.eclipse.emf.refactor.smells.uml24.henshin/transformations/speculativegeneralityclass.henshin
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<henshin:Module xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:henshin="http://www.eclipse.org/emf/2011/Henshin" xmi:id="_GdGW4FWvEeK0V4B2JYxJUg">
+ <imports href="http://www.eclipse.org/uml2/4.0.0/UML#/"/>
+ <units xsi:type="henshin:Rule" xmi:id="_GdG98FWvEeK0V4B2JYxJUg" name="mainRule">
+ <lhs xmi:id="_GdG98VWvEeK0V4B2JYxJUg" name="Lhs">
+ <nodes xmi:id="_ow5iEKqEEeKxY8S7jup9FQ" incoming="_v4IDcKqEEeKxY8S7jup9FQ">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Class"/>
+ <attributes xmi:id="_5kzkIKqEEeKxY8S7jup9FQ" value="true">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier/isAbstract"/>
+ </attributes>
+ </nodes>
+ <nodes xmi:id="_pb4_0KqEEeKxY8S7jup9FQ" outgoing="_vWJ-0KqEEeKxY8S7jup9FQ">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Class"/>
+ <attributes xmi:id="__aVNEKqEEeKxY8S7jup9FQ" value="false">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier/isAbstract"/>
+ </attributes>
+ </nodes>
+ <nodes xmi:id="_tYh0gKqEEeKxY8S7jup9FQ" incoming="_vWJ-0KqEEeKxY8S7jup9FQ" outgoing="_v4IDcKqEEeKxY8S7jup9FQ">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Generalization"/>
+ </nodes>
+ <edges xmi:id="_vWJ-0KqEEeKxY8S7jup9FQ" source="_pb4_0KqEEeKxY8S7jup9FQ" target="_tYh0gKqEEeKxY8S7jup9FQ">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier/generalization"/>
+ </edges>
+ <edges xmi:id="_v4IDcKqEEeKxY8S7jup9FQ" source="_tYh0gKqEEeKxY8S7jup9FQ" target="_ow5iEKqEEeKxY8S7jup9FQ">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Generalization/general"/>
+ </edges>
+ <formula xsi:type="henshin:Not" xmi:id="_yw0H0KqEEeKxY8S7jup9FQ">
+ <child xsi:type="henshin:NestedCondition" xmi:id="_yw0H0aqEEeKxY8S7jup9FQ">
+ <conclusion xmi:id="_yw0H0qqEEeKxY8S7jup9FQ">
+ <nodes xmi:id="_yw2kEKqEEeKxY8S7jup9FQ" incoming="_xHNswKqEEeKxY8S7jup9FQ">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Class"/>
+ </nodes>
+ <nodes xmi:id="_t2C28KqEEeKxY8S7jup9FQ" outgoing="_xHNswKqEEeKxY8S7jup9FQ">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Class"/>
+ <attributes xmi:id="_GgmFIKqFEeKxY8S7jup9FQ" value="false">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier/isAbstract"/>
+ </attributes>
+ </nodes>
+ <edges xmi:id="_xHNswKqEEeKxY8S7jup9FQ" source="_t2C28KqEEeKxY8S7jup9FQ" target="_yw2kEKqEEeKxY8S7jup9FQ">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier/general"/>
+ </edges>
+ </conclusion>
+ <mappings xmi:id="_yw2kEaqEEeKxY8S7jup9FQ" origin="_ow5iEKqEEeKxY8S7jup9FQ" image="_yw2kEKqEEeKxY8S7jup9FQ"/>
+ </child>
+ </formula>
+ </lhs>
+ <rhs xmi:id="_GdHlAFWvEeK0V4B2JYxJUg" name="Rhs">
+ <nodes xmi:id="_ow7-UKqEEeKxY8S7jup9FQ" incoming="_v4NjAKqEEeKxY8S7jup9FQ">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Class"/>
+ <attributes xmi:id="_9ZAOgKqEEeKxY8S7jup9FQ" value="true">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier/isAbstract"/>
+ </attributes>
+ </nodes>
+ <nodes xmi:id="_pb5m4KqEEeKxY8S7jup9FQ" outgoing="_vWNCIKqEEeKxY8S7jup9FQ">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Class"/>
+ <attributes xmi:id="_A-9okKqFEeKxY8S7jup9FQ" value="false">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier/isAbstract"/>
+ </attributes>
+ </nodes>
+ <nodes xmi:id="_tYibkKqEEeKxY8S7jup9FQ" incoming="_vWNCIKqEEeKxY8S7jup9FQ" outgoing="_v4NjAKqEEeKxY8S7jup9FQ">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Generalization"/>
+ </nodes>
+ <edges xmi:id="_vWNCIKqEEeKxY8S7jup9FQ" source="_pb5m4KqEEeKxY8S7jup9FQ" target="_tYibkKqEEeKxY8S7jup9FQ">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Classifier/generalization"/>
+ </edges>
+ <edges xmi:id="_v4NjAKqEEeKxY8S7jup9FQ" source="_tYibkKqEEeKxY8S7jup9FQ" target="_ow7-UKqEEeKxY8S7jup9FQ">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Generalization/general"/>
+ </edges>
+ </rhs>
+ <mappings xmi:id="_ow7-UaqEEeKxY8S7jup9FQ" origin="_ow5iEKqEEeKxY8S7jup9FQ" image="_ow7-UKqEEeKxY8S7jup9FQ"/>
+ <mappings xmi:id="_pb5m4aqEEeKxY8S7jup9FQ" origin="_pb4_0KqEEeKxY8S7jup9FQ" image="_pb5m4KqEEeKxY8S7jup9FQ"/>
+ <mappings xmi:id="_tYjCoKqEEeKxY8S7jup9FQ" origin="_tYh0gKqEEeKxY8S7jup9FQ" image="_tYibkKqEEeKxY8S7jup9FQ"/>
+ </units>
+</henshin:Module>
diff --git a/org.eclipse.emf.refactor.smells.uml24.henshin/transformations/speculativegeneralityclass.henshin_diagram b/org.eclipse.emf.refactor.smells.uml24.henshin/transformations/speculativegeneralityclass.henshin_diagram
new file mode 100644
index 0000000..ba32c66
--- /dev/null
+++ b/org.eclipse.emf.refactor.smells.uml24.henshin/transformations/speculativegeneralityclass.henshin_diagram
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:henshin="http://www.eclipse.org/emf/2011/Henshin" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmi:id="_4c2TAKqDEeKxY8S7jup9FQ" type="Henshin" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_4f3x0KqDEeKxY8S7jup9FQ" type="2001" fontName="Segoe UI" italic="true" fillColor="16114135" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ow7-UqqEEeKxY8S7jup9FQ" source="defaultAction">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ow8lYKqEEeKxY8S7jup9FQ" key="value" value="forbid"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_4f3x0qqDEeKxY8S7jup9FQ" type="5001"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_4f3x06qDEeKxY8S7jup9FQ" type="7001">
+ <children xmi:type="notation:Shape" xmi:id="_ow9zgKqEEeKxY8S7jup9FQ" type="3001" fontName="Segoe UI">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ow-akKqEEeKxY8S7jup9FQ" type="5002"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ow-akaqEEeKxY8S7jup9FQ" type="5003"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ow-akqqEEeKxY8S7jup9FQ" type="7002">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ow-ak6qEEeKxY8S7jup9FQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ow-alKqEEeKxY8S7jup9FQ"/>
+ </children>
+ <element xmi:type="henshin:Node" href="speculativegeneralityclass.henshin#_ow5iEKqEEeKxY8S7jup9FQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ow9zgaqEEeKxY8S7jup9FQ" x="147" y="42"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_pb7cEKqEEeKxY8S7jup9FQ" type="3001" fontName="Segoe UI">
+ <children xmi:type="notation:DecorationNode" xmi:id="_pb8DIKqEEeKxY8S7jup9FQ" type="5002"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_pb8DIaqEEeKxY8S7jup9FQ" type="5003"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_pb8DIqqEEeKxY8S7jup9FQ" type="7002">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_pb8DI6qEEeKxY8S7jup9FQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_pb8DJKqEEeKxY8S7jup9FQ"/>
+ </children>
+ <element xmi:type="henshin:Node" href="speculativegeneralityclass.henshin#_pb4_0KqEEeKxY8S7jup9FQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pb7cEaqEEeKxY8S7jup9FQ" x="344" y="361"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_tYk30KqEEeKxY8S7jup9FQ" type="3001" fontName="Segoe UI">
+ <children xmi:type="notation:DecorationNode" xmi:id="_tYle4KqEEeKxY8S7jup9FQ" type="5002"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_tYle4aqEEeKxY8S7jup9FQ" type="5003"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_tYle4qqEEeKxY8S7jup9FQ" type="7002">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_tYle46qEEeKxY8S7jup9FQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_tYle5KqEEeKxY8S7jup9FQ"/>
+ </children>
+ <element xmi:type="henshin:Node" href="speculativegeneralityclass.henshin#_tYh0gKqEEeKxY8S7jup9FQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tYk30aqEEeKxY8S7jup9FQ" x="200" y="213"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_t2HIYKqEEeKxY8S7jup9FQ" type="3001" fontName="Segoe UI">
+ <children xmi:type="notation:DecorationNode" xmi:id="_t2HvcKqEEeKxY8S7jup9FQ" type="5002"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_t2HvcaqEEeKxY8S7jup9FQ" type="5003"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_t2HvcqqEEeKxY8S7jup9FQ" type="7002">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_t2Hvc6qEEeKxY8S7jup9FQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_t2HvdKqEEeKxY8S7jup9FQ"/>
+ </children>
+ <element xmi:type="henshin:Node" href="speculativegeneralityclass.henshin#_t2C28KqEEeKxY8S7jup9FQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_t2HIYaqEEeKxY8S7jup9FQ" x="432" y="118"/>
+ </children>
+ </children>
+ <element xmi:type="henshin:Rule" href="speculativegeneralityclass.henshin#_GdG98FWvEeK0V4B2JYxJUg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4f3x0aqDEeKxY8S7jup9FQ" width="664" height="505"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_4c2TAaqDEeKxY8S7jup9FQ"/>
+ <element xmi:type="henshin:Module" href="speculativegeneralityclass.henshin#_GdGW4FWvEeK0V4B2JYxJUg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_vWRTkKqEEeKxY8S7jup9FQ" type="4001" source="_pb7cEKqEEeKxY8S7jup9FQ" target="_tYk30KqEEeKxY8S7jup9FQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_vWR6oKqEEeKxY8S7jup9FQ" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_vWR6oaqEEeKxY8S7jup9FQ" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_vWR6oqqEEeKxY8S7jup9FQ" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_vWR6o6qEEeKxY8S7jup9FQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_vWRTkaqEEeKxY8S7jup9FQ" fontName="Segoe UI"/>
+ <element xmi:type="henshin:Edge" href="speculativegeneralityclass.henshin#_vWJ-0KqEEeKxY8S7jup9FQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_vWRTkqqEEeKxY8S7jup9FQ" points="[-22, -26, 108, 122]$[-124, -174, 6, -26]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_v4UQsKqEEeKxY8S7jup9FQ" type="4001" source="_tYk30KqEEeKxY8S7jup9FQ" target="_ow9zgKqEEeKxY8S7jup9FQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_v4UQs6qEEeKxY8S7jup9FQ" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_v4UQtKqEEeKxY8S7jup9FQ" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_v4UQtaqEEeKxY8S7jup9FQ" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_v4UQtqqEEeKxY8S7jup9FQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_v4UQsaqEEeKxY8S7jup9FQ" fontName="Segoe UI"/>
+ <element xmi:type="henshin:Edge" href="speculativegeneralityclass.henshin#_v4IDcKqEEeKxY8S7jup9FQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_v4UQsqqEEeKxY8S7jup9FQ" points="[-11, -26, 56, 145]$[-74, -197, -7, -26]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_xHeLcKqEEeKxY8S7jup9FQ" type="4001" source="_t2HIYKqEEeKxY8S7jup9FQ" target="_ow9zgKqEEeKxY8S7jup9FQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_xHeygKqEEeKxY8S7jup9FQ" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_xHeygaqEEeKxY8S7jup9FQ" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_xHeygqqEEeKxY8S7jup9FQ" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_xHeyg6qEEeKxY8S7jup9FQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_xHeLcaqEEeKxY8S7jup9FQ" fontName="Segoe UI"/>
+ <element xmi:type="henshin:Edge" href="speculativegeneralityclass.henshin#_xHNswKqEEeKxY8S7jup9FQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_xHeLcqqEEeKxY8S7jup9FQ" points="[-38, -12, 247, 64]$[-279, -102, 6, -26]"/>
+ </edges>
+</notation:Diagram>
diff --git a/org.eclipse.emf.refactor.smells.uml24.henshin/transformations/speculativegeneralityinterface.henshin b/org.eclipse.emf.refactor.smells.uml24.henshin/transformations/speculativegeneralityinterface.henshin
new file mode 100644
index 0000000..05fe8f8
--- /dev/null
+++ b/org.eclipse.emf.refactor.smells.uml24.henshin/transformations/speculativegeneralityinterface.henshin
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<henshin:Module xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:henshin="http://www.eclipse.org/emf/2011/Henshin" xmi:id="_GdGW4FWvEeK0V4B2JYxJUg">
+ <imports href="http://www.eclipse.org/uml2/4.0.0/UML#/"/>
+ <units xsi:type="henshin:Rule" xmi:id="_GdG98FWvEeK0V4B2JYxJUg" name="mainRule">
+ <lhs xmi:id="_GdG98VWvEeK0V4B2JYxJUg" name="Lhs">
+ <nodes xmi:id="_pb4_0KqEEeKxY8S7jup9FQ" outgoing="_eOUMwKqHEeKxY8S7jup9FQ">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Class"/>
+ </nodes>
+ <nodes xmi:id="_agLuIKqHEeKxY8S7jup9FQ" incoming="_kIo2IKqHEeKxY8S7jup9FQ">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Interface"/>
+ </nodes>
+ <nodes xmi:id="_cYON0KqHEeKxY8S7jup9FQ" incoming="_eOUMwKqHEeKxY8S7jup9FQ" outgoing="_kIo2IKqHEeKxY8S7jup9FQ">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//InterfaceRealization"/>
+ </nodes>
+ <edges xmi:id="_eOUMwKqHEeKxY8S7jup9FQ" source="_pb4_0KqEEeKxY8S7jup9FQ" target="_cYON0KqHEeKxY8S7jup9FQ">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//BehavioredClassifier/interfaceRealization"/>
+ </edges>
+ <edges xmi:id="_kIo2IKqHEeKxY8S7jup9FQ" source="_cYON0KqHEeKxY8S7jup9FQ" target="_agLuIKqHEeKxY8S7jup9FQ">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//InterfaceRealization/contract"/>
+ </edges>
+ <formula xsi:type="henshin:Not" xmi:id="_sk9iMKqHEeKxY8S7jup9FQ">
+ <child xsi:type="henshin:NestedCondition" xmi:id="_sk9iMaqHEeKxY8S7jup9FQ">
+ <conclusion xmi:id="_sk9iMqqHEeKxY8S7jup9FQ">
+ <nodes xmi:id="_nSKy4KqHEeKxY8S7jup9FQ" incoming="_q7kigKqHEeKxY8S7jup9FQ" outgoing="_rd07AKqHEeKxY8S7jup9FQ">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//InterfaceRealization"/>
+ </nodes>
+ <nodes xmi:id="_t2C28KqEEeKxY8S7jup9FQ" outgoing="_q7kigKqHEeKxY8S7jup9FQ">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Class"/>
+ </nodes>
+ <nodes xmi:id="_trynYKqHEeKxY8S7jup9FQ" incoming="_rd07AKqHEeKxY8S7jup9FQ">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Interface"/>
+ </nodes>
+ <edges xmi:id="_q7kigKqHEeKxY8S7jup9FQ" source="_t2C28KqEEeKxY8S7jup9FQ" target="_nSKy4KqHEeKxY8S7jup9FQ">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//BehavioredClassifier/interfaceRealization"/>
+ </edges>
+ <edges xmi:id="_rd07AKqHEeKxY8S7jup9FQ" source="_nSKy4KqHEeKxY8S7jup9FQ" target="_trynYKqHEeKxY8S7jup9FQ">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//InterfaceRealization/contract"/>
+ </edges>
+ </conclusion>
+ <mappings xmi:id="_trynYaqHEeKxY8S7jup9FQ" origin="_agLuIKqHEeKxY8S7jup9FQ" image="_trynYKqHEeKxY8S7jup9FQ"/>
+ </child>
+ </formula>
+ </lhs>
+ <rhs xmi:id="_GdHlAFWvEeK0V4B2JYxJUg" name="Rhs">
+ <nodes xmi:id="_pb5m4KqEEeKxY8S7jup9FQ" outgoing="_eOX3IKqHEeKxY8S7jup9FQ">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Class"/>
+ </nodes>
+ <nodes xmi:id="_agPYgKqHEeKxY8S7jup9FQ" incoming="_kIuVsKqHEeKxY8S7jup9FQ">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//Interface"/>
+ </nodes>
+ <nodes xmi:id="_cYPb8KqHEeKxY8S7jup9FQ" incoming="_eOX3IKqHEeKxY8S7jup9FQ" outgoing="_kIuVsKqHEeKxY8S7jup9FQ">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//InterfaceRealization"/>
+ </nodes>
+ <edges xmi:id="_eOX3IKqHEeKxY8S7jup9FQ" source="_pb5m4KqEEeKxY8S7jup9FQ" target="_cYPb8KqHEeKxY8S7jup9FQ">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//BehavioredClassifier/interfaceRealization"/>
+ </edges>
+ <edges xmi:id="_kIuVsKqHEeKxY8S7jup9FQ" source="_cYPb8KqHEeKxY8S7jup9FQ" target="_agPYgKqHEeKxY8S7jup9FQ">
+ <type href="http://www.eclipse.org/uml2/4.0.0/UML#//InterfaceRealization/contract"/>
+ </edges>
+ </rhs>
+ <mappings xmi:id="_pb5m4aqEEeKxY8S7jup9FQ" origin="_pb4_0KqEEeKxY8S7jup9FQ" image="_pb5m4KqEEeKxY8S7jup9FQ"/>
+ <mappings xmi:id="_agPYgaqHEeKxY8S7jup9FQ" origin="_agLuIKqHEeKxY8S7jup9FQ" image="_agPYgKqHEeKxY8S7jup9FQ"/>
+ <mappings xmi:id="_cYQDAKqHEeKxY8S7jup9FQ" origin="_cYON0KqHEeKxY8S7jup9FQ" image="_cYPb8KqHEeKxY8S7jup9FQ"/>
+ </units>
+</henshin:Module>
diff --git a/org.eclipse.emf.refactor.smells.uml24.henshin/transformations/speculativegeneralityinterface.henshin_diagram b/org.eclipse.emf.refactor.smells.uml24.henshin/transformations/speculativegeneralityinterface.henshin_diagram
new file mode 100644
index 0000000..0e8384b
--- /dev/null
+++ b/org.eclipse.emf.refactor.smells.uml24.henshin/transformations/speculativegeneralityinterface.henshin_diagram
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:henshin="http://www.eclipse.org/emf/2011/Henshin" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmi:id="_ykpCIKqGEeKxY8S7jup9FQ" type="Henshin" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_yn38UKqGEeKxY8S7jup9FQ" type="2001" fontName="Segoe UI" italic="true" fillColor="16114135" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_agP_kKqHEeKxY8S7jup9FQ" source="defaultAction">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_agP_kaqHEeKxY8S7jup9FQ" key="value" value="forbid"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_yn38UqqGEeKxY8S7jup9FQ" type="5001"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_yn4jYKqGEeKxY8S7jup9FQ" type="7001">
+ <children xmi:type="notation:Shape" xmi:id="_yn6_paqGEeKxY8S7jup9FQ" type="3001" fontName="Segoe UI">
+ <children xmi:type="notation:DecorationNode" xmi:id="_yn6_p6qGEeKxY8S7jup9FQ" type="5002"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_yn6_qKqGEeKxY8S7jup9FQ" type="5003"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_yn6_qaqGEeKxY8S7jup9FQ" type="7002">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_yn6_qqqGEeKxY8S7jup9FQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_yn6_q6qGEeKxY8S7jup9FQ"/>
+ </children>
+ <element xmi:type="henshin:Node" href="speculativegeneralityinterface.henshin#_pb4_0KqEEeKxY8S7jup9FQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yn6_pqqGEeKxY8S7jup9FQ" x="72" y="208"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_yn7mt6qGEeKxY8S7jup9FQ" type="3001" fontName="Segoe UI">
+ <children xmi:type="notation:DecorationNode" xmi:id="_yn8NwKqGEeKxY8S7jup9FQ" type="5002"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_yn8NwaqGEeKxY8S7jup9FQ" type="5003"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_yn8NwqqGEeKxY8S7jup9FQ" type="7002">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_yn8Nw6qGEeKxY8S7jup9FQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_yn8NxKqGEeKxY8S7jup9FQ"/>
+ </children>
+ <element xmi:type="henshin:Node" href="speculativegeneralityinterface.henshin#_t2C28KqEEeKxY8S7jup9FQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yn7muKqGEeKxY8S7jup9FQ" x="548" y="106"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_agTC4KqHEeKxY8S7jup9FQ" type="3001" fontName="Segoe UI">
+ <children xmi:type="notation:DecorationNode" xmi:id="_agTp8KqHEeKxY8S7jup9FQ" type="5002"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_agTp8aqHEeKxY8S7jup9FQ" type="5003"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_agTp8qqHEeKxY8S7jup9FQ" type="7002">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_agTp86qHEeKxY8S7jup9FQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_agTp9KqHEeKxY8S7jup9FQ"/>
+ </children>
+ <element xmi:type="henshin:Node" href="speculativegeneralityinterface.henshin#_agLuIKqHEeKxY8S7jup9FQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_agTC4aqHEeKxY8S7jup9FQ" x="146" y="64"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_cYTtYKqHEeKxY8S7jup9FQ" type="3001" fontName="Segoe UI">
+ <children xmi:type="notation:DecorationNode" xmi:id="_cYTtYqqHEeKxY8S7jup9FQ" type="5002"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_cYUUcKqHEeKxY8S7jup9FQ" type="5003"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_cYUUcaqHEeKxY8S7jup9FQ" type="7002">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_cYUUcqqHEeKxY8S7jup9FQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_cYUUc6qHEeKxY8S7jup9FQ"/>
+ </children>
+ <element xmi:type="henshin:Node" href="speculativegeneralityinterface.henshin#_cYON0KqHEeKxY8S7jup9FQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cYTtYaqHEeKxY8S7jup9FQ" x="335" y="179"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_nSZcYKqHEeKxY8S7jup9FQ" type="3001" fontName="Segoe UI">
+ <children xmi:type="notation:DecorationNode" xmi:id="_nSZcYqqHEeKxY8S7jup9FQ" type="5002"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_nSaDcKqHEeKxY8S7jup9FQ" type="5003"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_nSaDcaqHEeKxY8S7jup9FQ" type="7002">
+ <styles xmi:type="notation:SortingStyle" xmi:id="_nSaDcqqHEeKxY8S7jup9FQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_nSaDc6qHEeKxY8S7jup9FQ"/>
+ </children>
+ <element xmi:type="henshin:Node" href="speculativegeneralityinterface.henshin#_nSKy4KqHEeKxY8S7jup9FQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nSZcYaqHEeKxY8S7jup9FQ" x="329" y="30"/>
+ </children>
+ </children>
+ <element xmi:type="henshin:Rule" href="speculativegeneralityinterface.henshin#_GdG98FWvEeK0V4B2JYxJUg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yn38UaqGEeKxY8S7jup9FQ" x="61" y="70" width="686" height="379"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_ykpCIaqGEeKxY8S7jup9FQ"/>
+ <element xmi:type="henshin:Module" href="speculativegeneralityinterface.henshin#_GdGW4FWvEeK0V4B2JYxJUg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_eOdWsKqHEeKxY8S7jup9FQ" type="4001" source="_yn6_paqGEeKxY8S7jup9FQ" target="_cYTtYKqHEeKxY8S7jup9FQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_eOd9wKqHEeKxY8S7jup9FQ" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_eOd9waqHEeKxY8S7jup9FQ" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_eOd9wqqHEeKxY8S7jup9FQ" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_eOd9w6qHEeKxY8S7jup9FQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_eOdWsaqHEeKxY8S7jup9FQ" fontName="Segoe UI"/>
+ <element xmi:type="henshin:Edge" href="speculativegeneralityinterface.henshin#_eOUMwKqHEeKxY8S7jup9FQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_eOdWsqqHEeKxY8S7jup9FQ" points="[38, -4, -257, 25]$[304, -55, 9, -26]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_kI4GsKqHEeKxY8S7jup9FQ" type="4001" source="_cYTtYKqHEeKxY8S7jup9FQ" target="_agTC4KqHEeKxY8S7jup9FQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_kI4twKqHEeKxY8S7jup9FQ" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kI4twaqHEeKxY8S7jup9FQ" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_kI4twqqHEeKxY8S7jup9FQ" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kI4tw6qHEeKxY8S7jup9FQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_kI4GsaqHEeKxY8S7jup9FQ" fontName="Segoe UI"/>
+ <element xmi:type="henshin:Edge" href="speculativegeneralityinterface.henshin#_kIo2IKqHEeKxY8S7jup9FQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_kI4GsqqHEeKxY8S7jup9FQ" points="[-27, -16, 153, 89]$[-181, -131, -1, -26]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kI9mQKqHEeKxY8S7jup9FQ" id="(0.20714285714285716,0.3076923076923077)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_q8B1gKqHEeKxY8S7jup9FQ" type="4001" source="_yn7mt6qGEeKxY8S7jup9FQ" target="_nSZcYKqHEeKxY8S7jup9FQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_q8B1g6qHEeKxY8S7jup9FQ" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_q8B1hKqHEeKxY8S7jup9FQ" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_q8B1haqHEeKxY8S7jup9FQ" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_q8B1hqqHEeKxY8S7jup9FQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_q8B1gaqHEeKxY8S7jup9FQ" fontName="Segoe UI"/>
+ <element xmi:type="henshin:Edge" href="speculativegeneralityinterface.henshin#_q7kigKqHEeKxY8S7jup9FQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_q8B1gqqHEeKxY8S7jup9FQ" points="[-38, -8, 101, 9]$[-133, -43, 6, -26]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_reKSMKqHEeKxY8S7jup9FQ" type="4001" source="_nSZcYKqHEeKxY8S7jup9FQ" target="_agTC4KqHEeKxY8S7jup9FQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_reK5QKqHEeKxY8S7jup9FQ" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_reK5QaqHEeKxY8S7jup9FQ" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_reK5QqqHEeKxY8S7jup9FQ" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_reK5Q6qHEeKxY8S7jup9FQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_reKSMaqHEeKxY8S7jup9FQ" fontName="Segoe UI"/>
+ <element xmi:type="henshin:Edge" href="speculativegeneralityinterface.henshin#_rd07AKqHEeKxY8S7jup9FQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_reKSMqqHEeKxY8S7jup9FQ" points="[-14, 3, 145, -38]$[-197, 41, -38, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_reN8kKqHEeKxY8S7jup9FQ" id="(0.1,0.36538461538461536)"/>
+ </edges>
+</notation:Diagram>