aboutsummaryrefslogtreecommitdiffstats
path: root/Tests/MODELS2020-CaseStudies/case.study.familyTree.model
diff options
context:
space:
mode:
Diffstat (limited to 'Tests/MODELS2020-CaseStudies/case.study.familyTree.model')
-rw-r--r--Tests/MODELS2020-CaseStudies/case.study.familyTree.model/.classpath7
-rw-r--r--Tests/MODELS2020-CaseStudies/case.study.familyTree.model/.project28
-rw-r--r--Tests/MODELS2020-CaseStudies/case.study.familyTree.model/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--Tests/MODELS2020-CaseStudies/case.study.familyTree.model/META-INF/MANIFEST.MF16
-rw-r--r--Tests/MODELS2020-CaseStudies/case.study.familyTree.model/build.properties10
-rw-r--r--Tests/MODELS2020-CaseStudies/case.study.familyTree.model/model/FamilyTree.xmi3
-rw-r--r--Tests/MODELS2020-CaseStudies/case.study.familyTree.model/model/familytree.aird159
-rw-r--r--Tests/MODELS2020-CaseStudies/case.study.familyTree.model/model/familytree.ecore17
-rw-r--r--Tests/MODELS2020-CaseStudies/case.study.familyTree.model/model/familytree.genmodel33
-rw-r--r--Tests/MODELS2020-CaseStudies/case.study.familyTree.model/plugin.properties4
-rw-r--r--Tests/MODELS2020-CaseStudies/case.study.familyTree.model/plugin.xml17
-rw-r--r--Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/FamilyTree.java38
-rw-r--r--Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/FamilytreeFactory.java51
-rw-r--r--Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/FamilytreePackage.java321
-rw-r--r--Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/Member.java102
-rw-r--r--Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/impl/FamilyTreeImpl.java153
-rw-r--r--Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/impl/FamilytreeFactoryImpl.java109
-rw-r--r--Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/impl/FamilytreePackageImpl.java251
-rw-r--r--Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/impl/MemberImpl.java334
-rw-r--r--Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/util/FamilytreeAdapterFactory.java138
-rw-r--r--Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/util/FamilytreeSwitch.java131
21 files changed, 1929 insertions, 0 deletions
diff --git a/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/.classpath b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/.classpath
new file mode 100644
index 00000000..b862a296
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/.classpath
@@ -0,0 +1,7 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<classpath>
3 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
4 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
5 <classpathentry kind="src" path="src"/>
6 <classpathentry kind="output" path="bin"/>
7</classpath>
diff --git a/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/.project b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/.project
new file mode 100644
index 00000000..f379b9b4
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/.project
@@ -0,0 +1,28 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<projectDescription>
3 <name>case.study.familyTree.model</name>
4 <comment></comment>
5 <projects>
6 </projects>
7 <buildSpec>
8 <buildCommand>
9 <name>org.eclipse.jdt.core.javabuilder</name>
10 <arguments>
11 </arguments>
12 </buildCommand>
13 <buildCommand>
14 <name>org.eclipse.pde.ManifestBuilder</name>
15 <arguments>
16 </arguments>
17 </buildCommand>
18 <buildCommand>
19 <name>org.eclipse.pde.SchemaBuilder</name>
20 <arguments>
21 </arguments>
22 </buildCommand>
23 </buildSpec>
24 <natures>
25 <nature>org.eclipse.pde.PluginNature</nature>
26 <nature>org.eclipse.jdt.core.javanature</nature>
27 </natures>
28</projectDescription>
diff --git a/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/.settings/org.eclipse.jdt.core.prefs b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000..295926d9
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
1eclipse.preferences.version=1
2org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
3org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
4org.eclipse.jdt.core.compiler.compliance=1.8
5org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
6org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
7org.eclipse.jdt.core.compiler.source=1.8
diff --git a/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/META-INF/MANIFEST.MF b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/META-INF/MANIFEST.MF
new file mode 100644
index 00000000..70360954
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/META-INF/MANIFEST.MF
@@ -0,0 +1,16 @@
1Manifest-Version: 1.0
2Bundle-ManifestVersion: 2
3Bundle-Name: %pluginName
4Bundle-SymbolicName: case.study.familyTree.model;singleton:=true
5Bundle-Version: 1.0.0.qualifier
6Bundle-ClassPath: .
7Bundle-Vendor: %providerName
8Bundle-Localization: plugin
9Automatic-Module-Name: case.study.familyTree.model
10Bundle-RequiredExecutionEnvironment: JavaSE-1.8
11Export-Package: familytree,
12 familytree.impl,
13 familytree.util
14Require-Bundle: org.eclipse.core.runtime,
15 org.eclipse.emf.ecore;visibility:=reexport
16Bundle-ActivationPolicy: lazy
diff --git a/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/build.properties b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/build.properties
new file mode 100644
index 00000000..4d3b1827
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/build.properties
@@ -0,0 +1,10 @@
1#
2
3bin.includes = .,\
4 model/,\
5 META-INF/,\
6 plugin.xml,\
7 plugin.properties
8jars.compile.order = .
9source.. = src/
10output.. = bin/
diff --git a/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/model/FamilyTree.xmi b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/model/FamilyTree.xmi
new file mode 100644
index 00000000..066b286f
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/model/FamilyTree.xmi
@@ -0,0 +1,3 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<familytree:FamilyTree xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3 xmlns:familytree="http://www.example.org/familytree" xsi:schemaLocation="http://www.example.org/familytree familytree.ecore"/>
diff --git a/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/model/familytree.aird b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/model/familytree.aird
new file mode 100644
index 00000000..f2980c32
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/model/familytree.aird
@@ -0,0 +1,159 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:description="http://www.eclipse.org/sirius/description/1.1.0" xmlns:description_1="http://www.eclipse.org/sirius/diagram/description/1.1.0" xmlns:diagram="http://www.eclipse.org/sirius/diagram/1.1.0" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/sirius/diagram/description/style/1.1.0" xmlns:viewpoint="http://www.eclipse.org/sirius/1.1.0" xsi:schemaLocation="http://www.eclipse.org/sirius/description/1.1.0 http://www.eclipse.org/sirius/1.1.0#//description http://www.eclipse.org/sirius/diagram/description/1.1.0 http://www.eclipse.org/sirius/diagram/1.1.0#//description http://www.eclipse.org/sirius/diagram/description/style/1.1.0 http://www.eclipse.org/sirius/diagram/1.1.0#//description/style">
3 <viewpoint:DAnalysis uid="_lkFqkDsLEeqkYdt9h49cMw" selectedViews="_mCqc8DsLEeqkYdt9h49cMw" version="14.3.0.201909031200">
4 <semanticResources>familytree.ecore</semanticResources>
5 <ownedViews xmi:type="viewpoint:DView" uid="_mCqc8DsLEeqkYdt9h49cMw">
6 <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']"/>
7 <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_mMIiADsLEeqkYdt9h49cMw" name="familytree" repPath="#_mGB6ADsLEeqkYdt9h49cMw">
8 <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
9 <target xmi:type="ecore:EPackage" href="familytree.ecore#/"/>
10 </ownedRepresentationDescriptors>
11 </ownedViews>
12 </viewpoint:DAnalysis>
13 <diagram:DSemanticDiagram uid="_mGB6ADsLEeqkYdt9h49cMw">
14 <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_mMCbYDsLEeqkYdt9h49cMw" source="DANNOTATION_CUSTOMIZATION_KEY">
15 <data xmi:type="diagram:ComputedStyleDescriptionRegistry" uid="_mMDCcDsLEeqkYdt9h49cMw">
16 <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_aZCDMDsSEeqkYdt9h49cMw" sourceArrow="FillDiamond" routingStyle="manhattan">
17 <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
18 <centerLabelStyleDescription xmi:type="style:CenterLabelStyleDescription" xmi:id="_aZCDMTsSEeqkYdt9h49cMw" showIcon="false" labelExpression="service:render">
19 <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
20 </centerLabelStyleDescription>
21 <endLabelStyleDescription xmi:type="style:EndLabelStyleDescription" xmi:id="_aZCDMjsSEeqkYdt9h49cMw" labelSize="6" showIcon="false" labelExpression="service:eKeysLabel">
22 <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/>
23 </endLabelStyleDescription>
24 </computedStyleDescriptions>
25 </data>
26 </ownedAnnotationEntries>
27 <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_mNJOoDsLEeqkYdt9h49cMw" source="GMF_DIAGRAMS">
28 <data xmi:type="notation:Diagram" xmi:id="_mNJOoTsLEeqkYdt9h49cMw" type="Sirius" element="_mGB6ADsLEeqkYdt9h49cMw" measurementUnit="Pixel">
29 <children xmi:type="notation:Node" xmi:id="_Vt3KADsREeqkYdt9h49cMw" type="2003" element="_Vs0oMDsREeqkYdt9h49cMw">
30 <children xmi:type="notation:Node" xmi:id="_VuD-UDsREeqkYdt9h49cMw" type="5007"/>
31 <children xmi:type="notation:Node" xmi:id="_VuFMcDsREeqkYdt9h49cMw" type="7004">
32 <styles xmi:type="notation:SortingStyle" xmi:id="_VuFMcTsREeqkYdt9h49cMw"/>
33 <styles xmi:type="notation:FilteringStyle" xmi:id="_VuFMcjsREeqkYdt9h49cMw"/>
34 </children>
35 <styles xmi:type="notation:ShapeStyle" xmi:id="_Vt3KATsREeqkYdt9h49cMw" fontName="Segoe UI" fontHeight="8"/>
36 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Vt3KAjsREeqkYdt9h49cMw" x="120" y="144" width="111" height="87"/>
37 </children>
38 <children xmi:type="notation:Node" xmi:id="_aa12gDsREeqkYdt9h49cMw" type="2003" element="_aaZxoDsREeqkYdt9h49cMw">
39 <children xmi:type="notation:Node" xmi:id="_aa3rsDsREeqkYdt9h49cMw" type="5007"/>
40 <children xmi:type="notation:Node" xmi:id="_aa4SwDsREeqkYdt9h49cMw" type="7004">
41 <children xmi:type="notation:Node" xmi:id="_dkHUkDsREeqkYdt9h49cMw" type="3010" element="_djV4gDsREeqkYdt9h49cMw">
42 <styles xmi:type="notation:FontStyle" xmi:id="_dkHUkTsREeqkYdt9h49cMw" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
43 <layoutConstraint xmi:type="notation:Location" xmi:id="_dkHUkjsREeqkYdt9h49cMw"/>
44 </children>
45 <children xmi:type="notation:Node" xmi:id="_7h4v4DsREeqkYdt9h49cMw" type="3010" element="_7hUIIDsREeqkYdt9h49cMw">
46 <styles xmi:type="notation:FontStyle" xmi:id="_7h4v4TsREeqkYdt9h49cMw" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
47 <layoutConstraint xmi:type="notation:Location" xmi:id="_7h4v4jsREeqkYdt9h49cMw"/>
48 </children>
49 <styles xmi:type="notation:SortingStyle" xmi:id="_aa4SwTsREeqkYdt9h49cMw"/>
50 <styles xmi:type="notation:FilteringStyle" xmi:id="_aa4SwjsREeqkYdt9h49cMw"/>
51 </children>
52 <styles xmi:type="notation:ShapeStyle" xmi:id="_aa12gTsREeqkYdt9h49cMw" fontName="Segoe UI" fontHeight="8"/>
53 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aa12gjsREeqkYdt9h49cMw" x="372" y="144" width="147" height="111"/>
54 </children>
55 <styles xmi:type="notation:DiagramStyle" xmi:id="_mNJOojsLEeqkYdt9h49cMw"/>
56 <edges xmi:type="notation:Edge" xmi:id="_aZ6M8DsSEeqkYdt9h49cMw" type="4001" element="_aY6ucDsSEeqkYdt9h49cMw" source="_Vt3KADsREeqkYdt9h49cMw" target="_aa12gDsREeqkYdt9h49cMw">
57 <children xmi:type="notation:Node" xmi:id="_aZ93UDsSEeqkYdt9h49cMw" type="6001">
58 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aZ93UTsSEeqkYdt9h49cMw" x="20" y="7"/>
59 </children>
60 <children xmi:type="notation:Node" xmi:id="_aZ_sgDsSEeqkYdt9h49cMw" type="6002">
61 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aaATkDsSEeqkYdt9h49cMw" x="59" y="10"/>
62 </children>
63 <children xmi:type="notation:Node" xmi:id="_aaBhsDsSEeqkYdt9h49cMw" type="6003">
64 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aaBhsTsSEeqkYdt9h49cMw" x="1" y="10"/>
65 </children>
66 <styles xmi:type="notation:ConnectorStyle" xmi:id="_aZ6M8TsSEeqkYdt9h49cMw" routing="Rectilinear"/>
67 <styles xmi:type="notation:FontStyle" xmi:id="_aZ6M8jsSEeqkYdt9h49cMw" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
68 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_aZ6M8zsSEeqkYdt9h49cMw" points="[0, 0, -143, 0]$[143, 0, 0, 0]"/>
69 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_aaMg0DsSEeqkYdt9h49cMw" id="(1.0,0.1411764705882353)"/>
70 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_aaMg0TsSEeqkYdt9h49cMw" id="(0.0,0.11009174311926606)"/>
71 </edges>
72 <edges xmi:type="notation:Edge" xmi:id="_2qcDUDsSEeqkYdt9h49cMw" type="4001" element="_2p6e4DsSEeqkYdt9h49cMw" source="_aa12gDsREeqkYdt9h49cMw" target="_aa12gDsREeqkYdt9h49cMw">
73 <children xmi:type="notation:Node" xmi:id="_2qdRcDsSEeqkYdt9h49cMw" type="6001">
74 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2qdRcTsSEeqkYdt9h49cMw" y="-10"/>
75 </children>
76 <children xmi:type="notation:Node" xmi:id="_2qdRcjsSEeqkYdt9h49cMw" type="6002">
77 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2qdRczsSEeqkYdt9h49cMw" x="-15" y="-26"/>
78 </children>
79 <children xmi:type="notation:Node" xmi:id="_2qdRdDsSEeqkYdt9h49cMw" type="6003">
80 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2qd4gDsSEeqkYdt9h49cMw" x="43" y="22"/>
81 </children>
82 <styles xmi:type="notation:ConnectorStyle" xmi:id="_2qcDUTsSEeqkYdt9h49cMw" routing="Rectilinear"/>
83 <styles xmi:type="notation:FontStyle" xmi:id="_2qcDUjsSEeqkYdt9h49cMw" fontName="Segoe UI" fontHeight="8"/>
84 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_2qcDUzsSEeqkYdt9h49cMw" points="[39, 55, 3, 55]$[77, 55, 41, 55]$[77, 149, 41, 149]$[-36, 149, -72, 149]$[-36, 109, -72, 109]"/>
85 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2qyooDsSEeqkYdt9h49cMw" id="(0.7448275862068966,0.0)"/>
86 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2qyooTsSEeqkYdt9h49cMw" id="(0.993103448275862,0.0)"/>
87 </edges>
88 </data>
89 </ownedAnnotationEntries>
90 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_Vs0oMDsREeqkYdt9h49cMw" name="FamilyTree" tooltipText="" outgoingEdges="_aY6ucDsSEeqkYdt9h49cMw" width="12" height="10">
91 <target xmi:type="ecore:EClass" href="familytree.ecore#//FamilyTree"/>
92 <semanticElements xmi:type="ecore:EClass" href="familytree.ecore#//FamilyTree"/>
93 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
94 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
95 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
96 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_VtO34DsREeqkYdt9h49cMw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
97 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
98 </ownedStyle>
99 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
100 </ownedDiagramElements>
101 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_aaZxoDsREeqkYdt9h49cMw" name="Member" tooltipText="" outgoingEdges="_2p6e4DsSEeqkYdt9h49cMw" incomingEdges="_aY6ucDsSEeqkYdt9h49cMw _2p6e4DsSEeqkYdt9h49cMw" width="12" height="10">
102 <target xmi:type="ecore:EClass" href="familytree.ecore#//Member"/>
103 <semanticElements xmi:type="ecore:EClass" href="familytree.ecore#//Member"/>
104 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
105 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
106 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
107 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_BKuAoDsSEeqkYdt9h49cMw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
108 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
109 </ownedStyle>
110 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
111 <ownedElements xmi:type="diagram:DNodeListElement" uid="_djV4gDsREeqkYdt9h49cMw" name="name : EString" tooltipText="">
112 <target xmi:type="ecore:EAttribute" href="familytree.ecore#//Member/name"/>
113 <semanticElements xmi:type="ecore:EAttribute" href="familytree.ecore#//Member/name"/>
114 <ownedStyle xmi:type="diagram:BundledImage" uid="_hCW9ETsREeqkYdt9h49cMw" labelAlignment="LEFT">
115 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
116 </ownedStyle>
117 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
118 </ownedElements>
119 <ownedElements xmi:type="diagram:DNodeListElement" uid="_7hUIIDsREeqkYdt9h49cMw" name="age : EInt = 0" tooltipText="">
120 <target xmi:type="ecore:EAttribute" href="familytree.ecore#//Member/age"/>
121 <semanticElements xmi:type="ecore:EAttribute" href="familytree.ecore#//Member/age"/>
122 <ownedStyle xmi:type="diagram:BundledImage" uid="_P9E9gTsZEeqzD6SBN6r2Uw" labelAlignment="LEFT">
123 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
124 </ownedStyle>
125 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
126 </ownedElements>
127 </ownedDiagramElements>
128 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_aY6ucDsSEeqkYdt9h49cMw" name="[0..*] members" sourceNode="_Vs0oMDsREeqkYdt9h49cMw" targetNode="_aaZxoDsREeqkYdt9h49cMw">
129 <target xmi:type="ecore:EReference" href="familytree.ecore#//FamilyTree/members"/>
130 <semanticElements xmi:type="ecore:EReference" href="familytree.ecore#//FamilyTree/members"/>
131 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_aZCDMzsSEeqkYdt9h49cMw" description="_aZCDMDsSEeqkYdt9h49cMw" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
132 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_aZCDNTsSEeqkYdt9h49cMw" showIcon="false">
133 <customFeatures>labelSize</customFeatures>
134 </centerLabelStyle>
135 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_aZCDNDsSEeqkYdt9h49cMw" showIcon="false" labelColor="39,76,114">
136 <customFeatures>labelSize</customFeatures>
137 </endLabelStyle>
138 </ownedStyle>
139 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
140 </ownedDiagramElements>
141 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_2p6e4DsSEeqkYdt9h49cMw" sourceNode="_aaZxoDsREeqkYdt9h49cMw" targetNode="_aaZxoDsREeqkYdt9h49cMw" beginLabel="[0..2] parents" endLabel="[0..*] children">
142 <target xmi:type="ecore:EReference" href="familytree.ecore#//Member/children"/>
143 <semanticElements xmi:type="ecore:EReference" href="familytree.ecore#//Member/children"/>
144 <semanticElements xmi:type="ecore:EReference" href="familytree.ecore#//Member/parents"/>
145 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_2p9iMDsSEeqkYdt9h49cMw" sourceArrow="InputArrow" routingStyle="manhattan" strokeColor="0,0,0">
146 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']/@style"/>
147 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_2p9iMTsSEeqkYdt9h49cMw" showIcon="false"/>
148 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_2p9iMjsSEeqkYdt9h49cMw" showIcon="false"/>
149 </ownedStyle>
150 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='Bi-directional%20EC_EReference%20']"/>
151 </ownedDiagramElements>
152 <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
153 <filterVariableHistory xmi:type="diagram:FilterVariableHistory" uid="_mHAKYDsLEeqkYdt9h49cMw"/>
154 <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/>
155 <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Package']"/>
156 <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Validation']"/>
157 <target xmi:type="ecore:EPackage" href="familytree.ecore#/"/>
158 </diagram:DSemanticDiagram>
159</xmi:XMI>
diff --git a/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/model/familytree.ecore b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/model/familytree.ecore
new file mode 100644
index 00000000..f2e51f65
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/model/familytree.ecore
@@ -0,0 +1,17 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3 xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="familytree" nsURI="http://www.example.org/familytree" nsPrefix="familytree">
4 <eClassifiers xsi:type="ecore:EClass" name="FamilyTree">
5 <eStructuralFeatures xsi:type="ecore:EReference" name="members" upperBound="-1"
6 eType="#//Member" containment="true"/>
7 </eClassifiers>
8 <eClassifiers xsi:type="ecore:EClass" name="Member">
9 <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
10 <eStructuralFeatures xsi:type="ecore:EAttribute" name="age" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
11 defaultValueLiteral="0"/>
12 <eStructuralFeatures xsi:type="ecore:EReference" name="children" upperBound="-1"
13 eType="#//Member" eOpposite="#//Member/parents"/>
14 <eStructuralFeatures xsi:type="ecore:EReference" name="parents" upperBound="2"
15 eType="#//Member" eOpposite="#//Member/children"/>
16 </eClassifiers>
17</ecore:EPackage>
diff --git a/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/model/familytree.genmodel b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/model/familytree.genmodel
new file mode 100644
index 00000000..29f5fc02
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/model/familytree.genmodel
@@ -0,0 +1,33 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<genmodel:GenModel xmi:version="2.0"
3 xmlns:xmi="http://www.omg.org/XMI"
4 xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
5 xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel"
6 modelDirectory="/case.study.familyTree.model/src"
7 modelPluginID="case.study.familyTree.model" modelName="Familytree"
8 rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
9 importerID="org.eclipse.emf.importer.ecore" complianceLevel="8.0"
10 copyrightFields="false" operationReflection="true"
11 importOrganizing="true">
12 <foreignModel>familytree.ecore</foreignModel>
13 <genPackages prefix="Familytree"
14 disposableProviderFactory="true" ecorePackage="familytree.ecore#/">
15 <genClasses ecoreClass="familytree.ecore#//FamilyTree">
16 <genFeatures property="None" children="true"
17 createChild="true"
18 ecoreFeature="ecore:EReference familytree.ecore#//FamilyTree/members" />
19 </genClasses>
20 <genClasses ecoreClass="familytree.ecore#//Member">
21 <genFeatures createChild="false"
22 ecoreFeature="ecore:EAttribute familytree.ecore#//Member/name" />
23 <genFeatures createChild="false"
24 ecoreFeature="ecore:EAttribute familytree.ecore#//Member/age" />
25 <genFeatures notify="false" createChild="false"
26 propertySortChoices="true"
27 ecoreFeature="ecore:EReference familytree.ecore#//Member/children" />
28 <genFeatures notify="false" createChild="false"
29 propertySortChoices="true"
30 ecoreFeature="ecore:EReference familytree.ecore#//Member/parents" />
31 </genClasses>
32 </genPackages>
33</genmodel:GenModel>
diff --git a/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/plugin.properties b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/plugin.properties
new file mode 100644
index 00000000..e4710b5f
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/plugin.properties
@@ -0,0 +1,4 @@
1#
2
3pluginName = Model
4providerName = www.example.org
diff --git a/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/plugin.xml b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/plugin.xml
new file mode 100644
index 00000000..a377ea2a
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/plugin.xml
@@ -0,0 +1,17 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<?eclipse version="3.0"?>
3
4<!--
5-->
6
7<plugin>
8
9 <extension point="org.eclipse.emf.ecore.generated_package">
10 <!-- @generated familytree -->
11 <package
12 uri="http://www.example.org/familytree"
13 class="familytree.FamilytreePackage"
14 genModel="model/familytree.genmodel"/>
15 </extension>
16
17</plugin>
diff --git a/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/FamilyTree.java b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/FamilyTree.java
new file mode 100644
index 00000000..408373a3
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/FamilyTree.java
@@ -0,0 +1,38 @@
1/**
2 */
3package familytree;
4
5import org.eclipse.emf.common.util.EList;
6
7import org.eclipse.emf.ecore.EObject;
8
9/**
10 * <!-- begin-user-doc -->
11 * A representation of the model object '<em><b>Family Tree</b></em>'.
12 * <!-- end-user-doc -->
13 *
14 * <p>
15 * The following features are supported:
16 * </p>
17 * <ul>
18 * <li>{@link familytree.FamilyTree#getMembers <em>Members</em>}</li>
19 * </ul>
20 *
21 * @see familytree.FamilytreePackage#getFamilyTree()
22 * @model
23 * @generated
24 */
25public interface FamilyTree extends EObject {
26 /**
27 * Returns the value of the '<em><b>Members</b></em>' containment reference list.
28 * The list contents are of type {@link familytree.Member}.
29 * <!-- begin-user-doc -->
30 * <!-- end-user-doc -->
31 * @return the value of the '<em>Members</em>' containment reference list.
32 * @see familytree.FamilytreePackage#getFamilyTree_Members()
33 * @model containment="true"
34 * @generated
35 */
36 EList<Member> getMembers();
37
38} // FamilyTree
diff --git a/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/FamilytreeFactory.java b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/FamilytreeFactory.java
new file mode 100644
index 00000000..534da223
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/FamilytreeFactory.java
@@ -0,0 +1,51 @@
1/**
2 */
3package familytree;
4
5import org.eclipse.emf.ecore.EFactory;
6
7/**
8 * <!-- begin-user-doc -->
9 * The <b>Factory</b> for the model.
10 * It provides a create method for each non-abstract class of the model.
11 * <!-- end-user-doc -->
12 * @see familytree.FamilytreePackage
13 * @generated
14 */
15public interface FamilytreeFactory extends EFactory {
16 /**
17 * The singleton instance of the factory.
18 * <!-- begin-user-doc -->
19 * <!-- end-user-doc -->
20 * @generated
21 */
22 FamilytreeFactory eINSTANCE = familytree.impl.FamilytreeFactoryImpl.init();
23
24 /**
25 * Returns a new object of class '<em>Family Tree</em>'.
26 * <!-- begin-user-doc -->
27 * <!-- end-user-doc -->
28 * @return a new object of class '<em>Family Tree</em>'.
29 * @generated
30 */
31 FamilyTree createFamilyTree();
32
33 /**
34 * Returns a new object of class '<em>Member</em>'.
35 * <!-- begin-user-doc -->
36 * <!-- end-user-doc -->
37 * @return a new object of class '<em>Member</em>'.
38 * @generated
39 */
40 Member createMember();
41
42 /**
43 * Returns the package supported by this factory.
44 * <!-- begin-user-doc -->
45 * <!-- end-user-doc -->
46 * @return the package supported by this factory.
47 * @generated
48 */
49 FamilytreePackage getFamilytreePackage();
50
51} //FamilytreeFactory
diff --git a/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/FamilytreePackage.java b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/FamilytreePackage.java
new file mode 100644
index 00000000..572a0fe4
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/FamilytreePackage.java
@@ -0,0 +1,321 @@
1/**
2 */
3package familytree;
4
5import org.eclipse.emf.ecore.EAttribute;
6import org.eclipse.emf.ecore.EClass;
7import org.eclipse.emf.ecore.EPackage;
8import org.eclipse.emf.ecore.EReference;
9
10/**
11 * <!-- begin-user-doc -->
12 * The <b>Package</b> for the model.
13 * It contains accessors for the meta objects to represent
14 * <ul>
15 * <li>each class,</li>
16 * <li>each feature of each class,</li>
17 * <li>each operation of each class,</li>
18 * <li>each enum,</li>
19 * <li>and each data type</li>
20 * </ul>
21 * <!-- end-user-doc -->
22 * @see familytree.FamilytreeFactory
23 * @model kind="package"
24 * @generated
25 */
26public interface FamilytreePackage extends EPackage {
27 /**
28 * The package name.
29 * <!-- begin-user-doc -->
30 * <!-- end-user-doc -->
31 * @generated
32 */
33 String eNAME = "familytree";
34
35 /**
36 * The package namespace URI.
37 * <!-- begin-user-doc -->
38 * <!-- end-user-doc -->
39 * @generated
40 */
41 String eNS_URI = "http://www.example.org/familytree";
42
43 /**
44 * The package namespace name.
45 * <!-- begin-user-doc -->
46 * <!-- end-user-doc -->
47 * @generated
48 */
49 String eNS_PREFIX = "familytree";
50
51 /**
52 * The singleton instance of the package.
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @generated
56 */
57 FamilytreePackage eINSTANCE = familytree.impl.FamilytreePackageImpl.init();
58
59 /**
60 * The meta object id for the '{@link familytree.impl.FamilyTreeImpl <em>Family Tree</em>}' class.
61 * <!-- begin-user-doc -->
62 * <!-- end-user-doc -->
63 * @see familytree.impl.FamilyTreeImpl
64 * @see familytree.impl.FamilytreePackageImpl#getFamilyTree()
65 * @generated
66 */
67 int FAMILY_TREE = 0;
68
69 /**
70 * The feature id for the '<em><b>Members</b></em>' containment reference list.
71 * <!-- begin-user-doc -->
72 * <!-- end-user-doc -->
73 * @generated
74 * @ordered
75 */
76 int FAMILY_TREE__MEMBERS = 0;
77
78 /**
79 * The number of structural features of the '<em>Family Tree</em>' class.
80 * <!-- begin-user-doc -->
81 * <!-- end-user-doc -->
82 * @generated
83 * @ordered
84 */
85 int FAMILY_TREE_FEATURE_COUNT = 1;
86
87 /**
88 * The number of operations of the '<em>Family Tree</em>' class.
89 * <!-- begin-user-doc -->
90 * <!-- end-user-doc -->
91 * @generated
92 * @ordered
93 */
94 int FAMILY_TREE_OPERATION_COUNT = 0;
95
96 /**
97 * The meta object id for the '{@link familytree.impl.MemberImpl <em>Member</em>}' class.
98 * <!-- begin-user-doc -->
99 * <!-- end-user-doc -->
100 * @see familytree.impl.MemberImpl
101 * @see familytree.impl.FamilytreePackageImpl#getMember()
102 * @generated
103 */
104 int MEMBER = 1;
105
106 /**
107 * The feature id for the '<em><b>Name</b></em>' attribute.
108 * <!-- begin-user-doc -->
109 * <!-- end-user-doc -->
110 * @generated
111 * @ordered
112 */
113 int MEMBER__NAME = 0;
114
115 /**
116 * The feature id for the '<em><b>Age</b></em>' attribute.
117 * <!-- begin-user-doc -->
118 * <!-- end-user-doc -->
119 * @generated
120 * @ordered
121 */
122 int MEMBER__AGE = 1;
123
124 /**
125 * The feature id for the '<em><b>Children</b></em>' reference list.
126 * <!-- begin-user-doc -->
127 * <!-- end-user-doc -->
128 * @generated
129 * @ordered
130 */
131 int MEMBER__CHILDREN = 2;
132
133 /**
134 * The feature id for the '<em><b>Parents</b></em>' reference list.
135 * <!-- begin-user-doc -->
136 * <!-- end-user-doc -->
137 * @generated
138 * @ordered
139 */
140 int MEMBER__PARENTS = 3;
141
142 /**
143 * The number of structural features of the '<em>Member</em>' class.
144 * <!-- begin-user-doc -->
145 * <!-- end-user-doc -->
146 * @generated
147 * @ordered
148 */
149 int MEMBER_FEATURE_COUNT = 4;
150
151 /**
152 * The number of operations of the '<em>Member</em>' class.
153 * <!-- begin-user-doc -->
154 * <!-- end-user-doc -->
155 * @generated
156 * @ordered
157 */
158 int MEMBER_OPERATION_COUNT = 0;
159
160
161 /**
162 * Returns the meta object for class '{@link familytree.FamilyTree <em>Family Tree</em>}'.
163 * <!-- begin-user-doc -->
164 * <!-- end-user-doc -->
165 * @return the meta object for class '<em>Family Tree</em>'.
166 * @see familytree.FamilyTree
167 * @generated
168 */
169 EClass getFamilyTree();
170
171 /**
172 * Returns the meta object for the containment reference list '{@link familytree.FamilyTree#getMembers <em>Members</em>}'.
173 * <!-- begin-user-doc -->
174 * <!-- end-user-doc -->
175 * @return the meta object for the containment reference list '<em>Members</em>'.
176 * @see familytree.FamilyTree#getMembers()
177 * @see #getFamilyTree()
178 * @generated
179 */
180 EReference getFamilyTree_Members();
181
182 /**
183 * Returns the meta object for class '{@link familytree.Member <em>Member</em>}'.
184 * <!-- begin-user-doc -->
185 * <!-- end-user-doc -->
186 * @return the meta object for class '<em>Member</em>'.
187 * @see familytree.Member
188 * @generated
189 */
190 EClass getMember();
191
192 /**
193 * Returns the meta object for the attribute '{@link familytree.Member#getName <em>Name</em>}'.
194 * <!-- begin-user-doc -->
195 * <!-- end-user-doc -->
196 * @return the meta object for the attribute '<em>Name</em>'.
197 * @see familytree.Member#getName()
198 * @see #getMember()
199 * @generated
200 */
201 EAttribute getMember_Name();
202
203 /**
204 * Returns the meta object for the attribute '{@link familytree.Member#getAge <em>Age</em>}'.
205 * <!-- begin-user-doc -->
206 * <!-- end-user-doc -->
207 * @return the meta object for the attribute '<em>Age</em>'.
208 * @see familytree.Member#getAge()
209 * @see #getMember()
210 * @generated
211 */
212 EAttribute getMember_Age();
213
214 /**
215 * Returns the meta object for the reference list '{@link familytree.Member#getChildren <em>Children</em>}'.
216 * <!-- begin-user-doc -->
217 * <!-- end-user-doc -->
218 * @return the meta object for the reference list '<em>Children</em>'.
219 * @see familytree.Member#getChildren()
220 * @see #getMember()
221 * @generated
222 */
223 EReference getMember_Children();
224
225 /**
226 * Returns the meta object for the reference list '{@link familytree.Member#getParents <em>Parents</em>}'.
227 * <!-- begin-user-doc -->
228 * <!-- end-user-doc -->
229 * @return the meta object for the reference list '<em>Parents</em>'.
230 * @see familytree.Member#getParents()
231 * @see #getMember()
232 * @generated
233 */
234 EReference getMember_Parents();
235
236 /**
237 * Returns the factory that creates the instances of the model.
238 * <!-- begin-user-doc -->
239 * <!-- end-user-doc -->
240 * @return the factory that creates the instances of the model.
241 * @generated
242 */
243 FamilytreeFactory getFamilytreeFactory();
244
245 /**
246 * <!-- begin-user-doc -->
247 * Defines literals for the meta objects that represent
248 * <ul>
249 * <li>each class,</li>
250 * <li>each feature of each class,</li>
251 * <li>each operation of each class,</li>
252 * <li>each enum,</li>
253 * <li>and each data type</li>
254 * </ul>
255 * <!-- end-user-doc -->
256 * @generated
257 */
258 interface Literals {
259 /**
260 * The meta object literal for the '{@link familytree.impl.FamilyTreeImpl <em>Family Tree</em>}' class.
261 * <!-- begin-user-doc -->
262 * <!-- end-user-doc -->
263 * @see familytree.impl.FamilyTreeImpl
264 * @see familytree.impl.FamilytreePackageImpl#getFamilyTree()
265 * @generated
266 */
267 EClass FAMILY_TREE = eINSTANCE.getFamilyTree();
268
269 /**
270 * The meta object literal for the '<em><b>Members</b></em>' containment reference list feature.
271 * <!-- begin-user-doc -->
272 * <!-- end-user-doc -->
273 * @generated
274 */
275 EReference FAMILY_TREE__MEMBERS = eINSTANCE.getFamilyTree_Members();
276
277 /**
278 * The meta object literal for the '{@link familytree.impl.MemberImpl <em>Member</em>}' class.
279 * <!-- begin-user-doc -->
280 * <!-- end-user-doc -->
281 * @see familytree.impl.MemberImpl
282 * @see familytree.impl.FamilytreePackageImpl#getMember()
283 * @generated
284 */
285 EClass MEMBER = eINSTANCE.getMember();
286
287 /**
288 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
289 * <!-- begin-user-doc -->
290 * <!-- end-user-doc -->
291 * @generated
292 */
293 EAttribute MEMBER__NAME = eINSTANCE.getMember_Name();
294
295 /**
296 * The meta object literal for the '<em><b>Age</b></em>' attribute feature.
297 * <!-- begin-user-doc -->
298 * <!-- end-user-doc -->
299 * @generated
300 */
301 EAttribute MEMBER__AGE = eINSTANCE.getMember_Age();
302
303 /**
304 * The meta object literal for the '<em><b>Children</b></em>' reference list feature.
305 * <!-- begin-user-doc -->
306 * <!-- end-user-doc -->
307 * @generated
308 */
309 EReference MEMBER__CHILDREN = eINSTANCE.getMember_Children();
310
311 /**
312 * The meta object literal for the '<em><b>Parents</b></em>' reference list feature.
313 * <!-- begin-user-doc -->
314 * <!-- end-user-doc -->
315 * @generated
316 */
317 EReference MEMBER__PARENTS = eINSTANCE.getMember_Parents();
318
319 }
320
321} //FamilytreePackage
diff --git a/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/Member.java b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/Member.java
new file mode 100644
index 00000000..55a6bd1e
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/Member.java
@@ -0,0 +1,102 @@
1/**
2 */
3package familytree;
4
5import org.eclipse.emf.common.util.EList;
6
7import org.eclipse.emf.ecore.EObject;
8
9/**
10 * <!-- begin-user-doc -->
11 * A representation of the model object '<em><b>Member</b></em>'.
12 * <!-- end-user-doc -->
13 *
14 * <p>
15 * The following features are supported:
16 * </p>
17 * <ul>
18 * <li>{@link familytree.Member#getName <em>Name</em>}</li>
19 * <li>{@link familytree.Member#getAge <em>Age</em>}</li>
20 * <li>{@link familytree.Member#getChildren <em>Children</em>}</li>
21 * <li>{@link familytree.Member#getParents <em>Parents</em>}</li>
22 * </ul>
23 *
24 * @see familytree.FamilytreePackage#getMember()
25 * @model
26 * @generated
27 */
28public interface Member extends EObject {
29 /**
30 * Returns the value of the '<em><b>Name</b></em>' attribute.
31 * <!-- begin-user-doc -->
32 * <!-- end-user-doc -->
33 * @return the value of the '<em>Name</em>' attribute.
34 * @see #setName(String)
35 * @see familytree.FamilytreePackage#getMember_Name()
36 * @model
37 * @generated
38 */
39 String getName();
40
41 /**
42 * Sets the value of the '{@link familytree.Member#getName <em>Name</em>}' attribute.
43 * <!-- begin-user-doc -->
44 * <!-- end-user-doc -->
45 * @param value the new value of the '<em>Name</em>' attribute.
46 * @see #getName()
47 * @generated
48 */
49 void setName(String value);
50
51 /**
52 * Returns the value of the '<em><b>Age</b></em>' attribute.
53 * The default value is <code>"0"</code>.
54 * <!-- begin-user-doc -->
55 * <!-- end-user-doc -->
56 * @return the value of the '<em>Age</em>' attribute.
57 * @see #setAge(int)
58 * @see familytree.FamilytreePackage#getMember_Age()
59 * @model default="0"
60 * @generated
61 */
62 int getAge();
63
64 /**
65 * Sets the value of the '{@link familytree.Member#getAge <em>Age</em>}' attribute.
66 * <!-- begin-user-doc -->
67 * <!-- end-user-doc -->
68 * @param value the new value of the '<em>Age</em>' attribute.
69 * @see #getAge()
70 * @generated
71 */
72 void setAge(int value);
73
74 /**
75 * Returns the value of the '<em><b>Children</b></em>' reference list.
76 * The list contents are of type {@link familytree.Member}.
77 * It is bidirectional and its opposite is '{@link familytree.Member#getParents <em>Parents</em>}'.
78 * <!-- begin-user-doc -->
79 * <!-- end-user-doc -->
80 * @return the value of the '<em>Children</em>' reference list.
81 * @see familytree.FamilytreePackage#getMember_Children()
82 * @see familytree.Member#getParents
83 * @model opposite="parents"
84 * @generated
85 */
86 EList<Member> getChildren();
87
88 /**
89 * Returns the value of the '<em><b>Parents</b></em>' reference list.
90 * The list contents are of type {@link familytree.Member}.
91 * It is bidirectional and its opposite is '{@link familytree.Member#getChildren <em>Children</em>}'.
92 * <!-- begin-user-doc -->
93 * <!-- end-user-doc -->
94 * @return the value of the '<em>Parents</em>' reference list.
95 * @see familytree.FamilytreePackage#getMember_Parents()
96 * @see familytree.Member#getChildren
97 * @model opposite="children" upper="2"
98 * @generated
99 */
100 EList<Member> getParents();
101
102} // Member
diff --git a/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/impl/FamilyTreeImpl.java b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/impl/FamilyTreeImpl.java
new file mode 100644
index 00000000..07b0a1dd
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/impl/FamilyTreeImpl.java
@@ -0,0 +1,153 @@
1/**
2 */
3package familytree.impl;
4
5import familytree.FamilyTree;
6import familytree.FamilytreePackage;
7import familytree.Member;
8
9import java.util.Collection;
10
11import org.eclipse.emf.common.notify.NotificationChain;
12
13import org.eclipse.emf.common.util.EList;
14
15import org.eclipse.emf.ecore.EClass;
16import org.eclipse.emf.ecore.InternalEObject;
17
18import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
19
20import org.eclipse.emf.ecore.util.EObjectContainmentEList;
21import org.eclipse.emf.ecore.util.InternalEList;
22
23/**
24 * <!-- begin-user-doc -->
25 * An implementation of the model object '<em><b>Family Tree</b></em>'.
26 * <!-- end-user-doc -->
27 * <p>
28 * The following features are implemented:
29 * </p>
30 * <ul>
31 * <li>{@link familytree.impl.FamilyTreeImpl#getMembers <em>Members</em>}</li>
32 * </ul>
33 *
34 * @generated
35 */
36public class FamilyTreeImpl extends MinimalEObjectImpl.Container implements FamilyTree {
37 /**
38 * The cached value of the '{@link #getMembers() <em>Members</em>}' containment reference list.
39 * <!-- begin-user-doc -->
40 * <!-- end-user-doc -->
41 * @see #getMembers()
42 * @generated
43 * @ordered
44 */
45 protected EList<Member> members;
46
47 /**
48 * <!-- begin-user-doc -->
49 * <!-- end-user-doc -->
50 * @generated
51 */
52 protected FamilyTreeImpl() {
53 super();
54 }
55
56 /**
57 * <!-- begin-user-doc -->
58 * <!-- end-user-doc -->
59 * @generated
60 */
61 @Override
62 protected EClass eStaticClass() {
63 return FamilytreePackage.Literals.FAMILY_TREE;
64 }
65
66 /**
67 * <!-- begin-user-doc -->
68 * <!-- end-user-doc -->
69 * @generated
70 */
71 @Override
72 public EList<Member> getMembers() {
73 if (members == null) {
74 members = new EObjectContainmentEList<Member>(Member.class, this, FamilytreePackage.FAMILY_TREE__MEMBERS);
75 }
76 return members;
77 }
78
79 /**
80 * <!-- begin-user-doc -->
81 * <!-- end-user-doc -->
82 * @generated
83 */
84 @Override
85 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
86 switch (featureID) {
87 case FamilytreePackage.FAMILY_TREE__MEMBERS:
88 return ((InternalEList<?>)getMembers()).basicRemove(otherEnd, msgs);
89 }
90 return super.eInverseRemove(otherEnd, featureID, msgs);
91 }
92
93 /**
94 * <!-- begin-user-doc -->
95 * <!-- end-user-doc -->
96 * @generated
97 */
98 @Override
99 public Object eGet(int featureID, boolean resolve, boolean coreType) {
100 switch (featureID) {
101 case FamilytreePackage.FAMILY_TREE__MEMBERS:
102 return getMembers();
103 }
104 return super.eGet(featureID, resolve, coreType);
105 }
106
107 /**
108 * <!-- begin-user-doc -->
109 * <!-- end-user-doc -->
110 * @generated
111 */
112 @SuppressWarnings("unchecked")
113 @Override
114 public void eSet(int featureID, Object newValue) {
115 switch (featureID) {
116 case FamilytreePackage.FAMILY_TREE__MEMBERS:
117 getMembers().clear();
118 getMembers().addAll((Collection<? extends Member>)newValue);
119 return;
120 }
121 super.eSet(featureID, newValue);
122 }
123
124 /**
125 * <!-- begin-user-doc -->
126 * <!-- end-user-doc -->
127 * @generated
128 */
129 @Override
130 public void eUnset(int featureID) {
131 switch (featureID) {
132 case FamilytreePackage.FAMILY_TREE__MEMBERS:
133 getMembers().clear();
134 return;
135 }
136 super.eUnset(featureID);
137 }
138
139 /**
140 * <!-- begin-user-doc -->
141 * <!-- end-user-doc -->
142 * @generated
143 */
144 @Override
145 public boolean eIsSet(int featureID) {
146 switch (featureID) {
147 case FamilytreePackage.FAMILY_TREE__MEMBERS:
148 return members != null && !members.isEmpty();
149 }
150 return super.eIsSet(featureID);
151 }
152
153} //FamilyTreeImpl
diff --git a/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/impl/FamilytreeFactoryImpl.java b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/impl/FamilytreeFactoryImpl.java
new file mode 100644
index 00000000..bc54d09c
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/impl/FamilytreeFactoryImpl.java
@@ -0,0 +1,109 @@
1/**
2 */
3package familytree.impl;
4
5import familytree.*;
6
7import org.eclipse.emf.ecore.EClass;
8import org.eclipse.emf.ecore.EObject;
9import org.eclipse.emf.ecore.EPackage;
10
11import org.eclipse.emf.ecore.impl.EFactoryImpl;
12
13import org.eclipse.emf.ecore.plugin.EcorePlugin;
14
15/**
16 * <!-- begin-user-doc -->
17 * An implementation of the model <b>Factory</b>.
18 * <!-- end-user-doc -->
19 * @generated
20 */
21public class FamilytreeFactoryImpl extends EFactoryImpl implements FamilytreeFactory {
22 /**
23 * Creates the default factory implementation.
24 * <!-- begin-user-doc -->
25 * <!-- end-user-doc -->
26 * @generated
27 */
28 public static FamilytreeFactory init() {
29 try {
30 FamilytreeFactory theFamilytreeFactory = (FamilytreeFactory)EPackage.Registry.INSTANCE.getEFactory(FamilytreePackage.eNS_URI);
31 if (theFamilytreeFactory != null) {
32 return theFamilytreeFactory;
33 }
34 }
35 catch (Exception exception) {
36 EcorePlugin.INSTANCE.log(exception);
37 }
38 return new FamilytreeFactoryImpl();
39 }
40
41 /**
42 * Creates an instance of the factory.
43 * <!-- begin-user-doc -->
44 * <!-- end-user-doc -->
45 * @generated
46 */
47 public FamilytreeFactoryImpl() {
48 super();
49 }
50
51 /**
52 * <!-- begin-user-doc -->
53 * <!-- end-user-doc -->
54 * @generated
55 */
56 @Override
57 public EObject create(EClass eClass) {
58 switch (eClass.getClassifierID()) {
59 case FamilytreePackage.FAMILY_TREE: return createFamilyTree();
60 case FamilytreePackage.MEMBER: return createMember();
61 default:
62 throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
63 }
64 }
65
66 /**
67 * <!-- begin-user-doc -->
68 * <!-- end-user-doc -->
69 * @generated
70 */
71 @Override
72 public FamilyTree createFamilyTree() {
73 FamilyTreeImpl familyTree = new FamilyTreeImpl();
74 return familyTree;
75 }
76
77 /**
78 * <!-- begin-user-doc -->
79 * <!-- end-user-doc -->
80 * @generated
81 */
82 @Override
83 public Member createMember() {
84 MemberImpl member = new MemberImpl();
85 return member;
86 }
87
88 /**
89 * <!-- begin-user-doc -->
90 * <!-- end-user-doc -->
91 * @generated
92 */
93 @Override
94 public FamilytreePackage getFamilytreePackage() {
95 return (FamilytreePackage)getEPackage();
96 }
97
98 /**
99 * <!-- begin-user-doc -->
100 * <!-- end-user-doc -->
101 * @deprecated
102 * @generated
103 */
104 @Deprecated
105 public static FamilytreePackage getPackage() {
106 return FamilytreePackage.eINSTANCE;
107 }
108
109} //FamilytreeFactoryImpl
diff --git a/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/impl/FamilytreePackageImpl.java b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/impl/FamilytreePackageImpl.java
new file mode 100644
index 00000000..0980260e
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/impl/FamilytreePackageImpl.java
@@ -0,0 +1,251 @@
1/**
2 */
3package familytree.impl;
4
5import familytree.FamilyTree;
6import familytree.FamilytreeFactory;
7import familytree.FamilytreePackage;
8import familytree.Member;
9
10import org.eclipse.emf.ecore.EAttribute;
11import org.eclipse.emf.ecore.EClass;
12import org.eclipse.emf.ecore.EPackage;
13import org.eclipse.emf.ecore.EReference;
14
15import org.eclipse.emf.ecore.impl.EPackageImpl;
16
17/**
18 * <!-- begin-user-doc -->
19 * An implementation of the model <b>Package</b>.
20 * <!-- end-user-doc -->
21 * @generated
22 */
23public class FamilytreePackageImpl extends EPackageImpl implements FamilytreePackage {
24 /**
25 * <!-- begin-user-doc -->
26 * <!-- end-user-doc -->
27 * @generated
28 */
29 private EClass familyTreeEClass = null;
30
31 /**
32 * <!-- begin-user-doc -->
33 * <!-- end-user-doc -->
34 * @generated
35 */
36 private EClass memberEClass = null;
37
38 /**
39 * Creates an instance of the model <b>Package</b>, registered with
40 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
41 * package URI value.
42 * <p>Note: the correct way to create the package is via the static
43 * factory method {@link #init init()}, which also performs
44 * initialization of the package, or returns the registered package,
45 * if one already exists.
46 * <!-- begin-user-doc -->
47 * <!-- end-user-doc -->
48 * @see org.eclipse.emf.ecore.EPackage.Registry
49 * @see familytree.FamilytreePackage#eNS_URI
50 * @see #init()
51 * @generated
52 */
53 private FamilytreePackageImpl() {
54 super(eNS_URI, FamilytreeFactory.eINSTANCE);
55 }
56
57 /**
58 * <!-- begin-user-doc -->
59 * <!-- end-user-doc -->
60 * @generated
61 */
62 private static boolean isInited = false;
63
64 /**
65 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
66 *
67 * <p>This method is used to initialize {@link FamilytreePackage#eINSTANCE} when that field is accessed.
68 * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
69 * <!-- begin-user-doc -->
70 * <!-- end-user-doc -->
71 * @see #eNS_URI
72 * @see #createPackageContents()
73 * @see #initializePackageContents()
74 * @generated
75 */
76 public static FamilytreePackage init() {
77 if (isInited) return (FamilytreePackage)EPackage.Registry.INSTANCE.getEPackage(FamilytreePackage.eNS_URI);
78
79 // Obtain or create and register package
80 Object registeredFamilytreePackage = EPackage.Registry.INSTANCE.get(eNS_URI);
81 FamilytreePackageImpl theFamilytreePackage = registeredFamilytreePackage instanceof FamilytreePackageImpl ? (FamilytreePackageImpl)registeredFamilytreePackage : new FamilytreePackageImpl();
82
83 isInited = true;
84
85 // Create package meta-data objects
86 theFamilytreePackage.createPackageContents();
87
88 // Initialize created meta-data
89 theFamilytreePackage.initializePackageContents();
90
91 // Mark meta-data to indicate it can't be changed
92 theFamilytreePackage.freeze();
93
94 // Update the registry and return the package
95 EPackage.Registry.INSTANCE.put(FamilytreePackage.eNS_URI, theFamilytreePackage);
96 return theFamilytreePackage;
97 }
98
99 /**
100 * <!-- begin-user-doc -->
101 * <!-- end-user-doc -->
102 * @generated
103 */
104 @Override
105 public EClass getFamilyTree() {
106 return familyTreeEClass;
107 }
108
109 /**
110 * <!-- begin-user-doc -->
111 * <!-- end-user-doc -->
112 * @generated
113 */
114 @Override
115 public EReference getFamilyTree_Members() {
116 return (EReference)familyTreeEClass.getEStructuralFeatures().get(0);
117 }
118
119 /**
120 * <!-- begin-user-doc -->
121 * <!-- end-user-doc -->
122 * @generated
123 */
124 @Override
125 public EClass getMember() {
126 return memberEClass;
127 }
128
129 /**
130 * <!-- begin-user-doc -->
131 * <!-- end-user-doc -->
132 * @generated
133 */
134 @Override
135 public EAttribute getMember_Name() {
136 return (EAttribute)memberEClass.getEStructuralFeatures().get(0);
137 }
138
139 /**
140 * <!-- begin-user-doc -->
141 * <!-- end-user-doc -->
142 * @generated
143 */
144 @Override
145 public EAttribute getMember_Age() {
146 return (EAttribute)memberEClass.getEStructuralFeatures().get(1);
147 }
148
149 /**
150 * <!-- begin-user-doc -->
151 * <!-- end-user-doc -->
152 * @generated
153 */
154 @Override
155 public EReference getMember_Children() {
156 return (EReference)memberEClass.getEStructuralFeatures().get(2);
157 }
158
159 /**
160 * <!-- begin-user-doc -->
161 * <!-- end-user-doc -->
162 * @generated
163 */
164 @Override
165 public EReference getMember_Parents() {
166 return (EReference)memberEClass.getEStructuralFeatures().get(3);
167 }
168
169 /**
170 * <!-- begin-user-doc -->
171 * <!-- end-user-doc -->
172 * @generated
173 */
174 @Override
175 public FamilytreeFactory getFamilytreeFactory() {
176 return (FamilytreeFactory)getEFactoryInstance();
177 }
178
179 /**
180 * <!-- begin-user-doc -->
181 * <!-- end-user-doc -->
182 * @generated
183 */
184 private boolean isCreated = false;
185
186 /**
187 * Creates the meta-model objects for the package. This method is
188 * guarded to have no affect on any invocation but its first.
189 * <!-- begin-user-doc -->
190 * <!-- end-user-doc -->
191 * @generated
192 */
193 public void createPackageContents() {
194 if (isCreated) return;
195 isCreated = true;
196
197 // Create classes and their features
198 familyTreeEClass = createEClass(FAMILY_TREE);
199 createEReference(familyTreeEClass, FAMILY_TREE__MEMBERS);
200
201 memberEClass = createEClass(MEMBER);
202 createEAttribute(memberEClass, MEMBER__NAME);
203 createEAttribute(memberEClass, MEMBER__AGE);
204 createEReference(memberEClass, MEMBER__CHILDREN);
205 createEReference(memberEClass, MEMBER__PARENTS);
206 }
207
208 /**
209 * <!-- begin-user-doc -->
210 * <!-- end-user-doc -->
211 * @generated
212 */
213 private boolean isInitialized = false;
214
215 /**
216 * Complete the initialization of the package and its meta-model. This
217 * method is guarded to have no affect on any invocation but its first.
218 * <!-- begin-user-doc -->
219 * <!-- end-user-doc -->
220 * @generated
221 */
222 public void initializePackageContents() {
223 if (isInitialized) return;
224 isInitialized = true;
225
226 // Initialize package
227 setName(eNAME);
228 setNsPrefix(eNS_PREFIX);
229 setNsURI(eNS_URI);
230
231 // Create type parameters
232
233 // Set bounds for type parameters
234
235 // Add supertypes to classes
236
237 // Initialize classes, features, and operations; add parameters
238 initEClass(familyTreeEClass, FamilyTree.class, "FamilyTree", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
239 initEReference(getFamilyTree_Members(), this.getMember(), null, "members", null, 0, -1, FamilyTree.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
240
241 initEClass(memberEClass, Member.class, "Member", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
242 initEAttribute(getMember_Name(), ecorePackage.getEString(), "name", null, 0, 1, Member.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
243 initEAttribute(getMember_Age(), ecorePackage.getEInt(), "age", "0", 0, 1, Member.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
244 initEReference(getMember_Children(), this.getMember(), this.getMember_Parents(), "children", null, 0, -1, Member.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
245 initEReference(getMember_Parents(), this.getMember(), this.getMember_Children(), "parents", null, 0, 2, Member.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
246
247 // Create resource
248 createResource(eNS_URI);
249 }
250
251} //FamilytreePackageImpl
diff --git a/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/impl/MemberImpl.java b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/impl/MemberImpl.java
new file mode 100644
index 00000000..77e423bd
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/impl/MemberImpl.java
@@ -0,0 +1,334 @@
1/**
2 */
3package familytree.impl;
4
5import familytree.FamilytreePackage;
6import familytree.Member;
7
8import java.util.Collection;
9
10import org.eclipse.emf.common.notify.Notification;
11import org.eclipse.emf.common.notify.NotificationChain;
12
13import org.eclipse.emf.common.util.EList;
14
15import org.eclipse.emf.ecore.EClass;
16import org.eclipse.emf.ecore.InternalEObject;
17
18import org.eclipse.emf.ecore.impl.ENotificationImpl;
19import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
20
21import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
22import org.eclipse.emf.ecore.util.InternalEList;
23
24/**
25 * <!-- begin-user-doc -->
26 * An implementation of the model object '<em><b>Member</b></em>'.
27 * <!-- end-user-doc -->
28 * <p>
29 * The following features are implemented:
30 * </p>
31 * <ul>
32 * <li>{@link familytree.impl.MemberImpl#getName <em>Name</em>}</li>
33 * <li>{@link familytree.impl.MemberImpl#getAge <em>Age</em>}</li>
34 * <li>{@link familytree.impl.MemberImpl#getChildren <em>Children</em>}</li>
35 * <li>{@link familytree.impl.MemberImpl#getParents <em>Parents</em>}</li>
36 * </ul>
37 *
38 * @generated
39 */
40public class MemberImpl extends MinimalEObjectImpl.Container implements Member {
41 /**
42 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
43 * <!-- begin-user-doc -->
44 * <!-- end-user-doc -->
45 * @see #getName()
46 * @generated
47 * @ordered
48 */
49 protected static final String NAME_EDEFAULT = null;
50
51 /**
52 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @see #getName()
56 * @generated
57 * @ordered
58 */
59 protected String name = NAME_EDEFAULT;
60
61 /**
62 * The default value of the '{@link #getAge() <em>Age</em>}' attribute.
63 * <!-- begin-user-doc -->
64 * <!-- end-user-doc -->
65 * @see #getAge()
66 * @generated
67 * @ordered
68 */
69 protected static final int AGE_EDEFAULT = 0;
70
71 /**
72 * The cached value of the '{@link #getAge() <em>Age</em>}' attribute.
73 * <!-- begin-user-doc -->
74 * <!-- end-user-doc -->
75 * @see #getAge()
76 * @generated
77 * @ordered
78 */
79 protected int age = AGE_EDEFAULT;
80
81 /**
82 * The cached value of the '{@link #getChildren() <em>Children</em>}' reference list.
83 * <!-- begin-user-doc -->
84 * <!-- end-user-doc -->
85 * @see #getChildren()
86 * @generated
87 * @ordered
88 */
89 protected EList<Member> children;
90
91 /**
92 * The cached value of the '{@link #getParents() <em>Parents</em>}' reference list.
93 * <!-- begin-user-doc -->
94 * <!-- end-user-doc -->
95 * @see #getParents()
96 * @generated
97 * @ordered
98 */
99 protected EList<Member> parents;
100
101 /**
102 * <!-- begin-user-doc -->
103 * <!-- end-user-doc -->
104 * @generated
105 */
106 protected MemberImpl() {
107 super();
108 }
109
110 /**
111 * <!-- begin-user-doc -->
112 * <!-- end-user-doc -->
113 * @generated
114 */
115 @Override
116 protected EClass eStaticClass() {
117 return FamilytreePackage.Literals.MEMBER;
118 }
119
120 /**
121 * <!-- begin-user-doc -->
122 * <!-- end-user-doc -->
123 * @generated
124 */
125 @Override
126 public String getName() {
127 return name;
128 }
129
130 /**
131 * <!-- begin-user-doc -->
132 * <!-- end-user-doc -->
133 * @generated
134 */
135 @Override
136 public void setName(String newName) {
137 String oldName = name;
138 name = newName;
139 if (eNotificationRequired())
140 eNotify(new ENotificationImpl(this, Notification.SET, FamilytreePackage.MEMBER__NAME, oldName, name));
141 }
142
143 /**
144 * <!-- begin-user-doc -->
145 * <!-- end-user-doc -->
146 * @generated
147 */
148 @Override
149 public int getAge() {
150 return age;
151 }
152
153 /**
154 * <!-- begin-user-doc -->
155 * <!-- end-user-doc -->
156 * @generated
157 */
158 @Override
159 public void setAge(int newAge) {
160 int oldAge = age;
161 age = newAge;
162 if (eNotificationRequired())
163 eNotify(new ENotificationImpl(this, Notification.SET, FamilytreePackage.MEMBER__AGE, oldAge, age));
164 }
165
166 /**
167 * <!-- begin-user-doc -->
168 * <!-- end-user-doc -->
169 * @generated
170 */
171 @Override
172 public EList<Member> getChildren() {
173 if (children == null) {
174 children = new EObjectWithInverseResolvingEList.ManyInverse<Member>(Member.class, this, FamilytreePackage.MEMBER__CHILDREN, FamilytreePackage.MEMBER__PARENTS);
175 }
176 return children;
177 }
178
179 /**
180 * <!-- begin-user-doc -->
181 * <!-- end-user-doc -->
182 * @generated
183 */
184 @Override
185 public EList<Member> getParents() {
186 if (parents == null) {
187 parents = new EObjectWithInverseResolvingEList.ManyInverse<Member>(Member.class, this, FamilytreePackage.MEMBER__PARENTS, FamilytreePackage.MEMBER__CHILDREN);
188 }
189 return parents;
190 }
191
192 /**
193 * <!-- begin-user-doc -->
194 * <!-- end-user-doc -->
195 * @generated
196 */
197 @SuppressWarnings("unchecked")
198 @Override
199 public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
200 switch (featureID) {
201 case FamilytreePackage.MEMBER__CHILDREN:
202 return ((InternalEList<InternalEObject>)(InternalEList<?>)getChildren()).basicAdd(otherEnd, msgs);
203 case FamilytreePackage.MEMBER__PARENTS:
204 return ((InternalEList<InternalEObject>)(InternalEList<?>)getParents()).basicAdd(otherEnd, msgs);
205 }
206 return super.eInverseAdd(otherEnd, featureID, msgs);
207 }
208
209 /**
210 * <!-- begin-user-doc -->
211 * <!-- end-user-doc -->
212 * @generated
213 */
214 @Override
215 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
216 switch (featureID) {
217 case FamilytreePackage.MEMBER__CHILDREN:
218 return ((InternalEList<?>)getChildren()).basicRemove(otherEnd, msgs);
219 case FamilytreePackage.MEMBER__PARENTS:
220 return ((InternalEList<?>)getParents()).basicRemove(otherEnd, msgs);
221 }
222 return super.eInverseRemove(otherEnd, featureID, msgs);
223 }
224
225 /**
226 * <!-- begin-user-doc -->
227 * <!-- end-user-doc -->
228 * @generated
229 */
230 @Override
231 public Object eGet(int featureID, boolean resolve, boolean coreType) {
232 switch (featureID) {
233 case FamilytreePackage.MEMBER__NAME:
234 return getName();
235 case FamilytreePackage.MEMBER__AGE:
236 return getAge();
237 case FamilytreePackage.MEMBER__CHILDREN:
238 return getChildren();
239 case FamilytreePackage.MEMBER__PARENTS:
240 return getParents();
241 }
242 return super.eGet(featureID, resolve, coreType);
243 }
244
245 /**
246 * <!-- begin-user-doc -->
247 * <!-- end-user-doc -->
248 * @generated
249 */
250 @SuppressWarnings("unchecked")
251 @Override
252 public void eSet(int featureID, Object newValue) {
253 switch (featureID) {
254 case FamilytreePackage.MEMBER__NAME:
255 setName((String)newValue);
256 return;
257 case FamilytreePackage.MEMBER__AGE:
258 setAge((Integer)newValue);
259 return;
260 case FamilytreePackage.MEMBER__CHILDREN:
261 getChildren().clear();
262 getChildren().addAll((Collection<? extends Member>)newValue);
263 return;
264 case FamilytreePackage.MEMBER__PARENTS:
265 getParents().clear();
266 getParents().addAll((Collection<? extends Member>)newValue);
267 return;
268 }
269 super.eSet(featureID, newValue);
270 }
271
272 /**
273 * <!-- begin-user-doc -->
274 * <!-- end-user-doc -->
275 * @generated
276 */
277 @Override
278 public void eUnset(int featureID) {
279 switch (featureID) {
280 case FamilytreePackage.MEMBER__NAME:
281 setName(NAME_EDEFAULT);
282 return;
283 case FamilytreePackage.MEMBER__AGE:
284 setAge(AGE_EDEFAULT);
285 return;
286 case FamilytreePackage.MEMBER__CHILDREN:
287 getChildren().clear();
288 return;
289 case FamilytreePackage.MEMBER__PARENTS:
290 getParents().clear();
291 return;
292 }
293 super.eUnset(featureID);
294 }
295
296 /**
297 * <!-- begin-user-doc -->
298 * <!-- end-user-doc -->
299 * @generated
300 */
301 @Override
302 public boolean eIsSet(int featureID) {
303 switch (featureID) {
304 case FamilytreePackage.MEMBER__NAME:
305 return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
306 case FamilytreePackage.MEMBER__AGE:
307 return age != AGE_EDEFAULT;
308 case FamilytreePackage.MEMBER__CHILDREN:
309 return children != null && !children.isEmpty();
310 case FamilytreePackage.MEMBER__PARENTS:
311 return parents != null && !parents.isEmpty();
312 }
313 return super.eIsSet(featureID);
314 }
315
316 /**
317 * <!-- begin-user-doc -->
318 * <!-- end-user-doc -->
319 * @generated
320 */
321 @Override
322 public String toString() {
323 if (eIsProxy()) return super.toString();
324
325 StringBuilder result = new StringBuilder(super.toString());
326 result.append(" (name: ");
327 result.append(name);
328 result.append(", age: ");
329 result.append(age);
330 result.append(')');
331 return result.toString();
332 }
333
334} //MemberImpl
diff --git a/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/util/FamilytreeAdapterFactory.java b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/util/FamilytreeAdapterFactory.java
new file mode 100644
index 00000000..6412c40f
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/util/FamilytreeAdapterFactory.java
@@ -0,0 +1,138 @@
1/**
2 */
3package familytree.util;
4
5import familytree.*;
6
7import org.eclipse.emf.common.notify.Adapter;
8import org.eclipse.emf.common.notify.Notifier;
9
10import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
11
12import org.eclipse.emf.ecore.EObject;
13
14/**
15 * <!-- begin-user-doc -->
16 * The <b>Adapter Factory</b> for the model.
17 * It provides an adapter <code>createXXX</code> method for each class of the model.
18 * <!-- end-user-doc -->
19 * @see familytree.FamilytreePackage
20 * @generated
21 */
22public class FamilytreeAdapterFactory extends AdapterFactoryImpl {
23 /**
24 * The cached model package.
25 * <!-- begin-user-doc -->
26 * <!-- end-user-doc -->
27 * @generated
28 */
29 protected static FamilytreePackage modelPackage;
30
31 /**
32 * Creates an instance of the adapter factory.
33 * <!-- begin-user-doc -->
34 * <!-- end-user-doc -->
35 * @generated
36 */
37 public FamilytreeAdapterFactory() {
38 if (modelPackage == null) {
39 modelPackage = FamilytreePackage.eINSTANCE;
40 }
41 }
42
43 /**
44 * Returns whether this factory is applicable for the type of the object.
45 * <!-- begin-user-doc -->
46 * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
47 * <!-- end-user-doc -->
48 * @return whether this factory is applicable for the type of the object.
49 * @generated
50 */
51 @Override
52 public boolean isFactoryForType(Object object) {
53 if (object == modelPackage) {
54 return true;
55 }
56 if (object instanceof EObject) {
57 return ((EObject)object).eClass().getEPackage() == modelPackage;
58 }
59 return false;
60 }
61
62 /**
63 * The switch that delegates to the <code>createXXX</code> methods.
64 * <!-- begin-user-doc -->
65 * <!-- end-user-doc -->
66 * @generated
67 */
68 protected FamilytreeSwitch<Adapter> modelSwitch =
69 new FamilytreeSwitch<Adapter>() {
70 @Override
71 public Adapter caseFamilyTree(FamilyTree object) {
72 return createFamilyTreeAdapter();
73 }
74 @Override
75 public Adapter caseMember(Member object) {
76 return createMemberAdapter();
77 }
78 @Override
79 public Adapter defaultCase(EObject object) {
80 return createEObjectAdapter();
81 }
82 };
83
84 /**
85 * Creates an adapter for the <code>target</code>.
86 * <!-- begin-user-doc -->
87 * <!-- end-user-doc -->
88 * @param target the object to adapt.
89 * @return the adapter for the <code>target</code>.
90 * @generated
91 */
92 @Override
93 public Adapter createAdapter(Notifier target) {
94 return modelSwitch.doSwitch((EObject)target);
95 }
96
97
98 /**
99 * Creates a new adapter for an object of class '{@link familytree.FamilyTree <em>Family Tree</em>}'.
100 * <!-- begin-user-doc -->
101 * This default implementation returns null so that we can easily ignore cases;
102 * it's useful to ignore a case when inheritance will catch all the cases anyway.
103 * <!-- end-user-doc -->
104 * @return the new adapter.
105 * @see familytree.FamilyTree
106 * @generated
107 */
108 public Adapter createFamilyTreeAdapter() {
109 return null;
110 }
111
112 /**
113 * Creates a new adapter for an object of class '{@link familytree.Member <em>Member</em>}'.
114 * <!-- begin-user-doc -->
115 * This default implementation returns null so that we can easily ignore cases;
116 * it's useful to ignore a case when inheritance will catch all the cases anyway.
117 * <!-- end-user-doc -->
118 * @return the new adapter.
119 * @see familytree.Member
120 * @generated
121 */
122 public Adapter createMemberAdapter() {
123 return null;
124 }
125
126 /**
127 * Creates a new adapter for the default case.
128 * <!-- begin-user-doc -->
129 * This default implementation returns null.
130 * <!-- end-user-doc -->
131 * @return the new adapter.
132 * @generated
133 */
134 public Adapter createEObjectAdapter() {
135 return null;
136 }
137
138} //FamilytreeAdapterFactory
diff --git a/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/util/FamilytreeSwitch.java b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/util/FamilytreeSwitch.java
new file mode 100644
index 00000000..75bbce3d
--- /dev/null
+++ b/Tests/MODELS2020-CaseStudies/case.study.familyTree.model/src/familytree/util/FamilytreeSwitch.java
@@ -0,0 +1,131 @@
1/**
2 */
3package familytree.util;
4
5import familytree.*;
6
7import org.eclipse.emf.ecore.EObject;
8import org.eclipse.emf.ecore.EPackage;
9
10import org.eclipse.emf.ecore.util.Switch;
11
12/**
13 * <!-- begin-user-doc -->
14 * The <b>Switch</b> for the model's inheritance hierarchy.
15 * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
16 * to invoke the <code>caseXXX</code> method for each class of the model,
17 * starting with the actual class of the object
18 * and proceeding up the inheritance hierarchy
19 * until a non-null result is returned,
20 * which is the result of the switch.
21 * <!-- end-user-doc -->
22 * @see familytree.FamilytreePackage
23 * @generated
24 */
25public class FamilytreeSwitch<T> extends Switch<T> {
26 /**
27 * The cached model package
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 protected static FamilytreePackage modelPackage;
33
34 /**
35 * Creates an instance of the switch.
36 * <!-- begin-user-doc -->
37 * <!-- end-user-doc -->
38 * @generated
39 */
40 public FamilytreeSwitch() {
41 if (modelPackage == null) {
42 modelPackage = FamilytreePackage.eINSTANCE;
43 }
44 }
45
46 /**
47 * Checks whether this is a switch for the given package.
48 * <!-- begin-user-doc -->
49 * <!-- end-user-doc -->
50 * @param ePackage the package in question.
51 * @return whether this is a switch for the given package.
52 * @generated
53 */
54 @Override
55 protected boolean isSwitchFor(EPackage ePackage) {
56 return ePackage == modelPackage;
57 }
58
59 /**
60 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
61 * <!-- begin-user-doc -->
62 * <!-- end-user-doc -->
63 * @return the first non-null result returned by a <code>caseXXX</code> call.
64 * @generated
65 */
66 @Override
67 protected T doSwitch(int classifierID, EObject theEObject) {
68 switch (classifierID) {
69 case FamilytreePackage.FAMILY_TREE: {
70 FamilyTree familyTree = (FamilyTree)theEObject;
71 T result = caseFamilyTree(familyTree);
72 if (result == null) result = defaultCase(theEObject);
73 return result;
74 }
75 case FamilytreePackage.MEMBER: {
76 Member member = (Member)theEObject;
77 T result = caseMember(member);
78 if (result == null) result = defaultCase(theEObject);
79 return result;
80 }
81 default: return defaultCase(theEObject);
82 }
83 }
84
85 /**
86 * Returns the result of interpreting the object as an instance of '<em>Family Tree</em>'.
87 * <!-- begin-user-doc -->
88 * This implementation returns null;
89 * returning a non-null result will terminate the switch.
90 * <!-- end-user-doc -->
91 * @param object the target of the switch.
92 * @return the result of interpreting the object as an instance of '<em>Family Tree</em>'.
93 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
94 * @generated
95 */
96 public T caseFamilyTree(FamilyTree object) {
97 return null;
98 }
99
100 /**
101 * Returns the result of interpreting the object as an instance of '<em>Member</em>'.
102 * <!-- begin-user-doc -->
103 * This implementation returns null;
104 * returning a non-null result will terminate the switch.
105 * <!-- end-user-doc -->
106 * @param object the target of the switch.
107 * @return the result of interpreting the object as an instance of '<em>Member</em>'.
108 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
109 * @generated
110 */
111 public T caseMember(Member object) {
112 return null;
113 }
114
115 /**
116 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
117 * <!-- begin-user-doc -->
118 * This implementation returns null;
119 * returning a non-null result will terminate the switch, but this is the last case anyway.
120 * <!-- end-user-doc -->
121 * @param object the target of the switch.
122 * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
123 * @see #doSwitch(org.eclipse.emf.ecore.EObject)
124 * @generated
125 */
126 @Override
127 public T defaultCase(EObject object) {
128 return null;
129 }
130
131} //FamilytreeSwitch