Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcdumoulin2012-04-02 15:33:48 +0000
committercdumoulin2012-04-02 15:33:48 +0000
commit8e649edfae3cf4278fb97d311d8fabb1cdc23597 (patch)
treefb5014542eef7be363d324689165c553515d8b79
parentfb9aa0cddcbb58ba8e6905ade65151e60c99c7c2 (diff)
downloadorg.eclipse.papyrus-8e649edfae3cf4278fb97d311d8fabb1cdc23597.tar.gz
org.eclipse.papyrus-8e649edfae3cf4278fb97d311d8fabb1cdc23597.tar.xz
org.eclipse.papyrus-8e649edfae3cf4278fb97d311d8fabb1cdc23597.zip
ASSIGNED - bug 375759: [Java Code Generator] Improve generator
https://bugs.eclipse.org/bugs/show_bug.cgi?id=375759 - Allow to put stereotype JavaPackage at the root of a uml model. - correct missing imports (with operation return type) - Improve transformation - Add uml doc showing transformation rules inheritance
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/RunGenerator.java3
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTMethod.java37
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchTools.java4
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/doc/rulesInheritance.di23
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/doc/rulesInheritance.notation775
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/doc/rulesInheritance.uml55
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/transforms/uml/uml2jdt2.qvto134
7 files changed, 974 insertions, 57 deletions
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/RunGenerator.java b/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/RunGenerator.java
index a502f62b8bc..383b78b5ee6 100644
--- a/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/RunGenerator.java
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/RunGenerator.java
@@ -97,9 +97,10 @@ public class RunGenerator {
}
if(outObjects.size() > 1) {
- System.err.println("Warning, JDT modele has more one root");
+ System.err.println("Warning, JDT modele has more than one root. Found root:");
for(EObject el : outObjects)
System.err.println(((JDTJavaElement)el).getElementName());
+ System.err.println("-------");
}
//finally, we synchronize the JDT model with org.eclipse.jdt.core
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTMethod.java b/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTMethod.java
index 75c0b530927..0e5229d2b05 100644
--- a/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTMethod.java
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchJDTMethod.java
@@ -106,10 +106,17 @@ public class SynchJDTMethod extends SynchJDTCommentable {
}
else {
// return type
- if(method.getReturnType() != null)
- methodStr.append(method.getReturnType().getType().getElementName() + " ");
- else
+ if(method.getReturnType() != null) {
+ // Compute the type, taken into account multivalue
+ String type = getTypeAsString(method.getReturnType());
+ // put the import package
+ SynchTools.createImport(itype, method.getOwner(), method.getReturnType().getType());
+
+ methodStr.append(type + " ");
+ }
+ else {
methodStr.append("void ");
+ }
// method name
methodStr.append(method.getElementName() + "(");
}
@@ -120,11 +127,8 @@ public class SynchJDTMethod extends SynchJDTCommentable {
String typeName = p.getElementName();
String type = "Undefined";
if(p.getType() != null) {
- type = null;
- if(p.isMultiValued())
- type = SynchTools.getMultiValued(itype, p.getType().getElementName(), preference);
- else
- type = p.getType().getElementName();
+ // Compute the type, taken into account multivalue
+ type = getTypeAsString(p);
// put the import package
SynchTools.createImport(itype, method.getOwner(), p.getType());
}
@@ -201,6 +205,23 @@ public class SynchJDTMethod extends SynchJDTCommentable {
}
+ /**
+ * Get the type of the parameter as a String. Take into account the multivalue setting.
+ * @param p
+ * @return
+ * @throws JavaModelException
+ */
+ private String getTypeAsString(JDTParameter p) throws JavaModelException {
+ String type;
+ if(p.isMultiValued())
+ type = SynchTools.getMultiValued(itype, p.getType().getElementName(), preference);
+ else
+ type = p.getType().getElementName();
+ return type;
+ }
+
+
+
/** *************** methods override by SynchJDTCommentable ************** */
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchTools.java b/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchTools.java
index be722d1e293..a079156aed4 100644
--- a/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchTools.java
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/impl/SynchTools.java
@@ -92,7 +92,7 @@ public class SynchTools {
* @return true if typename is a primive type
*/
public static boolean isPrimiveType(String typename) {
- if(typename.equals("byte"))
+ if(typename.equals("byte") )
return true;
if(typename.equals("char"))
return true;
@@ -100,7 +100,7 @@ public class SynchTools {
return true;
if(typename.equals("float"))
return true;
- if(typename.equals("int"))
+ if(typename.equals("int") )
return true;
if(typename.equals("long"))
return true;
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/doc/rulesInheritance.di b/extraplugins/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/doc/rulesInheritance.di
new file mode 100644
index 00000000000..9d143f73599
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/doc/rulesInheritance.di
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="ASCII"?>
+<di:SashWindowsMngr xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.eclipse.org/papyrus/0.7.0/sashdi">
+ <pageList>
+ <availablePage>
+ <emfPageIdentifier href="rulesInheritance.notation#_2OUz0Hy1EeGgQY3xJFttRg"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="rulesInheritance.notation#_Bb7p0Hy4EeGgQY3xJFttRg"/>
+ </availablePage>
+ </pageList>
+ <sashModel currentSelection="//@sashModel/@windows.0/@children.0">
+ <windows>
+ <children xsi:type="di:TabFolder">
+ <children>
+ <emfPageIdentifier href="rulesInheritance.notation#_2OUz0Hy1EeGgQY3xJFttRg"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="rulesInheritance.notation#_Bb7p0Hy4EeGgQY3xJFttRg"/>
+ </children>
+ </children>
+ </windows>
+ </sashModel>
+</di:SashWindowsMngr>
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/doc/rulesInheritance.notation b/extraplugins/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/doc/rulesInheritance.notation
new file mode 100644
index 00000000000..08d0a52ccd9
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/doc/rulesInheritance.notation
@@ -0,0 +1,775 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML">
+ <notation:Diagram xmi:id="_2OUz0Hy1EeGgQY3xJFttRg" type="PapyrusUMLClassDiagram" name="NewDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_7pGacHy1EeGgQY3xJFttRg" type="2008" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7pIPoHy1EeGgQY3xJFttRg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7pIPoXy1EeGgQY3xJFttRg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7pI2sHy1EeGgQY3xJFttRg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7pI2sXy1EeGgQY3xJFttRg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7pJdwHy1EeGgQY3xJFttRg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7pJdwXy1EeGgQY3xJFttRg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_7pJdwny1EeGgQY3xJFttRg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_7pJdw3y1EeGgQY3xJFttRg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7pJdxHy1EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_7pJdxXy1EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_7pJdxny1EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7pJdx3y1EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_7pJdyHy1EeGgQY3xJFttRg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7pJdyXy1EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_7pJdyny1EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_7pJdy3y1EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7pJdzHy1EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_7pKE0Hy1EeGgQY3xJFttRg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_7pKE0Xy1EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_7pKE0ny1EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_7pKE03y1EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7pKE1Hy1EeGgQY3xJFttRg"/>
+ </children>
+ <element xmi:type="uml:Class" href="rulesInheritance.uml#_7o4_EHy1EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7pGacXy1EeGgQY3xJFttRg" x="534" y="162"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_-B0lUHy1EeGgQY3xJFttRg" type="2008" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-B3BkHy1EeGgQY3xJFttRg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-B3BkXy1EeGgQY3xJFttRg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-B3ooHy1EeGgQY3xJFttRg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-B3ooXy1EeGgQY3xJFttRg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_-B4PsHy1EeGgQY3xJFttRg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_-B4PsXy1EeGgQY3xJFttRg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-B4Psny1EeGgQY3xJFttRg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_-B42wHy1EeGgQY3xJFttRg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_-B42wXy1EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_-B42wny1EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_-B42w3y1EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-B42xHy1EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_-B42xXy1EeGgQY3xJFttRg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_-B5d0Hy1EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_-B5d0Xy1EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_-B5d0ny1EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-B5d03y1EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_-B5d1Hy1EeGgQY3xJFttRg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_-B5d1Xy1EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_-B5d1ny1EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_-B5d13y1EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-B5d2Hy1EeGgQY3xJFttRg"/>
+ </children>
+ <element xmi:type="uml:Class" href="rulesInheritance.uml#_-BnJ8Hy1EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-B0lUXy1EeGgQY3xJFttRg" x="474" y="-12"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_HsbCYHy2EeGgQY3xJFttRg" type="2008" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Hsc3kHy2EeGgQY3xJFttRg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HsdeoHy2EeGgQY3xJFttRg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HsdeoXy2EeGgQY3xJFttRg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Hsdeony2EeGgQY3xJFttRg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HseFsHy2EeGgQY3xJFttRg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_HseFsXy2EeGgQY3xJFttRg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_HseFsny2EeGgQY3xJFttRg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_HseFs3y2EeGgQY3xJFttRg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_HseswHy2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_HseswXy2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Hseswny2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Hsesw3y2EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_HsesxHy2EeGgQY3xJFttRg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_HsesxXy2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Hsesxny2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Hsesx3y2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HsesyHy2EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_HsfT0Hy2EeGgQY3xJFttRg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_HsfT0Xy2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_HsfT0ny2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_HsfT03y2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HsfT1Hy2EeGgQY3xJFttRg"/>
+ </children>
+ <element xmi:type="uml:Class" href="rulesInheritance.uml#_HsU7wHy2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HsbpcHy2EeGgQY3xJFttRg" x="432" y="360"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_SBSkcHy2EeGgQY3xJFttRg" type="2008" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SBUZoHy2EeGgQY3xJFttRg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SBUZoXy2EeGgQY3xJFttRg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SBUZony2EeGgQY3xJFttRg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SBVAsHy2EeGgQY3xJFttRg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_SBVAsXy2EeGgQY3xJFttRg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_SBVAsny2EeGgQY3xJFttRg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_SBVnwHy2EeGgQY3xJFttRg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_SBVnwXy2EeGgQY3xJFttRg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_SBVnwny2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_SBVnw3y2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_SBVnxHy2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SBVnxXy2EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_SBVnxny2EeGgQY3xJFttRg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_SBVnx3y2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_SBVnyHy2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_SBVnyXy2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SBVnyny2EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_SBWO0Hy2EeGgQY3xJFttRg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_SBWO0Xy2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_SBWO0ny2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_SBWO03y2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SBWO1Hy2EeGgQY3xJFttRg"/>
+ </children>
+ <element xmi:type="uml:Class" href="rulesInheritance.uml#_SBMd0Hy2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SBSkcXy2EeGgQY3xJFttRg" x="24" y="552"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_TH94oHy2EeGgQY3xJFttRg" type="2008" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TH_t0Hy2EeGgQY3xJFttRg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TIAU4Hy2EeGgQY3xJFttRg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TIAU4Xy2EeGgQY3xJFttRg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TIAU4ny2EeGgQY3xJFttRg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TIA78Hy2EeGgQY3xJFttRg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_TIA78Xy2EeGgQY3xJFttRg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_TIA78ny2EeGgQY3xJFttRg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TIA783y2EeGgQY3xJFttRg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TIA79Hy2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_TIA79Xy2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_TIA79ny2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TIA793y2EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TIBjAHy2EeGgQY3xJFttRg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TIBjAXy2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_TIBjAny2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_TIBjA3y2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TIBjBHy2EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_TICKEHy2EeGgQY3xJFttRg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_TICKEXy2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_TICKEny2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_TICKE3y2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TICKFHy2EeGgQY3xJFttRg"/>
+ </children>
+ <element xmi:type="uml:Class" href="rulesInheritance.uml#_TH4ZEHy2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_TH94oXy2EeGgQY3xJFttRg" x="204" y="354"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_bZoz4Hy2EeGgQY3xJFttRg" type="2008" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bZqpEHy2EeGgQY3xJFttRg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bZqpEXy2EeGgQY3xJFttRg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bZrQIHy2EeGgQY3xJFttRg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bZrQIXy2EeGgQY3xJFttRg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_bZrQIny2EeGgQY3xJFttRg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_bZrQI3y2EeGgQY3xJFttRg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_bZr3MHy2EeGgQY3xJFttRg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_bZr3MXy2EeGgQY3xJFttRg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_bZr3Mny2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_bZr3M3y2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_bZr3NHy2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bZr3NXy2EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_bZseQHy2EeGgQY3xJFttRg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_bZseQXy2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_bZseQny2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_bZseQ3y2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bZseRHy2EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_bZseRXy2EeGgQY3xJFttRg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_bZseRny2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_bZseR3y2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_bZseSHy2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bZseSXy2EeGgQY3xJFttRg"/>
+ </children>
+ <element xmi:type="uml:Class" href="rulesInheritance.uml#_bZitQHy2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bZoz4Xy2EeGgQY3xJFttRg" x="174" y="552"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_lXBDAHy2EeGgQY3xJFttRg" type="2008" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lXCRIHy2EeGgQY3xJFttRg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lXC4MHy2EeGgQY3xJFttRg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lXC4MXy2EeGgQY3xJFttRg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lXC4Mny2EeGgQY3xJFttRg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lXDfQHy2EeGgQY3xJFttRg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_lXDfQXy2EeGgQY3xJFttRg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_lXDfQny2EeGgQY3xJFttRg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lXDfQ3y2EeGgQY3xJFttRg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lXDfRHy2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_lXDfRXy2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_lXDfRny2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lXDfR3y2EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lXEGUHy2EeGgQY3xJFttRg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lXEGUXy2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_lXEGUny2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_lXEGU3y2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lXEGVHy2EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lXEGVXy2EeGgQY3xJFttRg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lXEGVny2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_lXEtYHy2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_lXEtYXy2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lXEtYny2EeGgQY3xJFttRg"/>
+ </children>
+ <element xmi:type="uml:Class" href="rulesInheritance.uml#_lW6VUHy2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lXBDAXy2EeGgQY3xJFttRg" x="678" y="546"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_mWMBAHy2EeGgQY3xJFttRg" type="2008" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mWN2MHy2EeGgQY3xJFttRg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mWN2MXy2EeGgQY3xJFttRg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mWOdQHy2EeGgQY3xJFttRg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mWOdQXy2EeGgQY3xJFttRg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_mWOdQny2EeGgQY3xJFttRg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_mWPEUHy2EeGgQY3xJFttRg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_mWPEUXy2EeGgQY3xJFttRg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mWPEUny2EeGgQY3xJFttRg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mWPEU3y2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_mWPEVHy2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_mWPEVXy2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mWPEVny2EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mWPrYHy2EeGgQY3xJFttRg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mWPrYXy2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_mWPrYny2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_mWPrY3y2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mWPrZHy2EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mWPrZXy2EeGgQY3xJFttRg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mWPrZny2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_mWPrZ3y2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_mWPraHy2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mWPraXy2EeGgQY3xJFttRg"/>
+ </children>
+ <element xmi:type="uml:Class" href="rulesInheritance.uml#_mWF6YHy2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mWMoEHy2EeGgQY3xJFttRg" x="888" y="546"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_pXo_0Hy2EeGgQY3xJFttRg" type="2008" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pXqN8Hy2EeGgQY3xJFttRg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pXq1AHy2EeGgQY3xJFttRg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pXq1AXy2EeGgQY3xJFttRg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pXq1Any2EeGgQY3xJFttRg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_pXrcEHy2EeGgQY3xJFttRg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_pXrcEXy2EeGgQY3xJFttRg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_pXrcEny2EeGgQY3xJFttRg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_pXsDIHy2EeGgQY3xJFttRg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_pXsDIXy2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_pXsDIny2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_pXsDI3y2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pXsDJHy2EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_pXsDJXy2EeGgQY3xJFttRg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_pXsDJny2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_pXsDJ3y2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_pXsDKHy2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pXsDKXy2EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_pXsqMHy2EeGgQY3xJFttRg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_pXsqMXy2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_pXsqMny2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_pXsqM3y2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pXsqNHy2EeGgQY3xJFttRg"/>
+ </children>
+ <element xmi:type="uml:Class" href="rulesInheritance.uml#_pXhrEHy2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pXo_0Xy2EeGgQY3xJFttRg" x="678" y="360"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__1OnMHy2EeGgQY3xJFttRg" type="2008" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__1QcYHy2EeGgQY3xJFttRg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__1QcYXy2EeGgQY3xJFttRg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__1RDcHy2EeGgQY3xJFttRg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__1RDcXy2EeGgQY3xJFttRg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__1RDcny2EeGgQY3xJFttRg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__1RqgHy2EeGgQY3xJFttRg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="__1RqgXy2EeGgQY3xJFttRg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__1Rqgny2EeGgQY3xJFttRg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="__1Rqg3y2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__1RqhHy2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__1RqhXy2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__1Rqhny2EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__1SRkHy2EeGgQY3xJFttRg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="__1SRkXy2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__1SRkny2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__1SRk3y2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__1SRlHy2EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__1SRlXy2EeGgQY3xJFttRg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="__1SRlny2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__1SRl3y2EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__1SRmHy2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__1SRmXy2EeGgQY3xJFttRg"/>
+ </children>
+ <element xmi:type="uml:Class" href="rulesInheritance.uml#__1H5gHy2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__1OnMXy2EeGgQY3xJFttRg" x="366" y="551"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Aa0AgHy3EeGgQY3xJFttRg" type="2008" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Aa0nkHy3EeGgQY3xJFttRg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Aa0nkXy3EeGgQY3xJFttRg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Aa0nkny3EeGgQY3xJFttRg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Aa1OoHy3EeGgQY3xJFttRg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Aa1OoXy3EeGgQY3xJFttRg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Aa1Oony3EeGgQY3xJFttRg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Aa1Oo3y3EeGgQY3xJFttRg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Aa1OpHy3EeGgQY3xJFttRg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Aa1OpXy3EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Aa1Opny3EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Aa1Op3y3EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Aa1OqHy3EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Aa11sHy3EeGgQY3xJFttRg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Aa11sXy3EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Aa11sny3EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Aa11s3y3EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Aa11tHy3EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Aa11tXy3EeGgQY3xJFttRg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Aa11tny3EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Aa11t3y3EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Aa11uHy3EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Aa11uXy3EeGgQY3xJFttRg"/>
+ </children>
+ <element xmi:type="uml:Class" href="rulesInheritance.uml#_AawWIHy3EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Aa0AgXy3EeGgQY3xJFttRg" x="522" y="550"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_eOfrsHy3EeGgQY3xJFttRg" type="2008" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_eOg50Hy3EeGgQY3xJFttRg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_eOhg4Hy3EeGgQY3xJFttRg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_eOhg4Xy3EeGgQY3xJFttRg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_eOhg4ny3EeGgQY3xJFttRg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_eOiH8Hy3EeGgQY3xJFttRg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_eOiH8Xy3EeGgQY3xJFttRg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_eOiH8ny3EeGgQY3xJFttRg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_eOiH83y3EeGgQY3xJFttRg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_eOiH9Hy3EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_eOivAHy3EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_eOivAXy3EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eOivAny3EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_eOivA3y3EeGgQY3xJFttRg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_eOivBHy3EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_eOivBXy3EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_eOivBny3EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eOivB3y3EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_eOjWEHy3EeGgQY3xJFttRg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_eOjWEXy3EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_eOjWEny3EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_eOjWE3y3EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eOjWFHy3EeGgQY3xJFttRg"/>
+ </children>
+ <element xmi:type="uml:Class" href="rulesInheritance.uml#_eOY-AHy3EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eOfrsXy3EeGgQY3xJFttRg" x="930" y="366"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_2OUz0Xy1EeGgQY3xJFttRg"/>
+ <element xmi:type="uml:Model" href="rulesInheritance.uml#_2N_coHy1EeGgQY3xJFttRg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_BhaRoHy2EeGgQY3xJFttRg" type="4002" source="_7pGacHy1EeGgQY3xJFttRg" target="_-B0lUHy1EeGgQY3xJFttRg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_BhcG0Hy2EeGgQY3xJFttRg" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_BhcG0Xy2EeGgQY3xJFttRg" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_BhaRoXy2EeGgQY3xJFttRg" fontName="Segoe UI"/>
+ <element xmi:type="uml:Generalization" href="rulesInheritance.uml#_Bgu8MHy2EeGgQY3xJFttRg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_BhaRony2EeGgQY3xJFttRg" points="[-6, -2, 0, 83]$[-12, -76, -6, 9]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_BhvBwHy2EeGgQY3xJFttRg" id="(0.5045045045045045,0.02)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_BhvBwXy2EeGgQY3xJFttRg" id="(0.41198501872659177,0.91)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_J-WowHy2EeGgQY3xJFttRg" type="4002" source="_HsbCYHy2EeGgQY3xJFttRg" target="_7pGacHy1EeGgQY3xJFttRg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_J-ZsEHy2EeGgQY3xJFttRg" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_J-aTIHy2EeGgQY3xJFttRg" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_J-WowXy2EeGgQY3xJFttRg" fontName="Segoe UI"/>
+ <element xmi:type="uml:Generalization" href="rulesInheritance.uml#_J-RJMHy2EeGgQY3xJFttRg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_J-Wowny2EeGgQY3xJFttRg" points="[-40, -3, 261, 0]$[-282, 19, 19, 22]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_J-nHcHy2EeGgQY3xJFttRg" id="(0.4,0.1)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_J-nHcXy2EeGgQY3xJFttRg" id="(0.7207207207207207,0.78)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_U2Au0Hy2EeGgQY3xJFttRg" type="4002" source="_SBSkcHy2EeGgQY3xJFttRg" target="_TH94oHy2EeGgQY3xJFttRg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_U2B88Hy2EeGgQY3xJFttRg" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_U2CkAHy2EeGgQY3xJFttRg" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_U2Au0Xy2EeGgQY3xJFttRg" fontName="Segoe UI"/>
+ <element xmi:type="uml:Generalization" href="rulesInheritance.uml#_U19rgHy2EeGgQY3xJFttRg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_U2BV4Hy2EeGgQY3xJFttRg" points="[9, -10, 0, 37]$[7, -36, -2, 11]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_U2NjIHy2EeGgQY3xJFttRg" id="(0.43283582089552236,0.1)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_U2OKMHy2EeGgQY3xJFttRg" id="(0.4576271186440678,0.89)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_WTbvEHy2EeGgQY3xJFttRg" type="4002" source="_SBSkcHy2EeGgQY3xJFttRg" target="_-B0lUHy1EeGgQY3xJFttRg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_WTeLUHy2EeGgQY3xJFttRg" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_WTeLUXy2EeGgQY3xJFttRg" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_WTbvEXy2EeGgQY3xJFttRg" fontName="Segoe UI"/>
+ <element xmi:type="uml:Generalization" href="rulesInheritance.uml#_WTWPgHy2EeGgQY3xJFttRg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_WTbvEny2EeGgQY3xJFttRg" points="[0, -11, -196, 446]$[0, -287, -196, 170]$[182, -445, -14, 12]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WTpKcHy2EeGgQY3xJFttRg" id="(0.4701492537313433,0.11)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WTpKcXy2EeGgQY3xJFttRg" id="(0.2958801498127341,0.88)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_dMeqgHy2EeGgQY3xJFttRg" type="4002" source="_bZoz4Hy2EeGgQY3xJFttRg" target="_TH94oHy2EeGgQY3xJFttRg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_dMhGwHy2EeGgQY3xJFttRg" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dMht0Hy2EeGgQY3xJFttRg" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_dMfRkHy2EeGgQY3xJFttRg" fontName="Segoe UI"/>
+ <element xmi:type="uml:Generalization" href="rulesInheritance.uml#_dMZK8Hy2EeGgQY3xJFttRg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_dMfRkXy2EeGgQY3xJFttRg" points="[-34, -16, 268, 130]$[-298, -138, 4, 8]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dMw-YHy2EeGgQY3xJFttRg" id="(0.40853658536585363,0.16)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dMw-YXy2EeGgQY3xJFttRg" id="(0.7033898305084746,0.92)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_erSx4Hy2EeGgQY3xJFttRg" type="4002" source="_TH94oHy2EeGgQY3xJFttRg" target="_7pGacHy1EeGgQY3xJFttRg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_erUAAHy2EeGgQY3xJFttRg" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_erUAAXy2EeGgQY3xJFttRg" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_erSx4Xy2EeGgQY3xJFttRg" fontName="Segoe UI"/>
+ <element xmi:type="uml:Generalization" href="rulesInheritance.uml#_erQVoHy2EeGgQY3xJFttRg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_erSx4ny2EeGgQY3xJFttRg" points="[43, 2, -192, -11]$[235, 17, 0, 4]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_erdJ8Hy2EeGgQY3xJFttRg" id="(0.635593220338983,0.05)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_erdJ8Xy2EeGgQY3xJFttRg" id="(0.5765765765765766,0.96)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_rgBooHy2EeGgQY3xJFttRg" type="4002" source="_lXBDAHy2EeGgQY3xJFttRg" target="_pXo_0Hy2EeGgQY3xJFttRg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_rgDd0Hy2EeGgQY3xJFttRg" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_rgDd0Xy2EeGgQY3xJFttRg" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_rgBooXy2EeGgQY3xJFttRg" fontName="Segoe UI"/>
+ <element xmi:type="uml:Generalization" href="rulesInheritance.uml#_rf1bYHy2EeGgQY3xJFttRg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_rgBoony2EeGgQY3xJFttRg" points="[-7, -20, 19, 60]$[-31, -59, -5, 21]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rgPrEHy2EeGgQY3xJFttRg" id="(0.3769633507853403,0.01)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rgPrEXy2EeGgQY3xJFttRg" id="(0.4583333333333333,0.79)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_srevIHy2EeGgQY3xJFttRg" type="4002" source="_mWMBAHy2EeGgQY3xJFttRg" target="_pXo_0Hy2EeGgQY3xJFttRg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_srgkUHy2EeGgQY3xJFttRg" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_srhLYHy2EeGgQY3xJFttRg" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_srevIXy2EeGgQY3xJFttRg" fontName="Segoe UI"/>
+ <element xmi:type="uml:Generalization" href="rulesInheritance.uml#_srYogHy2EeGgQY3xJFttRg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_srevIny2EeGgQY3xJFttRg" points="[-49, 9, 42, -8]$[-65, 14, 26, -3]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_srxqEHy2EeGgQY3xJFttRg" id="(0.30434782608695654,0.16)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_srxqEXy2EeGgQY3xJFttRg" id="(0.6597222222222222,0.91)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_t4nQoHy2EeGgQY3xJFttRg" type="4002" source="_mWMBAHy2EeGgQY3xJFttRg" target="_-B0lUHy1EeGgQY3xJFttRg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_t4pF0Hy2EeGgQY3xJFttRg" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_t4ps4Hy2EeGgQY3xJFttRg" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_t4nQoXy2EeGgQY3xJFttRg" fontName="Segoe UI"/>
+ <element xmi:type="uml:Generalization" href="rulesInheritance.uml#_t4kNUHy2EeGgQY3xJFttRg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_t4nQony2EeGgQY3xJFttRg" points="[-6, -11, 327, 471]$[-129, -269, 204, 213]$[-321, -469, 12, 13]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_t43vUHy2EeGgQY3xJFttRg" id="(0.35403726708074534,0.11)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_t43vUXy2EeGgQY3xJFttRg" id="(0.651685393258427,0.87)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_KF3wkHy3EeGgQY3xJFttRg" type="4002" source="__1OnMHy2EeGgQY3xJFttRg" target="_HsbCYHy2EeGgQY3xJFttRg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_KF4-sHy3EeGgQY3xJFttRg" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_KF4-sXy3EeGgQY3xJFttRg" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_KF3wkXy3EeGgQY3xJFttRg" fontName="Segoe UI"/>
+ <element xmi:type="uml:Generalization" href="rulesInheritance.uml#_KF0GMHy3EeGgQY3xJFttRg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_KF3wkny3EeGgQY3xJFttRg" points="[3, -13, -33, 106]$[27, -104, -9, 15]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KGBhkHy3EeGgQY3xJFttRg" id="(0.42142857142857143,0.13)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KGBhkXy3EeGgQY3xJFttRg" id="(0.29,0.85)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_KoyQYHy3EeGgQY3xJFttRg" type="4002" source="_Aa0AgHy3EeGgQY3xJFttRg" target="_HsbCYHy2EeGgQY3xJFttRg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Ko0FkHy3EeGgQY3xJFttRg" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Ko0FkXy3EeGgQY3xJFttRg" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_KoyQYXy3EeGgQY3xJFttRg" fontName="Segoe UI"/>
+ <element xmi:type="uml:Generalization" href="rulesInheritance.uml#_Kosw0Hy3EeGgQY3xJFttRg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_KoyQYny3EeGgQY3xJFttRg" points="[-8, -10, 71, 102]$[-75, -100, 4, 12]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KpBg8Hy3EeGgQY3xJFttRg" id="(0.4642857142857143,0.1)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KpBg8Xy3EeGgQY3xJFttRg" id="(0.63,0.88)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_L1iXYHy3EeGgQY3xJFttRg" type="4002" source="_Aa0AgHy3EeGgQY3xJFttRg" target="_-B0lUHy1EeGgQY3xJFttRg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_L1jlgHy3EeGgQY3xJFttRg" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_L1jlgXy3EeGgQY3xJFttRg" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_L1iXYXy3EeGgQY3xJFttRg" fontName="Segoe UI"/>
+ <element xmi:type="uml:Generalization" href="rulesInheritance.uml#_L1f7IHy3EeGgQY3xJFttRg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_L1iXYny3EeGgQY3xJFttRg" points="[3, -12, -77, 468]$[95, -286, 15, 194]$[80, -474, 0, 6]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_L1t9kHy3EeGgQY3xJFttRg" id="(0.49107142857142855,0.12)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_L1t9kXy3EeGgQY3xJFttRg" id="(0.6853932584269663,0.94)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_hUB5QHy3EeGgQY3xJFttRg" type="4002" source="_eOfrsHy3EeGgQY3xJFttRg" target="_7pGacHy1EeGgQY3xJFttRg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_hUDHYHy3EeGgQY3xJFttRg" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_hUDHYXy3EeGgQY3xJFttRg" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_hUB5QXy3EeGgQY3xJFttRg" fontName="Segoe UI"/>
+ <element xmi:type="uml:Generalization" href="rulesInheritance.uml#_hT8ZsHy3EeGgQY3xJFttRg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hUB5Qny3EeGgQY3xJFttRg" points="[-31, -7, 570, 114]$[-595, -117, 6, 4]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hUMRUHy3EeGgQY3xJFttRg" id="(0.18674698795180722,0.14)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hUMRUXy3EeGgQY3xJFttRg" id="(0.5945945945945946,0.91)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_iSE14Hy3EeGgQY3xJFttRg" type="4002" source="_pXo_0Hy2EeGgQY3xJFttRg" target="_7pGacHy1EeGgQY3xJFttRg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_iSGEAHy3EeGgQY3xJFttRg" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_iSGEAXy3EeGgQY3xJFttRg" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_iSE14Xy3EeGgQY3xJFttRg" fontName="Segoe UI"/>
+ <element xmi:type="uml:Generalization" href="rulesInheritance.uml#_iSBykHy3EeGgQY3xJFttRg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_iSE14ny3EeGgQY3xJFttRg" points="[-48, -14, 314, 86]$[-351, -91, 11, 9]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_iSPN8Hy3EeGgQY3xJFttRg" id="(0.3333333333333333,0.19)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_iSPN8Xy3EeGgQY3xJFttRg" id="(0.4954954954954955,0.95)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_Bb7p0Hy4EeGgQY3xJFttRg" type="PapyrusUMLClassDiagram" name="namedElement" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_CJO0sHy4EeGgQY3xJFttRg" type="2008" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CJQp4Hy4EeGgQY3xJFttRg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CJQp4Xy4EeGgQY3xJFttRg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CJQp4ny4EeGgQY3xJFttRg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CJRQ8Hy4EeGgQY3xJFttRg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CJRQ8Xy4EeGgQY3xJFttRg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CJRQ8ny4EeGgQY3xJFttRg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_CJR4AHy4EeGgQY3xJFttRg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CJR4AXy4EeGgQY3xJFttRg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CJR4Any4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CJR4A3y4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CJR4BHy4EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CJR4BXy4EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CJSfEHy4EeGgQY3xJFttRg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CJSfEXy4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CJSfEny4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CJSfE3y4EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CJSfFHy4EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CJSfFXy4EeGgQY3xJFttRg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CJSfFny4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CJSfF3y4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CJSfGHy4EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CJSfGXy4EeGgQY3xJFttRg"/>
+ </children>
+ <element xmi:type="uml:Class" href="rulesInheritance.uml#_-BnJ8Hy1EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CJO0sXy4EeGgQY3xJFttRg" x="330" y="18"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_DU59oHy4EeGgQY3xJFttRg" type="2008" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DU6ksHy4EeGgQY3xJFttRg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DU6ksXy4EeGgQY3xJFttRg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DU6ksny4EeGgQY3xJFttRg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DU6ks3y4EeGgQY3xJFttRg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DU7LwHy4EeGgQY3xJFttRg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DU7LwXy4EeGgQY3xJFttRg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_DU7Lwny4EeGgQY3xJFttRg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_DU7Lw3y4EeGgQY3xJFttRg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_DU7LxHy4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_DU7LxXy4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_DU7Lxny4EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DU7Lx3y4EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_DU7LyHy4EeGgQY3xJFttRg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_DU7LyXy4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_DU7Lyny4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_DU7Ly3y4EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DU7LzHy4EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_DU7LzXy4EeGgQY3xJFttRg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_DU7Lzny4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_DU7Lz3y4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_DU7L0Hy4EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DU7L0Xy4EeGgQY3xJFttRg"/>
+ </children>
+ <element xmi:type="uml:Class" href="rulesInheritance.uml#_DUd4wHy4EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DU59oXy4EeGgQY3xJFttRg" x="78" y="270"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_G9KdwHy4EeGgQY3xJFttRg" type="2008" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G9LE0Hy4EeGgQY3xJFttRg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_G9LE0Xy4EeGgQY3xJFttRg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G9LE0ny4EeGgQY3xJFttRg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_G9LE03y4EeGgQY3xJFttRg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_G9Lr4Hy4EeGgQY3xJFttRg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_G9Lr4Xy4EeGgQY3xJFttRg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_G9Lr4ny4EeGgQY3xJFttRg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_G9Lr43y4EeGgQY3xJFttRg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_G9Lr5Hy4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_G9Lr5Xy4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_G9Lr5ny4EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_G9Lr53y4EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_G9Lr6Hy4EeGgQY3xJFttRg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_G9Lr6Xy4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_G9Lr6ny4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_G9Lr63y4EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_G9Lr7Hy4EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_G9Lr7Xy4EeGgQY3xJFttRg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_G9Lr7ny4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_G9Lr73y4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_G9Lr8Hy4EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_G9MS8Hy4EeGgQY3xJFttRg"/>
+ </children>
+ <element xmi:type="uml:Class" href="rulesInheritance.uml#_G8tx0Hy4EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_G9KdwXy4EeGgQY3xJFttRg" x="258" y="270"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_IlgUkHy4EeGgQY3xJFttRg" type="2008" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IlhisHy4EeGgQY3xJFttRg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IlhisXy4EeGgQY3xJFttRg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Ilhisny4EeGgQY3xJFttRg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Ilhis3y4EeGgQY3xJFttRg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_IlhitHy4EeGgQY3xJFttRg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_IlhitXy4EeGgQY3xJFttRg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_IliJwHy4EeGgQY3xJFttRg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_IliJwXy4EeGgQY3xJFttRg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_IliJwny4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_IliJw3y4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_IliJxHy4EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IliJxXy4EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_IliJxny4EeGgQY3xJFttRg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_IliJx3y4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_IliJyHy4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_IliJyXy4EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IliJyny4EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_IliJy3y4EeGgQY3xJFttRg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_IliJzHy4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_IliJzXy4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_IliJzny4EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IliJz3y4EeGgQY3xJFttRg"/>
+ </children>
+ <element xmi:type="uml:Class" href="rulesInheritance.uml#_IlAlUHy4EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IlgUkXy4EeGgQY3xJFttRg" x="462" y="270"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Pl2K0Hy4EeGgQY3xJFttRg" type="2008" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Pl2x4Hy4EeGgQY3xJFttRg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Pl2x4Xy4EeGgQY3xJFttRg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Pl2x4ny4EeGgQY3xJFttRg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Pl2x43y4EeGgQY3xJFttRg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Pl3Y8Hy4EeGgQY3xJFttRg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Pl3Y8Xy4EeGgQY3xJFttRg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Pl3Y8ny4EeGgQY3xJFttRg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Pl3Y83y4EeGgQY3xJFttRg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Pl3Y9Hy4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Pl3Y9Xy4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Pl3Y9ny4EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Pl3Y93y4EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Pl3Y-Hy4EeGgQY3xJFttRg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Pl3Y-Xy4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Pl3Y-ny4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Pl3Y-3y4EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Pl3Y_Hy4EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Pl3Y_Xy4EeGgQY3xJFttRg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Pl3Y_ny4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Pl3Y_3y4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Pl3ZAHy4EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Pl3ZAXy4EeGgQY3xJFttRg"/>
+ </children>
+ <element xmi:type="uml:Class" href="rulesInheritance.uml#_PlWbkHy4EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Pl2K0Xy4EeGgQY3xJFttRg" x="648" y="270"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_VyLKMHy4EeGgQY3xJFttRg" type="2008" fontName="Segoe UI" lineColor="0">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VyMYUHy4EeGgQY3xJFttRg" source="ShadowFigure">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VyMYUXy4EeGgQY3xJFttRg" key="ShadowFigure_Value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VyMYUny4EeGgQY3xJFttRg" source="displayNameLabelIcon">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VyMYU3y4EeGgQY3xJFttRg" key="displayNameLabelIcon_value" value="false"/>
+ </eAnnotations>
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_VyM_YHy4EeGgQY3xJFttRg" source="QualifiedName">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_VyM_YXy4EeGgQY3xJFttRg" key="QualifiedNameDepth" value="1000"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_VyM_Yny4EeGgQY3xJFttRg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_VyM_Y3y4EeGgQY3xJFttRg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_VyM_ZHy4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_VyM_ZXy4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_VyM_Zny4EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VyM_Z3y4EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_VyM_aHy4EeGgQY3xJFttRg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_VyM_aXy4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_VyM_any4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_VyM_a3y4EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VyM_bHy4EeGgQY3xJFttRg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_VyNmcHy4EeGgQY3xJFttRg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_VyNmcXy4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_VyNmcny4EeGgQY3xJFttRg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_VyNmc3y4EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VyNmdHy4EeGgQY3xJFttRg"/>
+ </children>
+ <element xmi:type="uml:Class" href="rulesInheritance.uml#_N9PgMHy2EeGgQY3xJFttRg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VyLKMXy4EeGgQY3xJFttRg" x="810" y="276"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_Bb7p0Xy4EeGgQY3xJFttRg"/>
+ <element xmi:type="uml:Model" href="rulesInheritance.uml#_2N_coHy1EeGgQY3xJFttRg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_WwWpsHy4EeGgQY3xJFttRg" type="4002" source="_VyLKMHy4EeGgQY3xJFttRg" target="_CJO0sHy4EeGgQY3xJFttRg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_WwYe4Hy4EeGgQY3xJFttRg" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_WwYe4Xy4EeGgQY3xJFttRg" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_WwWpsXy4EeGgQY3xJFttRg" fontName="Segoe UI"/>
+ <element xmi:type="uml:Generalization" href="rulesInheritance.uml#_PXScUHy2EeGgQY3xJFttRg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_WwWpsny4EeGgQY3xJFttRg" points="[-69, -50, 447, 322]$[-447, -322, 69, 50]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_ZdaF0Hy4EeGgQY3xJFttRg" type="4002" source="_Pl2K0Hy4EeGgQY3xJFttRg" target="_CJO0sHy4EeGgQY3xJFttRg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ZdbT8Hy4EeGgQY3xJFttRg" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZdbT8Xy4EeGgQY3xJFttRg" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Zdas4Hy4EeGgQY3xJFttRg" fontName="Segoe UI"/>
+ <element xmi:type="uml:Generalization" href="rulesInheritance.uml#_Zc1eEHy4EeGgQY3xJFttRg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Zdas4Xy4EeGgQY3xJFttRg" points="[-15, -13, 172, 158]$[-182, -165, 5, 6]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ZeIekHy4EeGgQY3xJFttRg" id="(0.41818181818181815,0.13)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ZeJFoHy4EeGgQY3xJFttRg" id="(0.6629213483146067,0.94)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Z3tcMHy4EeGgQY3xJFttRg" type="4002" source="_IlgUkHy4EeGgQY3xJFttRg" target="_CJO0sHy4EeGgQY3xJFttRg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Z3uqUHy4EeGgQY3xJFttRg" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Z3uqUXy4EeGgQY3xJFttRg" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Z3tcMXy4EeGgQY3xJFttRg" fontName="Segoe UI"/>
+ <element xmi:type="uml:Generalization" href="rulesInheritance.uml#_Z3VowHy4EeGgQY3xJFttRg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Z3tcMny4EeGgQY3xJFttRg" points="[-5, -10, 75, 175]$[-89, -162, -9, 23]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Z42EoHy4EeGgQY3xJFttRg" id="(0.45806451612903226,0.1)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Z42EoXy4EeGgQY3xJFttRg" id="(0.4606741573033708,0.77)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_aZukIHy4EeGgQY3xJFttRg" type="4002" source="_G9KdwHy4EeGgQY3xJFttRg" target="_CJO0sHy4EeGgQY3xJFttRg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_aZvLMHy4EeGgQY3xJFttRg" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_aZvyQHy4EeGgQY3xJFttRg" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_aZukIXy4EeGgQY3xJFttRg" fontName="Segoe UI"/>
+ <element xmi:type="uml:Generalization" href="rulesInheritance.uml#_aZWJoHy4EeGgQY3xJFttRg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_aZukIny4EeGgQY3xJFttRg" points="[7, -12, -94, 160]$[94, -164, -7, 8]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_aaRWsHy4EeGgQY3xJFttRg" id="(0.5373134328358209,0.12)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_aaRWsXy4EeGgQY3xJFttRg" id="(0.3782771535580524,0.92)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_a5uS0Hy4EeGgQY3xJFttRg" type="4002" source="_DU59oHy4EeGgQY3xJFttRg" target="_CJO0sHy4EeGgQY3xJFttRg" lineColor="0">
+ <children xmi:type="notation:DecorationNode" xmi:id="_a5u54Hy4EeGgQY3xJFttRg" type="6007">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_a5vg8Hy4EeGgQY3xJFttRg" y="40"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_a5uS0Xy4EeGgQY3xJFttRg" fontName="Segoe UI"/>
+ <element xmi:type="uml:Generalization" href="rulesInheritance.uml#_a5TcEHy4EeGgQY3xJFttRg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_a5uS0ny4EeGgQY3xJFttRg" points="[18, -13, -228, 158]$[234, -165, -12, 6]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_a6VW0Hy4EeGgQY3xJFttRg" id="(0.5283018867924528,0.13)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_a6V94Hy4EeGgQY3xJFttRg" id="(0.18726591760299627,0.94)"/>
+ </edges>
+ </notation:Diagram>
+</xmi:XMI>
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/doc/rulesInheritance.uml b/extraplugins/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/doc/rulesInheritance.uml
new file mode 100644
index 00000000000..dda3161236d
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/doc/rulesInheritance.uml
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="20110701" xmlns:xmi="http://www.omg.org/spec/XMI/20110701" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML" xmi:id="_2N_coHy1EeGgQY3xJFttRg" name="model">
+ <packagedElement xmi:type="uml:Class" xmi:id="_7o4_EHy1EeGgQY3xJFttRg" name="mapTypeToType" isAbstract="true">
+ <generalization xmi:id="_Bgu8MHy2EeGgQY3xJFttRg" general="_-BnJ8Hy1EeGgQY3xJFttRg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_-BnJ8Hy1EeGgQY3xJFttRg" name="transformNamedElementToJavaElement" isAbstract="true"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_HsU7wHy2EeGgQY3xJFttRg" name="generateClass">
+ <generalization xmi:id="_J-RJMHy2EeGgQY3xJFttRg" general="_7o4_EHy1EeGgQY3xJFttRg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_N9PgMHy2EeGgQY3xJFttRg" name="type2CompilationUnit">
+ <generalization xmi:id="_PXScUHy2EeGgQY3xJFttRg" general="_-BnJ8Hy1EeGgQY3xJFttRg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_SBMd0Hy2EeGgQY3xJFttRg" name="generateCuInterface">
+ <generalization xmi:id="_U19rgHy2EeGgQY3xJFttRg" general="_TH4ZEHy2EeGgQY3xJFttRg"/>
+ <generalization xmi:id="_WTWPgHy2EeGgQY3xJFttRg" general="_-BnJ8Hy1EeGgQY3xJFttRg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_TH4ZEHy2EeGgQY3xJFttRg" name="GenerateInterface">
+ <generalization xmi:id="_erQVoHy2EeGgQY3xJFttRg" general="_7o4_EHy1EeGgQY3xJFttRg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_bZitQHy2EeGgQY3xJFttRg" name="generateNestedInterface">
+ <generalization xmi:id="_dMZK8Hy2EeGgQY3xJFttRg" general="_TH4ZEHy2EeGgQY3xJFttRg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_lW6VUHy2EeGgQY3xJFttRg" name="generateNestedEnumeration">
+ <generalization xmi:id="_rf1bYHy2EeGgQY3xJFttRg" general="_pXhrEHy2EeGgQY3xJFttRg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_mWF6YHy2EeGgQY3xJFttRg" name="generateCuEnumeration">
+ <generalization xmi:id="_srYogHy2EeGgQY3xJFttRg" general="_pXhrEHy2EeGgQY3xJFttRg"/>
+ <generalization xmi:id="_t4kNUHy2EeGgQY3xJFttRg" general="_-BnJ8Hy1EeGgQY3xJFttRg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_pXhrEHy2EeGgQY3xJFttRg" name="generateEnumeration">
+ <generalization xmi:id="_iSBykHy3EeGgQY3xJFttRg" general="_7o4_EHy1EeGgQY3xJFttRg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="__1H5gHy2EeGgQY3xJFttRg" name="generateNestedClass">
+ <generalization xmi:id="_KF0GMHy3EeGgQY3xJFttRg" general="_HsU7wHy2EeGgQY3xJFttRg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_AawWIHy3EeGgQY3xJFttRg" name="generateCUClass">
+ <generalization xmi:id="_Kosw0Hy3EeGgQY3xJFttRg" general="_HsU7wHy2EeGgQY3xJFttRg"/>
+ <generalization xmi:id="_L1f7IHy3EeGgQY3xJFttRg" general="_-BnJ8Hy1EeGgQY3xJFttRg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_eOY-AHy3EeGgQY3xJFttRg" name="generateCuPrimitiveType">
+ <generalization xmi:id="_hT8ZsHy3EeGgQY3xJFttRg" general="_7o4_EHy1EeGgQY3xJFttRg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_DUd4wHy4EeGgQY3xJFttRg" name="propertyToField">
+ <generalization xmi:id="_a5TcEHy4EeGgQY3xJFttRg" general="_-BnJ8Hy1EeGgQY3xJFttRg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_G8tx0Hy4EeGgQY3xJFttRg" name="operationToMethod">
+ <generalization xmi:id="_aZWJoHy4EeGgQY3xJFttRg" general="_-BnJ8Hy1EeGgQY3xJFttRg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_IlAlUHy4EeGgQY3xJFttRg" name="parameterToParameter">
+ <generalization xmi:id="_Z3VowHy4EeGgQY3xJFttRg" general="_-BnJ8Hy1EeGgQY3xJFttRg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_PlWbkHy4EeGgQY3xJFttRg" name="generateCuClass">
+ <generalization xmi:id="_Zc1eEHy4EeGgQY3xJFttRg" general="_-BnJ8Hy1EeGgQY3xJFttRg"/>
+ </packagedElement>
+</uml:Model>
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/transforms/uml/uml2jdt2.qvto b/extraplugins/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/transforms/uml/uml2jdt2.qvto
index a6f6eeaa51a..a80be48bfb4 100644
--- a/extraplugins/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/transforms/uml/uml2jdt2.qvto
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/transforms/uml/uml2jdt2.qvto
@@ -44,6 +44,9 @@ intermediate property UMLmm::TAGVALUE_NAME : String;
intermediate property UMLmm::TAGVALUE_GENERATED : String;
intermediate property UMLmm::TAGVALUE_IMPLEMENTATION_CLASS : String;
intermediate property UMLmm::NO_PACKAGE : String;
+/** Default name values for generation */
+intermediate property UMLmm::GENERATION_DEFAULT_SRC_NAME : String;
+intermediate property UMLmm::GENERATION_DEFAULT_PROJECT_NAME : String;
/**
* The main operation. This is the entry point of the transformation.
@@ -56,7 +59,7 @@ main() {
uml.STEREOTYPE_JAVA_CLASS := "java::JavaClass";
uml.STEREOTYPE_JAVA_PROJECT := "java::JavaProject";
uml.STEREOTYPE_JAVA_SRC_FOLDER := "java::JavaSrcFolder";
- uml.STEREOTYPE_JAVA_PACKAGE := "java::JavaPackage";
+ uml.STEREOTYPE_JAVA_PACKAGE := "java::JavaPackage_";
uml.STEREOTYPE_PRIMITIVETYPE := "java::PrimitiveType";
uml.TAGVALUE_SRC := "srcName";
@@ -66,15 +69,20 @@ main() {
uml.TAGVALUE_IMPLEMENTATION_CLASS := "implementationClass";
uml.NO_PACKAGE := null;
+ // Default names
+ uml.GENERATION_DEFAULT_SRC_NAME := "generated";
+ uml.GENERATION_DEFAULT_PROJECT_NAME := "defaultProject";
+
// Select only object that we want to generate
- var types : Set(uml::Type) := uml.objects()[uml::Type]->select(o | o.oclIsTypeOf(uml::Class)
+ var types : Set(uml::Type) := uml.objects()[uml::Type]->select(o |
+ o.oclIsTypeOf(uml::Class)
or o.oclIsTypeOf(uml::Interface)
or o.oclIsTypeOf(uml::PrimitiveType)
or o.oclIsTypeOf(uml::Enumeration) );
log('------------------------ Start marking input elements');
// First pass: mark uml::Type objects
- types -> map markUmlType("generated", "defaultProject");
+ types -> map markUmlType(uml.GENERATION_DEFAULT_SRC_NAME, uml.GENERATION_DEFAULT_PROJECT_NAME);
// show result
log('------------------------ Show results');
types -> map showMarkedType();
@@ -159,11 +167,14 @@ query uml::NamedElement::isGenerated() : Boolean {
/**
+ * Compute additional data associated to self.
+ * How to compute such datas is dependant of the type of self, so dispatch to the appropriate method.
+ *
* Common ancestor. Dispatch to correct method according to the element's type.
*/
helper NamedElement::getData(defaultSrcName : String, defaultProjectName : String) : TypeMarker {
- log("NamedElement::getData() " + self.name);
+// log("NamedElement::getData(self.name=" + self.name + ") ");
// overloading doesn't work, so we do it manually
if( self.oclIsKindOf(uml::PrimitiveType)) then {
@@ -183,11 +194,12 @@ helper NamedElement::getData(defaultSrcName : String, defaultProjectName : Strin
}
/**
- *
+ * Compute the additional data for a uml::Type.
+ * Recursively set the additional data for the parent (owner) of this type.
*/
helper Type::getDataFromType( defaultSrcName : String, defaultProjectName : String) : TypeMarker {
- log("Type::getDataFromType()");
+ log( "Type::getDataFromType(self.name=" + self.name + ")");
// Check if data already exist
if not self.data.oclIsUndefined()
then
@@ -203,7 +215,7 @@ helper Type::getDataFromType( defaultSrcName : String, defaultProjectName : Stri
then {
//
var parentData : TypeMarker := parent.getData(defaultSrcName, defaultProjectName);
- data.srcName := self.getStringTaggedValue(uml.STEREOTYPE_JAVA_CLASS, uml.TAGVALUE_SRC, parentData.srcName);
+ data.srcName := self.getStringTaggedValue(uml.STEREOTYPE_JAVA_CLASS, uml.TAGVALUE_SRC, parentData.srcName);
data.projectName := self.getStringTaggedValue( uml.STEREOTYPE_JAVA_CLASS, uml.TAGVALUE_PROJECT, parentData.projectName );
data.packageName := parentData.packageName;
data.generated := self.getBooleanTaggedValue( uml.STEREOTYPE_JAVA_CLASS, uml.TAGVALUE_GENERATED, true );
@@ -222,12 +234,15 @@ helper Type::getDataFromType( defaultSrcName : String, defaultProjectName : Stri
}
/**
+ * Compute the additional data for a uml::Type.
+ * Recursively set the additional data for the parent (owner) of this type.
+ *
* Primitive types are stored in the package declared in uml.TAGVALUE_IMPLEMENTATION_CLASS.
* If no implementation class is declared, use the same scheme as Classes.
*/
helper PrimitiveType::getDataFromPrimitiveType( defaultSrcName : String, defaultProjectName : String) : TypeMarker {
- log("Type::getDataFromPrimitiveType()");
+ log("Type::getDataFromPrimitiveType(self.name=" + self.name + ")");
// Check if data already exist
if not self.data.oclIsUndefined()
then
@@ -322,7 +337,7 @@ query String::lastNameFromQualifiedName( ) : String {
*/
helper Package::getDataFromPackage(defaultSrcName : String, defaultProjectName : String) : TypeMarker {
- log("Type::getDataFromPackage() " + self.name);
+ log("Type::getDataFromPackage(self.name=" + self.name + ")");
// Check if data already exist
if not self.data.oclIsUndefined()
then
@@ -330,30 +345,35 @@ helper Package::getDataFromPackage(defaultSrcName : String, defaultProjectName :
endif;
var data : TypeMarker;
- // Switch to correct helper, according to stereotype
- if( self.isStereotyped( uml.STEREOTYPE_JAVA_SRC_FOLDER) ) then {
- // SrcFolder
- data := self.createDataFromSrcFolder(defaultSrcName, defaultProjectName);
- }
- else {
- if ( self.isStereotyped( uml.STEREOTYPE_JAVA_PROJECT) ) then {
- // JavaProject
- data := self.createDataFromJavaProject(defaultSrcName, defaultProjectName);
- }
- else {
- if( self.oclIsTypeOf(uml::Model) ) then {
- // uml::Model
- data := self.createDataFromUmlModel(defaultSrcName, defaultProjectName);
- }
- else {
- // Default Package
- data := self.createDataFromSimplePackage(defaultSrcName, defaultProjectName);
- } endif;
-
- } endif;
-
- } endif;
-
+
+ // Switch to correct helper, according to stereotype
+ switch {
+ case (self.isStereotyped( uml.STEREOTYPE_JAVA_SRC_FOLDER) ) {
+ // SrcFolder
+ data := self.createDataFromSrcFolder(defaultSrcName, defaultProjectName);
+ }
+ case ( self.isStereotyped( uml.STEREOTYPE_JAVA_PROJECT) ) {
+ // JavaProject
+ data := self.createDataFromJavaProject(defaultSrcName, defaultProjectName);
+ }
+ case ( self.isStereotyped( uml.STEREOTYPE_JAVA_PACKAGE)) {
+ // Treat it as a Java Package
+ // uml::Model and uml::Package can be marked with this stereotype.
+ // When a uml::Model is marked as package, it is not considered anymore as a root for packages
+ data := self.createDataFromSimplePackage(defaultSrcName, defaultProjectName);
+ }
+ case ( self.oclIsTypeOf(uml::Model) ) {
+ // uml::Model
+ // uml::Model is considered as the root of packages.
+ // So, stop on type Model, except if a STEREOTYPE_JAVA_PACKAGE is set.
+ data := self.createDataFromUmlModel(defaultSrcName, defaultProjectName);
+ }
+ else {
+ // Default Package
+ data := self.createDataFromSimplePackage(defaultSrcName, defaultProjectName);
+ }
+ };
+
self.data := data;
return data;
}
@@ -411,8 +431,9 @@ helper Package::createDataFromSimplePackage(defaultSrcName : String, defaultProj
data.generated := if parentData.generated = false then false else self.getBooleanTaggedValue( uml.STEREOTYPE_JAVA_PACKAGE, uml.TAGVALUE_GENERATED, true ) endif;
}
else {
+ // This is the root node, and maybe the stereotype overide some values.
data.srcName := self.getStringTaggedValue( uml.STEREOTYPE_JAVA_PACKAGE, uml.TAGVALUE_SRC, defaultSrcName );
- data.projectName := self.getStringTaggedValue( uml.STEREOTYPE_JAVA_PACKAGE, uml.TAGVALUE_PROJECT, defaultProjectName );
+ data.projectName := self.getStringTaggedValue( uml.STEREOTYPE_JAVA_PACKAGE, uml.TAGVALUE_PROJECT, self.name );
data.packageName := self.getStringTaggedValue(uml.STEREOTYPE_JAVA_PACKAGE, uml.TAGVALUE_NAME, self.name);
data.generated := self.getBooleanTaggedValue( uml.STEREOTYPE_JAVA_PACKAGE, uml.TAGVALUE_GENERATED, true );
}
@@ -513,19 +534,31 @@ mapping uml::NamedElement::showMarkedType()
}
/**
- * Map a model to a JavaModel
+ * Map a model to a JavaModel.
+ * Compute and associate additional data (in a TypeMarker class) to the type.
+ * Recursively ensure that the data are associated to the container of this type.
*/
mapping uml::Type::markUmlType(defaultSrcName : String, defaultProjectName : String)
// when { self.isCompilationUnit() }
{
- log("------ try to get data for " + self.name);
+// log("------ try to get data for " + self.name);
if( self.data.oclIsUndefined() ) then {
- log("try to get data for " + self.name);
+ log("Compute associated data for '" + self.name + "'");
self.data := self.getData( defaultSrcName, defaultProjectName);
} endif;
}
/**
+ * Map a model to a JavaModel.
+ * Compute and associate additional data (in a TypeMarker class) to the type.
+ * Recursively ensure that the data are associated to the container of this type.
+ */
+mapping uml::Type::markUmlType()
+{
+ self.map markUmlType( uml.GENERATION_DEFAULT_SRC_NAME, uml.GENERATION_DEFAULT_PROJECT_NAME);
+}
+
+/**
*
*/
mapping uml::Namespace::getNamespaceMarker() : TypeMarker {
@@ -573,7 +606,7 @@ helper createOrRetrieveJavaModel2() : JDTJavaModel {
* Generate a Class that should be a CompilationUnit and set its CompilationUnit
*/
mapping uml::Class::generateCuClass() : JDTmm::JDTClass
- inherits Class::generateClass, NamedElement::transformNamedElementToJavaElement
+ inherits Class::generateClass /*, NamedElement::transformNamedElementToJavaElement */
when { self.isCompilationUnit() }
{
log("------- transform", self.qualifiedName);
@@ -651,7 +684,7 @@ mapping uml::Type::type2CompilationUnit() : JDTCompilationUnit
* Generate a Interface that should be a CompilationUnit and set its CompilationUnit
*/
mapping uml::Interface::generateCuInterface() : JDTmm::JDTInterface
- inherits Interface::generateInterface, NamedElement::transformNamedElementToJavaElement
+ inherits Interface::generateInterface /*, NamedElement::transformNamedElementToJavaElement */
when { self.isCompilationUnit() }
{
log("------- transform", self.qualifiedName);
@@ -696,7 +729,7 @@ mapping uml::Interface::generateInterface() : JDTmm::JDTInterface
* Generate a Enumeration that should be a CompilationUnit and set its CompilationUnit
*/
mapping uml::Enumeration::generateCuEnumeration() : JDTmm::JDTEnum
- inherits Enumeration::generateEnumeration, NamedElement::transformNamedElementToJavaElement
+ inherits Enumeration::generateEnumeration /*, NamedElement::transformNamedElementToJavaElement */
when { self.isCompilationUnit() }
{
log("------- transform", self.qualifiedName);
@@ -789,6 +822,12 @@ mapping uml::PrimitiveType::generateCuPrimitiveType() : JDTmm::JDTClass
abstract mapping uml::Classifier::mapTypeToType() : JDTmm::JDTType
inherits NamedElement::transformNamedElementToJavaElement
{
+
+ // Ensure that data are set
+ if( self.data.oclIsUndefined()) then {
+ self.map markUmlType();
+ } endif;
+
elementName := self.name;
// visibility
visibility := self.visibility.visibilityToVisibility();
@@ -919,7 +958,11 @@ mapping uml::Parameter::parameterToParameter() : jdtmm::JDTParameter
}
/**
+ * Transform a Behavior to a JDTMethodBody.
+ * Root rule of transforming a Behavior to a JDTMethodBody. The real transformation ois done in sub-rules
+ * (with the same name, but different input type).
*
+ * Behavior can't be transformed to JDTMethodBody, so create a JDTMethodBody with an error message.
*/
mapping uml::Behavior::BehaviorToMethodBody() : jdtmm::JDTMethodBody {
init {
@@ -930,7 +973,8 @@ mapping uml::Behavior::BehaviorToMethodBody() : jdtmm::JDTMethodBody {
}
/**
- *
+ * Transform an OpaqueBehavior to a MethodBody.
+ * As we return a subclass of JDTMethodBody, delegate to the appropriate rule.
*/
mapping uml::OpaqueBehavior::BehaviorToMethodBody() : jdtmm::JDTMethodBody {
init {
@@ -940,13 +984,11 @@ mapping uml::OpaqueBehavior::BehaviorToMethodBody() : jdtmm::JDTMethodBody {
}
/**
- *
+ * Transform an OpaqueBehavior to a OpaqueBody
*/
mapping uml::OpaqueBehavior::OpaqueBehaviorToOpaqueBody() : jdtmm::JDTOpaqueBody {
- log("OpaqueBehavior found");
-
-
+// log("OpaqueBehavior found");
// Look for the java index
var index : Integer := self.language->indexOf("Java");
@@ -1070,7 +1112,7 @@ mapping TypeMarker::typeMarkerToJavaProject() : JDTJavaProject {
init {
// Lookup if there is a Project already created for this projectName
// resolveIn return a list of object created with the specified mapping rule
- // Then, we lloup in the list for an element with the requested name.
+ // Then, we loukup in the list for an element with the requested name.
result := resolveIn(TypeMarker::typeMarkerToJavaProject)
->select( project | self.projectName=project.oclAsType(JDTJavaProject).elementName)->first().oclAsType(JDTJavaProject);

Back to the top