aboutsummaryrefslogtreecommitdiffstats
path: root/Tests/ca.mcgill.ecse.dslreasoner.standalone.test
diff options
context:
space:
mode:
authorLibravatar ArenBabikian <aren.babikian@mail.mcgill.ca>2019-04-15 00:06:29 -0400
committerLibravatar ArenBabikian <aren.babikian@mail.mcgill.ca>2019-04-15 00:06:29 -0400
commit2f8149678539a94f2f4ca2e7ff5640ff5d7087cc (patch)
tree87355cdeb19a987a6ffc2dd215460e2bc34f1683 /Tests/ca.mcgill.ecse.dslreasoner.standalone.test
parentVAMPIRE: #39 Reorganise tests, working yakindu test, need debugging (diff)
downloadVIATRA-Generator-2f8149678539a94f2f4ca2e7ff5640ff5d7087cc.tar.gz
VIATRA-Generator-2f8149678539a94f2f4ca2e7ff5640ff5d7087cc.tar.zst
VIATRA-Generator-2f8149678539a94f2f4ca2e7ff5640ff5d7087cc.zip
VAMPIRE: close #22, improve test structure for #39, .vql file trouble
Diffstat (limited to 'Tests/ca.mcgill.ecse.dslreasoner.standalone.test')
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.standalone.test/metamodels/filesystem.aird379
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.standalone.test/metamodels/yakindu.aird111
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.standalone.test/plugin.xml7
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.standalone.test/src-gen/ca/mcgill/ecse/dslreasoner/standalone/test/fam/queries/TerminatorAndInformation.java747
4 files changed, 454 insertions, 790 deletions
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/metamodels/filesystem.aird b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/metamodels/filesystem.aird
new file mode 100644
index 00000000..50f2ba11
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/metamodels/filesystem.aird
@@ -0,0 +1,379 @@
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="_EK7A4F8ZEem0RrbB8IXw7Q" selectedViews="_ENX38F8ZEem0RrbB8IXw7Q _ENnIgF8ZEem0RrbB8IXw7Q _ENpkwF8ZEem0RrbB8IXw7Q _EN3AIF8ZEem0RrbB8IXw7Q" version="14.1.0.201810161215">
4 <semanticResources>filesystem.ecore</semanticResources>
5 <semanticResources>filesystem.genmodel</semanticResources>
6 <ownedViews xmi:type="viewpoint:DView" uid="_ENX38F8ZEem0RrbB8IXw7Q">
7 <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']"/>
8 <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_ErMcYF8ZEem0RrbB8IXw7Q" name="filesystem class diagram" repPath="#_Eq7WoF8ZEem0RrbB8IXw7Q">
9 <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
10 <target xmi:type="ecore:EPackage" href="filesystem.ecore#/"/>
11 </ownedRepresentationDescriptors>
12 </ownedViews>
13 <ownedViews xmi:type="viewpoint:DView" uid="_ENnIgF8ZEem0RrbB8IXw7Q">
14 <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Review']"/>
15 </ownedViews>
16 <ownedViews xmi:type="viewpoint:DView" uid="_ENpkwF8ZEem0RrbB8IXw7Q">
17 <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Archetype']"/>
18 </ownedViews>
19 <ownedViews xmi:type="viewpoint:DView" uid="_EN3AIF8ZEem0RrbB8IXw7Q">
20 <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Generation']"/>
21 </ownedViews>
22 </viewpoint:DAnalysis>
23 <diagram:DSemanticDiagram uid="_Eq7WoF8ZEem0RrbB8IXw7Q" name="filesystem class diagram">
24 <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_ErHj4F8ZEem0RrbB8IXw7Q" source="DANNOTATION_CUSTOMIZATION_KEY">
25 <data xmi:type="diagram:ComputedStyleDescriptionRegistry" uid="_ErHj4V8ZEem0RrbB8IXw7Q">
26 <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_GPxNgF8ZEem0RrbB8IXw7Q" sourceArrow="FillDiamond" routingStyle="manhattan">
27 <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
28 <centerLabelStyleDescription xmi:type="style:CenterLabelStyleDescription" xmi:id="_GPxNgV8ZEem0RrbB8IXw7Q" showIcon="false" labelExpression="service:render">
29 <labelFormat>bold</labelFormat>
30 <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
31 </centerLabelStyleDescription>
32 <endLabelStyleDescription xmi:type="style:EndLabelStyleDescription" xmi:id="_GPxNgl8ZEem0RrbB8IXw7Q" labelSize="6" showIcon="false" labelExpression="service:eKeysLabel">
33 <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/>
34 </endLabelStyleDescription>
35 </computedStyleDescriptions>
36 <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_GPyboF8ZEem0RrbB8IXw7Q" routingStyle="manhattan">
37 <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='blue']"/>
38 <centerLabelStyleDescription xmi:type="style:CenterLabelStyleDescription" xmi:id="_GPyboV8ZEem0RrbB8IXw7Q" showIcon="false" labelExpression="service:render">
39 <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/>
40 </centerLabelStyleDescription>
41 <endLabelStyleDescription xmi:type="style:EndLabelStyleDescription" xmi:id="_GPybol8ZEem0RrbB8IXw7Q" labelSize="6" showIcon="false" labelExpression="service:eKeysLabel">
42 <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/>
43 </endLabelStyleDescription>
44 </computedStyleDescriptions>
45 <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_GPzpwF8ZEem0RrbB8IXw7Q" sourceArrow="FillDiamond" routingStyle="manhattan">
46 <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
47 <centerLabelStyleDescription xmi:type="style:CenterLabelStyleDescription" xmi:id="_GPzpwV8ZEem0RrbB8IXw7Q" showIcon="false" labelExpression="service:render">
48 <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
49 </centerLabelStyleDescription>
50 <endLabelStyleDescription xmi:type="style:EndLabelStyleDescription" xmi:id="_GPzpwl8ZEem0RrbB8IXw7Q" labelSize="6" showIcon="false" labelExpression="service:eKeysLabel">
51 <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/>
52 </endLabelStyleDescription>
53 </computedStyleDescriptions>
54 <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_GP3UIF8ZEem0RrbB8IXw7Q" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan">
55 <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
56 <beginLabelStyleDescription xmi:type="style:BeginLabelStyleDescription" xmi:id="_GP3UIV8ZEem0RrbB8IXw7Q" showIcon="false" labelExpression="service:renderEOpposite">
57 <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
58 </beginLabelStyleDescription>
59 <endLabelStyleDescription xmi:type="style:EndLabelStyleDescription" xmi:id="_GP3UIl8ZEem0RrbB8IXw7Q" showIcon="false" labelExpression="service:render">
60 <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
61 </endLabelStyleDescription>
62 </computedStyleDescriptions>
63 </data>
64 </ownedAnnotationEntries>
65 <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_ErXbgF8ZEem0RrbB8IXw7Q" source="GMF_DIAGRAMS">
66 <data xmi:type="notation:Diagram" xmi:id="_ErXbgV8ZEem0RrbB8IXw7Q" type="Sirius" element="_Eq7WoF8ZEem0RrbB8IXw7Q" measurementUnit="Pixel">
67 <children xmi:type="notation:Node" xmi:id="_GP6XcF8ZEem0RrbB8IXw7Q" type="2003" element="_GPjyIF8ZEem0RrbB8IXw7Q">
68 <children xmi:type="notation:Node" xmi:id="_GP6-gF8ZEem0RrbB8IXw7Q" type="5007"/>
69 <children xmi:type="notation:Node" xmi:id="_GP7lkF8ZEem0RrbB8IXw7Q" type="7004">
70 <styles xmi:type="notation:SortingStyle" xmi:id="_GP7lkV8ZEem0RrbB8IXw7Q"/>
71 <styles xmi:type="notation:FilteringStyle" xmi:id="_GP7lkl8ZEem0RrbB8IXw7Q"/>
72 </children>
73 <styles xmi:type="notation:ShapeStyle" xmi:id="_GP6XcV8ZEem0RrbB8IXw7Q" fontName="Segoe UI" fontHeight="8"/>
74 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GP6Xcl8ZEem0RrbB8IXw7Q" x="756" y="180"/>
75 </children>
76 <children xmi:type="notation:Node" xmi:id="_GP7lk18ZEem0RrbB8IXw7Q" type="2003" element="_GPm1cF8ZEem0RrbB8IXw7Q">
77 <children xmi:type="notation:Node" xmi:id="_GP8MoF8ZEem0RrbB8IXw7Q" type="5007"/>
78 <children xmi:type="notation:Node" xmi:id="_GP8MoV8ZEem0RrbB8IXw7Q" type="7004">
79 <styles xmi:type="notation:SortingStyle" xmi:id="_GP8Mol8ZEem0RrbB8IXw7Q"/>
80 <styles xmi:type="notation:FilteringStyle" xmi:id="_GP8Mo18ZEem0RrbB8IXw7Q"/>
81 </children>
82 <styles xmi:type="notation:ShapeStyle" xmi:id="_GP7llF8ZEem0RrbB8IXw7Q" fontName="Segoe UI" fontHeight="8" italic="true"/>
83 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GP7llV8ZEem0RrbB8IXw7Q" x="1260" y="420"/>
84 </children>
85 <children xmi:type="notation:Node" xmi:id="_GP8MpF8ZEem0RrbB8IXw7Q" type="2003" element="_GPncgV8ZEem0RrbB8IXw7Q">
86 <children xmi:type="notation:Node" xmi:id="_GP8Mp18ZEem0RrbB8IXw7Q" type="5007"/>
87 <children xmi:type="notation:Node" xmi:id="_GP8MqF8ZEem0RrbB8IXw7Q" type="7004">
88 <styles xmi:type="notation:SortingStyle" xmi:id="_GP8MqV8ZEem0RrbB8IXw7Q"/>
89 <styles xmi:type="notation:FilteringStyle" xmi:id="_GP8Mql8ZEem0RrbB8IXw7Q"/>
90 </children>
91 <styles xmi:type="notation:ShapeStyle" xmi:id="_GP8MpV8ZEem0RrbB8IXw7Q" fontName="Segoe UI" fontHeight="8"/>
92 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GP8Mpl8ZEem0RrbB8IXw7Q" x="768" y="648"/>
93 </children>
94 <children xmi:type="notation:Node" xmi:id="_GP8zsF8ZEem0RrbB8IXw7Q" type="2003" element="_GPoDkV8ZEem0RrbB8IXw7Q">
95 <children xmi:type="notation:Node" xmi:id="_GP8zs18ZEem0RrbB8IXw7Q" type="5007"/>
96 <children xmi:type="notation:Node" xmi:id="_GP8ztF8ZEem0RrbB8IXw7Q" type="7004">
97 <styles xmi:type="notation:SortingStyle" xmi:id="_GP8ztV8ZEem0RrbB8IXw7Q"/>
98 <styles xmi:type="notation:FilteringStyle" xmi:id="_GP8ztl8ZEem0RrbB8IXw7Q"/>
99 </children>
100 <styles xmi:type="notation:ShapeStyle" xmi:id="_GP8zsV8ZEem0RrbB8IXw7Q" fontName="Segoe UI" fontHeight="8"/>
101 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GP8zsl8ZEem0RrbB8IXw7Q" x="1272" y="660"/>
102 </children>
103 <children xmi:type="notation:Node" xmi:id="_GP8zt18ZEem0RrbB8IXw7Q" type="2003" element="_GPoqoF8ZEem0RrbB8IXw7Q">
104 <children xmi:type="notation:Node" xmi:id="_GP9awF8ZEem0RrbB8IXw7Q" type="5007"/>
105 <children xmi:type="notation:Node" xmi:id="_GP9awV8ZEem0RrbB8IXw7Q" type="7004">
106 <styles xmi:type="notation:SortingStyle" xmi:id="_GP9awl8ZEem0RrbB8IXw7Q"/>
107 <styles xmi:type="notation:FilteringStyle" xmi:id="_GP9aw18ZEem0RrbB8IXw7Q"/>
108 </children>
109 <styles xmi:type="notation:ShapeStyle" xmi:id="_GP8zuF8ZEem0RrbB8IXw7Q" fontName="Segoe UI" fontHeight="8"/>
110 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GP8zuV8ZEem0RrbB8IXw7Q" x="972" y="24"/>
111 </children>
112 <styles xmi:type="notation:DiagramStyle" xmi:id="_ErXbgl8ZEem0RrbB8IXw7Q"/>
113 <edges xmi:type="notation:Edge" xmi:id="_GP_3AF8ZEem0RrbB8IXw7Q" type="4001" element="_GPv_YF8ZEem0RrbB8IXw7Q" source="_GP6XcF8ZEem0RrbB8IXw7Q" target="_GP8MpF8ZEem0RrbB8IXw7Q">
114 <children xmi:type="notation:Node" xmi:id="_GQBFIF8ZEem0RrbB8IXw7Q" type="6001">
115 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GQBFIV8ZEem0RrbB8IXw7Q" x="-157" y="-35"/>
116 </children>
117 <children xmi:type="notation:Node" xmi:id="_GQCTQF8ZEem0RrbB8IXw7Q" type="6002">
118 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GQCTQV8ZEem0RrbB8IXw7Q" x="-28"/>
119 </children>
120 <children xmi:type="notation:Node" xmi:id="_GQC6UF8ZEem0RrbB8IXw7Q" type="6003">
121 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GQC6UV8ZEem0RrbB8IXw7Q" x="-205"/>
122 </children>
123 <styles xmi:type="notation:ConnectorStyle" xmi:id="_GP_3AV8ZEem0RrbB8IXw7Q" routing="Rectilinear"/>
124 <styles xmi:type="notation:FontStyle" xmi:id="_GP_3Al8ZEem0RrbB8IXw7Q" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
125 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GP_3A18ZEem0RrbB8IXw7Q" points="[-23, 98, -35, -468]$[-23, 468, -35, -98]"/>
126 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GQFWkF8ZEem0RrbB8IXw7Q" id="(0.5,0.0)"/>
127 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GQFWkV8ZEem0RrbB8IXw7Q" id="(0.5,1.0)"/>
128 </edges>
129 <edges xmi:type="notation:Edge" xmi:id="_GQFWkl8ZEem0RrbB8IXw7Q" type="4001" element="_GPx0kF8ZEem0RrbB8IXw7Q" source="_GP6XcF8ZEem0RrbB8IXw7Q" target="_GP7lk18ZEem0RrbB8IXw7Q">
130 <children xmi:type="notation:Node" xmi:id="_GQF9oF8ZEem0RrbB8IXw7Q" type="6001">
131 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GQF9oV8ZEem0RrbB8IXw7Q" y="-10"/>
132 </children>
133 <children xmi:type="notation:Node" xmi:id="_GQF9ol8ZEem0RrbB8IXw7Q" type="6002">
134 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GQF9o18ZEem0RrbB8IXw7Q" x="154" y="-10"/>
135 </children>
136 <children xmi:type="notation:Node" xmi:id="_GQF9pF8ZEem0RrbB8IXw7Q" type="6003">
137 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GQF9pV8ZEem0RrbB8IXw7Q" x="10"/>
138 </children>
139 <styles xmi:type="notation:ConnectorStyle" xmi:id="_GQFWk18ZEem0RrbB8IXw7Q" routing="Rectilinear"/>
140 <styles xmi:type="notation:FontStyle" xmi:id="_GQFWlF8ZEem0RrbB8IXw7Q" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
141 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GQFWlV8ZEem0RrbB8IXw7Q" points="[59, 70, -445, -268]$[469, 70, -35, -268]$[469, 240, -35, -98]"/>
142 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GQGksF8ZEem0RrbB8IXw7Q" id="(0.5,0.0)"/>
143 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GQGksV8ZEem0RrbB8IXw7Q" id="(0.5,1.0)"/>
144 </edges>
145 <edges xmi:type="notation:Edge" xmi:id="_GQGksl8ZEem0RrbB8IXw7Q" type="4001" element="_GPybqV8ZEem0RrbB8IXw7Q" source="_GP8zt18ZEem0RrbB8IXw7Q" target="_GP6XcF8ZEem0RrbB8IXw7Q">
146 <children xmi:type="notation:Node" xmi:id="_GQGktl8ZEem0RrbB8IXw7Q" type="6001">
147 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GQGkt18ZEem0RrbB8IXw7Q" y="10"/>
148 </children>
149 <children xmi:type="notation:Node" xmi:id="_GQHLwF8ZEem0RrbB8IXw7Q" type="6002">
150 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GQHLwV8ZEem0RrbB8IXw7Q" x="51" y="146"/>
151 </children>
152 <children xmi:type="notation:Node" xmi:id="_GQHLwl8ZEem0RrbB8IXw7Q" type="6003">
153 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GQHLw18ZEem0RrbB8IXw7Q" x="10"/>
154 </children>
155 <styles xmi:type="notation:ConnectorStyle" xmi:id="_GQGks18ZEem0RrbB8IXw7Q" routing="Rectilinear"/>
156 <styles xmi:type="notation:FontStyle" xmi:id="_GQGktF8ZEem0RrbB8IXw7Q" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
157 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GQGktV8ZEem0RrbB8IXw7Q" points="[-59, 59, 157, -195]$[-215, 59, 1, -195]$[-215, 156, 1, -98]"/>
158 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GQHLxF8ZEem0RrbB8IXw7Q" id="(0.5,0.0)"/>
159 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GQHLxV8ZEem0RrbB8IXw7Q" id="(0.5,1.0)"/>
160 </edges>
161 <edges xmi:type="notation:Edge" xmi:id="_GQHLxl8ZEem0RrbB8IXw7Q" type="4001" element="_GPzCtl8ZEem0RrbB8IXw7Q" source="_GP8zt18ZEem0RrbB8IXw7Q" target="_GP7lk18ZEem0RrbB8IXw7Q">
162 <children xmi:type="notation:Node" xmi:id="_GQHLyl8ZEem0RrbB8IXw7Q" type="6001">
163 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GQHLy18ZEem0RrbB8IXw7Q" x="-57" y="25"/>
164 </children>
165 <children xmi:type="notation:Node" xmi:id="_GQHLzF8ZEem0RrbB8IXw7Q" type="6002">
166 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GQHLzV8ZEem0RrbB8IXw7Q" x="67" y="10"/>
167 </children>
168 <children xmi:type="notation:Node" xmi:id="_GQHy0F8ZEem0RrbB8IXw7Q" type="6003">
169 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GQHy0V8ZEem0RrbB8IXw7Q" x="-186" y="-10"/>
170 </children>
171 <styles xmi:type="notation:ConnectorStyle" xmi:id="_GQHLx18ZEem0RrbB8IXw7Q" routing="Rectilinear"/>
172 <styles xmi:type="notation:FontStyle" xmi:id="_GQHLyF8ZEem0RrbB8IXw7Q" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
173 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GQHLyV8ZEem0RrbB8IXw7Q" points="[59, 60, -229, -434]$[301, 60, 13, -434]$[301, 396, 13, -98]"/>
174 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GQHy0l8ZEem0RrbB8IXw7Q" id="(0.5,0.0)"/>
175 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GQHy018ZEem0RrbB8IXw7Q" id="(0.5,1.0)"/>
176 </edges>
177 <edges xmi:type="notation:Edge" xmi:id="_GQHy1F8ZEem0RrbB8IXw7Q" type="4001" element="_GPzpyV8ZEem0RrbB8IXw7Q" source="_GP8zsF8ZEem0RrbB8IXw7Q" target="_GP7lk18ZEem0RrbB8IXw7Q">
178 <children xmi:type="notation:Node" xmi:id="_GQHy2F8ZEem0RrbB8IXw7Q" type="6001">
179 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GQHy2V8ZEem0RrbB8IXw7Q" y="-10"/>
180 </children>
181 <children xmi:type="notation:Node" xmi:id="_GQHy2l8ZEem0RrbB8IXw7Q" type="6002">
182 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GQHy218ZEem0RrbB8IXw7Q" y="10"/>
183 </children>
184 <children xmi:type="notation:Node" xmi:id="_GQHy3F8ZEem0RrbB8IXw7Q" type="6003">
185 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GQHy3V8ZEem0RrbB8IXw7Q" y="10"/>
186 </children>
187 <styles xmi:type="notation:ConnectorStyle" xmi:id="_GQHy1V8ZEem0RrbB8IXw7Q" routing="Tree"/>
188 <styles xmi:type="notation:FontStyle" xmi:id="_GQHy1l8ZEem0RrbB8IXw7Q" fontName="Segoe UI" fontHeight="8"/>
189 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GQHy118ZEem0RrbB8IXw7Q" points="[0, 0, 162, 60]$[-162, -60, 0, 0]"/>
190 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GQIZ4F8ZEem0RrbB8IXw7Q" id="(0.5,0.0)"/>
191 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GQIZ4V8ZEem0RrbB8IXw7Q" id="(0.5,1.0)"/>
192 </edges>
193 <edges xmi:type="notation:Edge" xmi:id="_GQIZ4l8ZEem0RrbB8IXw7Q" type="4001" element="_GP1e9l8ZEem0RrbB8IXw7Q" source="_GP8MpF8ZEem0RrbB8IXw7Q" target="_GP7lk18ZEem0RrbB8IXw7Q">
194 <children xmi:type="notation:Node" xmi:id="_GQIZ5l8ZEem0RrbB8IXw7Q" type="6001">
195 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GQIZ518ZEem0RrbB8IXw7Q" x="-113" y="-10"/>
196 </children>
197 <children xmi:type="notation:Node" xmi:id="_GQIZ6F8ZEem0RrbB8IXw7Q" type="6002">
198 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GQIZ6V8ZEem0RrbB8IXw7Q" x="50" y="10"/>
199 </children>
200 <children xmi:type="notation:Node" xmi:id="_GQIZ6l8ZEem0RrbB8IXw7Q" type="6003">
201 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GQIZ618ZEem0RrbB8IXw7Q" x="-105" y="-47"/>
202 </children>
203 <styles xmi:type="notation:ConnectorStyle" xmi:id="_GQIZ418ZEem0RrbB8IXw7Q" routing="Tree"/>
204 <styles xmi:type="notation:FontStyle" xmi:id="_GQIZ5F8ZEem0RrbB8IXw7Q" fontName="Segoe UI" fontHeight="8"/>
205 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GQIZ5V8ZEem0RrbB8IXw7Q" points="[0, 0, -492, 130]$[0, -48, -492, 82]$[491, -48, -1, 82]$[491, -130, -1, 0]"/>
206 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GQJA8F8ZEem0RrbB8IXw7Q" id="(0.5,0.0)"/>
207 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GQJA8V8ZEem0RrbB8IXw7Q" id="(0.5,1.0)"/>
208 </edges>
209 <edges xmi:type="notation:Edge" xmi:id="_GQJA8l8ZEem0RrbB8IXw7Q" type="4001" element="_GP2tEF8ZEem0RrbB8IXw7Q" source="_GP7lk18ZEem0RrbB8IXw7Q" target="_GP8MpF8ZEem0RrbB8IXw7Q">
210 <children xmi:type="notation:Node" xmi:id="_GQJA9l8ZEem0RrbB8IXw7Q" type="6001">
211 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GQJA918ZEem0RrbB8IXw7Q" x="-272" y="-10"/>
212 </children>
213 <children xmi:type="notation:Node" xmi:id="_GQJA-F8ZEem0RrbB8IXw7Q" type="6002">
214 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GQJA-V8ZEem0RrbB8IXw7Q" x="4" y="-10"/>
215 </children>
216 <children xmi:type="notation:Node" xmi:id="_GQJA-l8ZEem0RrbB8IXw7Q" type="6003">
217 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GQJA-18ZEem0RrbB8IXw7Q" x="-92" y="-291"/>
218 </children>
219 <styles xmi:type="notation:ConnectorStyle" xmi:id="_GQJA818ZEem0RrbB8IXw7Q" routing="Rectilinear"/>
220 <styles xmi:type="notation:FontStyle" xmi:id="_GQJA9F8ZEem0RrbB8IXw7Q" fontName="Segoe UI" fontHeight="8"/>
221 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GQJA9V8ZEem0RrbB8IXw7Q" points="[-59, -38, 433, -168]$[-467, -38, 25, -168]$[-467, 130, 25, 0]"/>
222 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GQJA_F8ZEem0RrbB8IXw7Q" id="(0.5,1.0)"/>
223 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GQJA_V8ZEem0RrbB8IXw7Q" id="(0.5,0.0)"/>
224 </edges>
225 </data>
226 </ownedAnnotationEntries>
227 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_GPjyIF8ZEem0RrbB8IXw7Q" name="FileSystem" tooltipText="" outgoingEdges="_GPv_YF8ZEem0RrbB8IXw7Q _GPx0kF8ZEem0RrbB8IXw7Q" incomingEdges="_GPybqV8ZEem0RrbB8IXw7Q" width="12" height="10">
228 <target xmi:type="ecore:EClass" href="filesystem.ecore#//FileSystem"/>
229 <semanticElements xmi:type="ecore:EClass" href="filesystem.ecore#//FileSystem"/>
230 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
231 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
232 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
233 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_GPlAQF8ZEem0RrbB8IXw7Q" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
234 <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"/>
235 </ownedStyle>
236 <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']"/>
237 </ownedDiagramElements>
238 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_GPm1cF8ZEem0RrbB8IXw7Q" name="FSObject" tooltipText="" outgoingEdges="_GP2tEF8ZEem0RrbB8IXw7Q" incomingEdges="_GPx0kF8ZEem0RrbB8IXw7Q _GPzCtl8ZEem0RrbB8IXw7Q _GPzpyV8ZEem0RrbB8IXw7Q _GP1e9l8ZEem0RrbB8IXw7Q" width="12" height="10">
239 <target xmi:type="ecore:EClass" href="filesystem.ecore#//FSObject"/>
240 <semanticElements xmi:type="ecore:EClass" href="filesystem.ecore#//FSObject"/>
241 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
242 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
243 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
244 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_GPm1cV8ZEem0RrbB8IXw7Q" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
245 <labelFormat>italic</labelFormat>
246 <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']/@conditionnalStyles.1/@style"/>
247 </ownedStyle>
248 <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']"/>
249 </ownedDiagramElements>
250 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_GPncgV8ZEem0RrbB8IXw7Q" name="Dir" tooltipText="" outgoingEdges="_GP1e9l8ZEem0RrbB8IXw7Q" incomingEdges="_GPv_YF8ZEem0RrbB8IXw7Q _GP2tEF8ZEem0RrbB8IXw7Q" width="12" height="10">
251 <target xmi:type="ecore:EClass" href="filesystem.ecore#//Dir"/>
252 <semanticElements xmi:type="ecore:EClass" href="filesystem.ecore#//Dir"/>
253 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
254 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
255 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
256 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_GPncgl8ZEem0RrbB8IXw7Q" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
257 <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"/>
258 </ownedStyle>
259 <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']"/>
260 </ownedDiagramElements>
261 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_GPoDkV8ZEem0RrbB8IXw7Q" name="File" tooltipText="" outgoingEdges="_GPzpyV8ZEem0RrbB8IXw7Q" width="12" height="10">
262 <target xmi:type="ecore:EClass" href="filesystem.ecore#//File"/>
263 <semanticElements xmi:type="ecore:EClass" href="filesystem.ecore#//File"/>
264 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
265 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
266 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
267 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_GPoDkl8ZEem0RrbB8IXw7Q" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
268 <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"/>
269 </ownedStyle>
270 <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']"/>
271 </ownedDiagramElements>
272 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_GPoqoF8ZEem0RrbB8IXw7Q" name="Model" tooltipText="" outgoingEdges="_GPybqV8ZEem0RrbB8IXw7Q _GPzCtl8ZEem0RrbB8IXw7Q" width="12" height="10">
273 <target xmi:type="ecore:EClass" href="filesystem.ecore#//Model"/>
274 <semanticElements xmi:type="ecore:EClass" href="filesystem.ecore#//Model"/>
275 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
276 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
277 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
278 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_GPoqoV8ZEem0RrbB8IXw7Q" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
279 <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"/>
280 </ownedStyle>
281 <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']"/>
282 </ownedDiagramElements>
283 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_GPv_YF8ZEem0RrbB8IXw7Q" name="[1..1] root" sourceNode="_GPjyIF8ZEem0RrbB8IXw7Q" targetNode="_GPncgV8ZEem0RrbB8IXw7Q">
284 <target xmi:type="ecore:EReference" href="filesystem.ecore#//FileSystem/root"/>
285 <semanticElements xmi:type="ecore:EReference" href="filesystem.ecore#//FileSystem/root"/>
286 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_GPxNg18ZEem0RrbB8IXw7Q" description="_GPxNgF8ZEem0RrbB8IXw7Q" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
287 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_GPxNhV8ZEem0RrbB8IXw7Q" showIcon="false">
288 <customFeatures>labelSize</customFeatures>
289 <labelFormat>bold</labelFormat>
290 </centerLabelStyle>
291 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_GPxNhF8ZEem0RrbB8IXw7Q" showIcon="false" labelColor="39,76,114">
292 <customFeatures>labelSize</customFeatures>
293 </endLabelStyle>
294 </ownedStyle>
295 <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']"/>
296 </ownedDiagramElements>
297 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_GPx0kF8ZEem0RrbB8IXw7Q" name="[0..*] /live" sourceNode="_GPjyIF8ZEem0RrbB8IXw7Q" targetNode="_GPm1cF8ZEem0RrbB8IXw7Q">
298 <target xmi:type="ecore:EReference" href="filesystem.ecore#//FileSystem/live"/>
299 <semanticElements xmi:type="ecore:EReference" href="filesystem.ecore#//FileSystem/live"/>
300 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_GPybo18ZEem0RrbB8IXw7Q" description="_GPyboF8ZEem0RrbB8IXw7Q" routingStyle="manhattan" strokeColor="114,159,207">
301 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_GPybpV8ZEem0RrbB8IXw7Q" showIcon="false" labelColor="39,76,114">
302 <customFeatures>labelSize</customFeatures>
303 </centerLabelStyle>
304 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_GPybpF8ZEem0RrbB8IXw7Q" showIcon="false" labelColor="39,76,114">
305 <customFeatures>labelSize</customFeatures>
306 </endLabelStyle>
307 </ownedStyle>
308 <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']"/>
309 </ownedDiagramElements>
310 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_GPybqV8ZEem0RrbB8IXw7Q" name="[1..1] filesystems" sourceNode="_GPoqoF8ZEem0RrbB8IXw7Q" targetNode="_GPjyIF8ZEem0RrbB8IXw7Q">
311 <target xmi:type="ecore:EReference" href="filesystem.ecore#//Model/filesystems"/>
312 <semanticElements xmi:type="ecore:EReference" href="filesystem.ecore#//Model/filesystems"/>
313 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_GPzCsF8ZEem0RrbB8IXw7Q" description="_GPxNgF8ZEem0RrbB8IXw7Q" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
314 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_GPzCsl8ZEem0RrbB8IXw7Q" showIcon="false">
315 <customFeatures>labelSize</customFeatures>
316 <labelFormat>bold</labelFormat>
317 </centerLabelStyle>
318 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_GPzCsV8ZEem0RrbB8IXw7Q" showIcon="false" labelColor="39,76,114">
319 <customFeatures>labelSize</customFeatures>
320 </endLabelStyle>
321 </ownedStyle>
322 <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']"/>
323 </ownedDiagramElements>
324 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_GPzCtl8ZEem0RrbB8IXw7Q" name="[0..*] otherFSObjects" sourceNode="_GPoqoF8ZEem0RrbB8IXw7Q" targetNode="_GPm1cF8ZEem0RrbB8IXw7Q">
325 <target xmi:type="ecore:EReference" href="filesystem.ecore#//Model/otherFSObjects"/>
326 <semanticElements xmi:type="ecore:EReference" href="filesystem.ecore#//Model/otherFSObjects"/>
327 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_GPzpw18ZEem0RrbB8IXw7Q" description="_GPzpwF8ZEem0RrbB8IXw7Q" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
328 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_GPzpxV8ZEem0RrbB8IXw7Q" showIcon="false">
329 <customFeatures>labelSize</customFeatures>
330 </centerLabelStyle>
331 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_GPzpxF8ZEem0RrbB8IXw7Q" showIcon="false" labelColor="39,76,114">
332 <customFeatures>labelSize</customFeatures>
333 </endLabelStyle>
334 </ownedStyle>
335 <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']"/>
336 </ownedDiagramElements>
337 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_GPzpyV8ZEem0RrbB8IXw7Q" sourceNode="_GPoDkV8ZEem0RrbB8IXw7Q" targetNode="_GPm1cF8ZEem0RrbB8IXw7Q">
338 <target xmi:type="ecore:EClass" href="filesystem.ecore#//File"/>
339 <semanticElements xmi:type="ecore:EClass" href="filesystem.ecore#//File"/>
340 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_GP1e8F8ZEem0RrbB8IXw7Q" targetArrow="InputClosedArrow" routingStyle="tree">
341 <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='EC%20ESupertypes']/@style"/>
342 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_GP1e8V8ZEem0RrbB8IXw7Q" showIcon="false">
343 <labelFormat>italic</labelFormat>
344 </beginLabelStyle>
345 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_GP1e8l8ZEem0RrbB8IXw7Q" showIcon="false"/>
346 </ownedStyle>
347 <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%20ESupertypes']"/>
348 </ownedDiagramElements>
349 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_GP1e9l8ZEem0RrbB8IXw7Q" sourceNode="_GPncgV8ZEem0RrbB8IXw7Q" targetNode="_GPm1cF8ZEem0RrbB8IXw7Q">
350 <target xmi:type="ecore:EClass" href="filesystem.ecore#//Dir"/>
351 <semanticElements xmi:type="ecore:EClass" href="filesystem.ecore#//Dir"/>
352 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_GP2GAF8ZEem0RrbB8IXw7Q" targetArrow="InputClosedArrow" routingStyle="tree">
353 <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='EC%20ESupertypes']/@style"/>
354 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_GP2GAV8ZEem0RrbB8IXw7Q" showIcon="false">
355 <labelFormat>italic</labelFormat>
356 </beginLabelStyle>
357 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_GP2GAl8ZEem0RrbB8IXw7Q" showIcon="false"/>
358 </ownedStyle>
359 <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%20ESupertypes']"/>
360 </ownedDiagramElements>
361 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_GP2tEF8ZEem0RrbB8IXw7Q" sourceNode="_GPm1cF8ZEem0RrbB8IXw7Q" targetNode="_GPncgV8ZEem0RrbB8IXw7Q" beginLabel="[0..*] contents" endLabel="[0..1] parent">
362 <target xmi:type="ecore:EReference" href="filesystem.ecore#//FSObject/parent"/>
363 <semanticElements xmi:type="ecore:EReference" href="filesystem.ecore#//Dir/contents"/>
364 <semanticElements xmi:type="ecore:EReference" href="filesystem.ecore#//FSObject/parent"/>
365 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_GP3UI18ZEem0RrbB8IXw7Q" description="_GP3UIF8ZEem0RrbB8IXw7Q" sourceArrow="InputArrow" targetArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
366 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_GP3UJF8ZEem0RrbB8IXw7Q" showIcon="false"/>
367 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_GP3UJV8ZEem0RrbB8IXw7Q" showIcon="false"/>
368 </ownedStyle>
369 <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']"/>
370 </ownedDiagramElements>
371 <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
372 <filterVariableHistory xmi:type="diagram:FilterVariableHistory" uid="_Eq_BAF8ZEem0RrbB8IXw7Q"/>
373 <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/>
374 <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']"/>
375 <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']"/>
376 <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Archetype']/@ownedRepresentationExtensions[name='Entities%20With%20Archetypes']/@layers[name='Archetypes']"/>
377 <target xmi:type="ecore:EPackage" href="filesystem.ecore#/"/>
378 </diagram:DSemanticDiagram>
379</xmi:XMI>
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/metamodels/yakindu.aird b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/metamodels/yakindu.aird
index ef3746fa..be45a301 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/metamodels/yakindu.aird
+++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/metamodels/yakindu.aird
@@ -52,7 +52,7 @@
52 <styles xmi:type="notation:FilteringStyle" xmi:id="_g_nnMlybEemc87q3iJlCgw"/> 52 <styles xmi:type="notation:FilteringStyle" xmi:id="_g_nnMlybEemc87q3iJlCgw"/>
53 </children> 53 </children>
54 <styles xmi:type="notation:ShapeStyle" xmi:id="_g_kj4VybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8" italic="true"/> 54 <styles xmi:type="notation:ShapeStyle" xmi:id="_g_kj4VybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8" italic="true"/>
55 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_kj4lybEemc87q3iJlCgw" x="360" y="324"/> 55 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_kj4lybEemc87q3iJlCgw" x="1113" y="420"/>
56 </children> 56 </children>
57 <children xmi:type="notation:Node" xmi:id="_g_o1UFybEemc87q3iJlCgw" type="2003" element="_g-SKcFybEemc87q3iJlCgw"> 57 <children xmi:type="notation:Node" xmi:id="_g_o1UFybEemc87q3iJlCgw" type="2003" element="_g-SKcFybEemc87q3iJlCgw">
58 <children xmi:type="notation:Node" xmi:id="_g_pcYFybEemc87q3iJlCgw" type="5007"/> 58 <children xmi:type="notation:Node" xmi:id="_g_pcYFybEemc87q3iJlCgw" type="5007"/>
@@ -61,7 +61,7 @@
61 <styles xmi:type="notation:FilteringStyle" xmi:id="_g_pcY1ybEemc87q3iJlCgw"/> 61 <styles xmi:type="notation:FilteringStyle" xmi:id="_g_pcY1ybEemc87q3iJlCgw"/>
62 </children> 62 </children>
63 <styles xmi:type="notation:ShapeStyle" xmi:id="_g_o1UVybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8" italic="true"/> 63 <styles xmi:type="notation:ShapeStyle" xmi:id="_g_o1UVybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8" italic="true"/>
64 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_o1UlybEemc87q3iJlCgw" x="648" y="156"/> 64 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_o1UlybEemc87q3iJlCgw" x="984" y="204"/>
65 </children> 65 </children>
66 <children xmi:type="notation:Node" xmi:id="_g_pcZFybEemc87q3iJlCgw" type="2003" element="_g-T_oFybEemc87q3iJlCgw"> 66 <children xmi:type="notation:Node" xmi:id="_g_pcZFybEemc87q3iJlCgw" type="2003" element="_g-T_oFybEemc87q3iJlCgw">
67 <children xmi:type="notation:Node" xmi:id="_g_pcZ1ybEemc87q3iJlCgw" type="5007"/> 67 <children xmi:type="notation:Node" xmi:id="_g_pcZ1ybEemc87q3iJlCgw" type="5007"/>
@@ -70,7 +70,7 @@
70 <styles xmi:type="notation:FilteringStyle" xmi:id="_g_pcalybEemc87q3iJlCgw"/> 70 <styles xmi:type="notation:FilteringStyle" xmi:id="_g_pcalybEemc87q3iJlCgw"/>
71 </children> 71 </children>
72 <styles xmi:type="notation:ShapeStyle" xmi:id="_g_pcZVybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/> 72 <styles xmi:type="notation:ShapeStyle" xmi:id="_g_pcZVybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/>
73 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_pcZlybEemc87q3iJlCgw" x="648" y="324"/> 73 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_pcZlybEemc87q3iJlCgw" x="948" y="36"/>
74 </children> 74 </children>
75 <children xmi:type="notation:Node" xmi:id="_g_qDcFybEemc87q3iJlCgw" type="2003" element="_g-Wb4FybEemc87q3iJlCgw"> 75 <children xmi:type="notation:Node" xmi:id="_g_qDcFybEemc87q3iJlCgw" type="2003" element="_g-Wb4FybEemc87q3iJlCgw">
76 <children xmi:type="notation:Node" xmi:id="_g_qDc1ybEemc87q3iJlCgw" type="5007"/> 76 <children xmi:type="notation:Node" xmi:id="_g_qDc1ybEemc87q3iJlCgw" type="5007"/>
@@ -79,7 +79,7 @@
79 <styles xmi:type="notation:FilteringStyle" xmi:id="_g_qDdlybEemc87q3iJlCgw"/> 79 <styles xmi:type="notation:FilteringStyle" xmi:id="_g_qDdlybEemc87q3iJlCgw"/>
80 </children> 80 </children>
81 <styles xmi:type="notation:ShapeStyle" xmi:id="_g_qDcVybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/> 81 <styles xmi:type="notation:ShapeStyle" xmi:id="_g_qDcVybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/>
82 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_qDclybEemc87q3iJlCgw" x="648"/> 82 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_qDclybEemc87q3iJlCgw" x="1404" y="204"/>
83 </children> 83 </children>
84 <children xmi:type="notation:Node" xmi:id="_g_qqgFybEemc87q3iJlCgw" type="2003" element="_g-YREFybEemc87q3iJlCgw"> 84 <children xmi:type="notation:Node" xmi:id="_g_qqgFybEemc87q3iJlCgw" type="2003" element="_g-YREFybEemc87q3iJlCgw">
85 <children xmi:type="notation:Node" xmi:id="_g_qqg1ybEemc87q3iJlCgw" type="5007"/> 85 <children xmi:type="notation:Node" xmi:id="_g_qqg1ybEemc87q3iJlCgw" type="5007"/>
@@ -88,7 +88,7 @@
88 <styles xmi:type="notation:FilteringStyle" xmi:id="_g_qqhlybEemc87q3iJlCgw"/> 88 <styles xmi:type="notation:FilteringStyle" xmi:id="_g_qqhlybEemc87q3iJlCgw"/>
89 </children> 89 </children>
90 <styles xmi:type="notation:ShapeStyle" xmi:id="_g_qqgVybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/> 90 <styles xmi:type="notation:ShapeStyle" xmi:id="_g_qqgVybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/>
91 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_qqglybEemc87q3iJlCgw" x="648" y="636"/> 91 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_qqglybEemc87q3iJlCgw" x="300" y="180"/>
92 </children> 92 </children>
93 <children xmi:type="notation:Node" xmi:id="_g_qqh1ybEemc87q3iJlCgw" type="2003" element="_g-aGQFybEemc87q3iJlCgw"> 93 <children xmi:type="notation:Node" xmi:id="_g_qqh1ybEemc87q3iJlCgw" type="2003" element="_g-aGQFybEemc87q3iJlCgw">
94 <children xmi:type="notation:Node" xmi:id="_g_rRkFybEemc87q3iJlCgw" type="5007"/> 94 <children xmi:type="notation:Node" xmi:id="_g_rRkFybEemc87q3iJlCgw" type="5007"/>
@@ -97,7 +97,7 @@
97 <styles xmi:type="notation:FilteringStyle" xmi:id="_g_rRk1ybEemc87q3iJlCgw"/> 97 <styles xmi:type="notation:FilteringStyle" xmi:id="_g_rRk1ybEemc87q3iJlCgw"/>
98 </children> 98 </children>
99 <styles xmi:type="notation:ShapeStyle" xmi:id="_g_qqiFybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/> 99 <styles xmi:type="notation:ShapeStyle" xmi:id="_g_qqiFybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/>
100 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_qqiVybEemc87q3iJlCgw" x="180" y="480"/> 100 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_qqiVybEemc87q3iJlCgw" x="1032" y="600"/>
101 </children> 101 </children>
102 <children xmi:type="notation:Node" xmi:id="_g_rRlFybEemc87q3iJlCgw" type="2003" element="_g-b7cFybEemc87q3iJlCgw"> 102 <children xmi:type="notation:Node" xmi:id="_g_rRlFybEemc87q3iJlCgw" type="2003" element="_g-b7cFybEemc87q3iJlCgw">
103 <children xmi:type="notation:Node" xmi:id="_g_r4oFybEemc87q3iJlCgw" type="5007"/> 103 <children xmi:type="notation:Node" xmi:id="_g_r4oFybEemc87q3iJlCgw" type="5007"/>
@@ -106,7 +106,7 @@
106 <styles xmi:type="notation:FilteringStyle" xmi:id="_g_r4o1ybEemc87q3iJlCgw"/> 106 <styles xmi:type="notation:FilteringStyle" xmi:id="_g_r4o1ybEemc87q3iJlCgw"/>
107 </children> 107 </children>
108 <styles xmi:type="notation:ShapeStyle" xmi:id="_g_rRlVybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/> 108 <styles xmi:type="notation:ShapeStyle" xmi:id="_g_rRlVybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/>
109 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_rRllybEemc87q3iJlCgw" y="480"/> 109 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_rRllybEemc87q3iJlCgw" x="852" y="600"/>
110 </children> 110 </children>
111 <children xmi:type="notation:Node" xmi:id="_g_sfsFybEemc87q3iJlCgw" type="2003" element="_g-dJkVybEemc87q3iJlCgw"> 111 <children xmi:type="notation:Node" xmi:id="_g_sfsFybEemc87q3iJlCgw" type="2003" element="_g-dJkVybEemc87q3iJlCgw">
112 <children xmi:type="notation:Node" xmi:id="_g_sfs1ybEemc87q3iJlCgw" type="5007"/> 112 <children xmi:type="notation:Node" xmi:id="_g_sfs1ybEemc87q3iJlCgw" type="5007"/>
@@ -115,7 +115,7 @@
115 <styles xmi:type="notation:FilteringStyle" xmi:id="_g_sftlybEemc87q3iJlCgw"/> 115 <styles xmi:type="notation:FilteringStyle" xmi:id="_g_sftlybEemc87q3iJlCgw"/>
116 </children> 116 </children>
117 <styles xmi:type="notation:ShapeStyle" xmi:id="_g_sfsVybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/> 117 <styles xmi:type="notation:ShapeStyle" xmi:id="_g_sfsVybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/>
118 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_sfslybEemc87q3iJlCgw" x="828" y="636"/> 118 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_sfslybEemc87q3iJlCgw" x="504" y="492"/>
119 </children> 119 </children>
120 <children xmi:type="notation:Node" xmi:id="_g_tGwFybEemc87q3iJlCgw" type="2003" element="_g-fl0FybEemc87q3iJlCgw"> 120 <children xmi:type="notation:Node" xmi:id="_g_tGwFybEemc87q3iJlCgw" type="2003" element="_g-fl0FybEemc87q3iJlCgw">
121 <children xmi:type="notation:Node" xmi:id="_g_uU4FybEemc87q3iJlCgw" type="5007"/> 121 <children xmi:type="notation:Node" xmi:id="_g_uU4FybEemc87q3iJlCgw" type="5007"/>
@@ -124,7 +124,7 @@
124 <styles xmi:type="notation:FilteringStyle" xmi:id="_g_u78lybEemc87q3iJlCgw"/> 124 <styles xmi:type="notation:FilteringStyle" xmi:id="_g_u78lybEemc87q3iJlCgw"/>
125 </children> 125 </children>
126 <styles xmi:type="notation:ShapeStyle" xmi:id="_g_tGwVybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8" italic="true"/> 126 <styles xmi:type="notation:ShapeStyle" xmi:id="_g_tGwVybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8" italic="true"/>
127 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_tGwlybEemc87q3iJlCgw" x="828" y="324"/> 127 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_tGwlybEemc87q3iJlCgw" x="672" y="348"/>
128 </children> 128 </children>
129 <children xmi:type="notation:Node" xmi:id="_g_u781ybEemc87q3iJlCgw" type="2003" element="_g-hbAVybEemc87q3iJlCgw"> 129 <children xmi:type="notation:Node" xmi:id="_g_u781ybEemc87q3iJlCgw" type="2003" element="_g-hbAVybEemc87q3iJlCgw">
130 <children xmi:type="notation:Node" xmi:id="_g_vjAFybEemc87q3iJlCgw" type="5007"/> 130 <children xmi:type="notation:Node" xmi:id="_g_vjAFybEemc87q3iJlCgw" type="5007"/>
@@ -133,7 +133,7 @@
133 <styles xmi:type="notation:FilteringStyle" xmi:id="_g_vjA1ybEemc87q3iJlCgw"/> 133 <styles xmi:type="notation:FilteringStyle" xmi:id="_g_vjA1ybEemc87q3iJlCgw"/>
134 </children> 134 </children>
135 <styles xmi:type="notation:ShapeStyle" xmi:id="_g_u79FybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8" italic="true"/> 135 <styles xmi:type="notation:ShapeStyle" xmi:id="_g_u79FybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8" italic="true"/>
136 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_u79VybEemc87q3iJlCgw" x="720" y="480"/> 136 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_u79VybEemc87q3iJlCgw" x="648" y="24"/>
137 </children> 137 </children>
138 <children xmi:type="notation:Node" xmi:id="_g_vjBFybEemc87q3iJlCgw" type="2003" element="_g-jQMFybEemc87q3iJlCgw"> 138 <children xmi:type="notation:Node" xmi:id="_g_vjBFybEemc87q3iJlCgw" type="2003" element="_g-jQMFybEemc87q3iJlCgw">
139 <children xmi:type="notation:Node" xmi:id="_g_wKEFybEemc87q3iJlCgw" type="5007"/> 139 <children xmi:type="notation:Node" xmi:id="_g_wKEFybEemc87q3iJlCgw" type="5007"/>
@@ -142,7 +142,7 @@
142 <styles xmi:type="notation:FilteringStyle" xmi:id="_g_wKE1ybEemc87q3iJlCgw"/> 142 <styles xmi:type="notation:FilteringStyle" xmi:id="_g_wKE1ybEemc87q3iJlCgw"/>
143 </children> 143 </children>
144 <styles xmi:type="notation:ShapeStyle" xmi:id="_g_vjBVybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/> 144 <styles xmi:type="notation:ShapeStyle" xmi:id="_g_vjBVybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/>
145 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_vjBlybEemc87q3iJlCgw" x="360" y="480"/> 145 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_vjBlybEemc87q3iJlCgw" x="1212" y="600"/>
146 </children> 146 </children>
147 <children xmi:type="notation:Node" xmi:id="_g_wKFFybEemc87q3iJlCgw" type="2003" element="_g-lscFybEemc87q3iJlCgw"> 147 <children xmi:type="notation:Node" xmi:id="_g_wKFFybEemc87q3iJlCgw" type="2003" element="_g-lscFybEemc87q3iJlCgw">
148 <children xmi:type="notation:Node" xmi:id="_g_wKF1ybEemc87q3iJlCgw" type="5007"/> 148 <children xmi:type="notation:Node" xmi:id="_g_wKF1ybEemc87q3iJlCgw" type="5007"/>
@@ -151,7 +151,7 @@
151 <styles xmi:type="notation:FilteringStyle" xmi:id="_g_wKGlybEemc87q3iJlCgw"/> 151 <styles xmi:type="notation:FilteringStyle" xmi:id="_g_wKGlybEemc87q3iJlCgw"/>
152 </children> 152 </children>
153 <styles xmi:type="notation:ShapeStyle" xmi:id="_g_wKFVybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/> 153 <styles xmi:type="notation:ShapeStyle" xmi:id="_g_wKFVybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/>
154 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_wKFlybEemc87q3iJlCgw" x="540" y="480"/> 154 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_wKFlybEemc87q3iJlCgw" x="1392" y="600"/>
155 </children> 155 </children>
156 <children xmi:type="notation:Node" xmi:id="_g_wxIFybEemc87q3iJlCgw" type="2003" element="_g-m6kFybEemc87q3iJlCgw"> 156 <children xmi:type="notation:Node" xmi:id="_g_wxIFybEemc87q3iJlCgw" type="2003" element="_g-m6kFybEemc87q3iJlCgw">
157 <children xmi:type="notation:Node" xmi:id="_g_wxI1ybEemc87q3iJlCgw" type="5007"/> 157 <children xmi:type="notation:Node" xmi:id="_g_wxI1ybEemc87q3iJlCgw" type="5007"/>
@@ -160,22 +160,22 @@
160 <styles xmi:type="notation:FilteringStyle" xmi:id="_g_wxJlybEemc87q3iJlCgw"/> 160 <styles xmi:type="notation:FilteringStyle" xmi:id="_g_wxJlybEemc87q3iJlCgw"/>
161 </children> 161 </children>
162 <styles xmi:type="notation:ShapeStyle" xmi:id="_g_wxIVybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/> 162 <styles xmi:type="notation:ShapeStyle" xmi:id="_g_wxIVybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/>
163 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_wxIlybEemc87q3iJlCgw" x="936" y="480"/> 163 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_wxIlybEemc87q3iJlCgw" x="756" y="480"/>
164 </children> 164 </children>
165 <styles xmi:type="notation:DiagramStyle" xmi:id="_gH58ElybEemc87q3iJlCgw"/> 165 <styles xmi:type="notation:DiagramStyle" xmi:id="_gH58ElybEemc87q3iJlCgw"/>
166 <edges xmi:type="notation:Edge" xmi:id="_g_z0cFybEemc87q3iJlCgw" type="4001" element="_g_JtIFybEemc87q3iJlCgw" source="_g_pcZFybEemc87q3iJlCgw" target="_g_o1UFybEemc87q3iJlCgw"> 166 <edges xmi:type="notation:Edge" xmi:id="_g_z0cFybEemc87q3iJlCgw" type="4001" element="_g_JtIFybEemc87q3iJlCgw" source="_g_pcZFybEemc87q3iJlCgw" target="_g_o1UFybEemc87q3iJlCgw">
167 <children xmi:type="notation:Node" xmi:id="_g_4s8FybEemc87q3iJlCgw" type="6001"> 167 <children xmi:type="notation:Node" xmi:id="_g_4s8FybEemc87q3iJlCgw" type="6001">
168 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_4s8VybEemc87q3iJlCgw" x="19" y="47"/> 168 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_4s8VybEemc87q3iJlCgw" x="-10"/>
169 </children> 169 </children>
170 <children xmi:type="notation:Node" xmi:id="_g_4s8lybEemc87q3iJlCgw" type="6002"> 170 <children xmi:type="notation:Node" xmi:id="_g_4s8lybEemc87q3iJlCgw" type="6002">
171 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_4s81ybEemc87q3iJlCgw" y="10"/> 171 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_4s81ybEemc87q3iJlCgw" x="60"/>
172 </children> 172 </children>
173 <children xmi:type="notation:Node" xmi:id="_g_4s9FybEemc87q3iJlCgw" type="6003"> 173 <children xmi:type="notation:Node" xmi:id="_g_4s9FybEemc87q3iJlCgw" type="6003">
174 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_4s9VybEemc87q3iJlCgw" y="10"/> 174 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_4s9VybEemc87q3iJlCgw" x="10"/>
175 </children> 175 </children>
176 <styles xmi:type="notation:ConnectorStyle" xmi:id="_g_z0cVybEemc87q3iJlCgw" routing="Rectilinear"/> 176 <styles xmi:type="notation:ConnectorStyle" xmi:id="_g_z0cVybEemc87q3iJlCgw" routing="Rectilinear"/>
177 <styles xmi:type="notation:FontStyle" xmi:id="_g_z0clybEemc87q3iJlCgw" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/> 177 <styles xmi:type="notation:FontStyle" xmi:id="_g_z0clybEemc87q3iJlCgw" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
178 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_g_z0c1ybEemc87q3iJlCgw" points="[25, 0, 25, 70]$[25, -70, 25, 0]"/> 178 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_g_z0c1ybEemc87q3iJlCgw" points="[25, 98, -11, -168]$[25, 168, -11, -98]"/>
179 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAETIFybEemc87q3iJlCgw" id="(0.5,0.0)"/> 179 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAETIFybEemc87q3iJlCgw" id="(0.5,0.0)"/>
180 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAETIVybEemc87q3iJlCgw" id="(0.5,1.0)"/> 180 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAETIVybEemc87q3iJlCgw" id="(0.5,1.0)"/>
181 </edges> 181 </edges>
@@ -191,7 +191,7 @@
191 </children> 191 </children>
192 <styles xmi:type="notation:ConnectorStyle" xmi:id="_hAETI1ybEemc87q3iJlCgw" routing="Rectilinear"/> 192 <styles xmi:type="notation:ConnectorStyle" xmi:id="_hAETI1ybEemc87q3iJlCgw" routing="Rectilinear"/>
193 <styles xmi:type="notation:FontStyle" xmi:id="_hAETJFybEemc87q3iJlCgw" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/> 193 <styles xmi:type="notation:FontStyle" xmi:id="_hAETJFybEemc87q3iJlCgw" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
194 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hAETJVybEemc87q3iJlCgw" points="[0, 0, 75, 60]$[-75, -60, 0, 0]"/> 194 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hAETJVybEemc87q3iJlCgw" points="[59, 72, -241, -38]$[241, 72, -59, -38]"/>
195 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAFhRFybEemc87q3iJlCgw" id="(0.5,0.0)"/> 195 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAFhRFybEemc87q3iJlCgw" id="(0.5,0.0)"/>
196 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAFhRVybEemc87q3iJlCgw" id="(0.5,1.0)"/> 196 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAFhRVybEemc87q3iJlCgw" id="(0.5,1.0)"/>
197 </edges> 197 </edges>
@@ -207,7 +207,7 @@
207 </children> 207 </children>
208 <styles xmi:type="notation:ConnectorStyle" xmi:id="_hAFhR1ybEemc87q3iJlCgw" routing="Tree"/> 208 <styles xmi:type="notation:ConnectorStyle" xmi:id="_hAFhR1ybEemc87q3iJlCgw" routing="Tree"/>
209 <styles xmi:type="notation:FontStyle" xmi:id="_hAFhSFybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/> 209 <styles xmi:type="notation:FontStyle" xmi:id="_hAFhSFybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/>
210 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hAFhSVybEemc87q3iJlCgw" points="[0, 0, 180, 60]$[-180, -60, 0, 0]"/> 210 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hAFhSVybEemc87q3iJlCgw" points="[0, 0, -312, 46]$[0, -12, -312, 34]$[275, -12, -37, 34]$[275, -46, -37, 0]"/>
211 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAGIVlybEemc87q3iJlCgw" id="(0.5,0.0)"/> 211 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAGIVlybEemc87q3iJlCgw" id="(0.5,0.0)"/>
212 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAGIV1ybEemc87q3iJlCgw" id="(0.5,1.0)"/> 212 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAGIV1ybEemc87q3iJlCgw" id="(0.5,1.0)"/>
213 </edges> 213 </edges>
@@ -223,7 +223,7 @@
223 </children> 223 </children>
224 <styles xmi:type="notation:ConnectorStyle" xmi:id="_hAGIWVybEemc87q3iJlCgw" routing="Tree"/> 224 <styles xmi:type="notation:ConnectorStyle" xmi:id="_hAGIWVybEemc87q3iJlCgw" routing="Tree"/>
225 <styles xmi:type="notation:FontStyle" xmi:id="_hAGIWlybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/> 225 <styles xmi:type="notation:FontStyle" xmi:id="_hAGIWlybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/>
226 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hAGIW1ybEemc87q3iJlCgw" points="[0, 0, 0, 60]$[0, -60, 0, 0]"/> 226 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hAGIW1ybEemc87q3iJlCgw" points="[0, 0, 99, 82]$[0, -36, 99, 46]$[-100, -36, -1, 46]$[-100, -82, -1, 0]"/>
227 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAHWcFybEemc87q3iJlCgw" id="(0.5,0.0)"/> 227 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAHWcFybEemc87q3iJlCgw" id="(0.5,0.0)"/>
228 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAHWcVybEemc87q3iJlCgw" id="(0.5,1.0)"/> 228 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAHWcVybEemc87q3iJlCgw" id="(0.5,1.0)"/>
229 </edges> 229 </edges>
@@ -239,7 +239,7 @@
239 </children> 239 </children>
240 <styles xmi:type="notation:ConnectorStyle" xmi:id="_hAHWc1ybEemc87q3iJlCgw" routing="Tree"/> 240 <styles xmi:type="notation:ConnectorStyle" xmi:id="_hAHWc1ybEemc87q3iJlCgw" routing="Tree"/>
241 <styles xmi:type="notation:FontStyle" xmi:id="_hAHWdFybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/> 241 <styles xmi:type="notation:FontStyle" xmi:id="_hAHWdFybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/>
242 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hAHWdVybEemc87q3iJlCgw" points="[0, 0, 180, 60]$[-180, -60, 0, 0]"/> 242 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hAHWdVybEemc87q3iJlCgw" points="[0, 0, 279, 82]$[0, -36, 279, 46]$[-280, -36, -1, 46]$[-280, -82, -1, 0]"/>
243 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAH9hlybEemc87q3iJlCgw" id="(0.5,0.0)"/> 243 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAH9hlybEemc87q3iJlCgw" id="(0.5,0.0)"/>
244 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAH9h1ybEemc87q3iJlCgw" id="(0.5,1.0)"/> 244 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAH9h1ybEemc87q3iJlCgw" id="(0.5,1.0)"/>
245 </edges> 245 </edges>
@@ -255,7 +255,7 @@
255 </children> 255 </children>
256 <styles xmi:type="notation:ConnectorStyle" xmi:id="_hAIkkVybEemc87q3iJlCgw" routing="Tree"/> 256 <styles xmi:type="notation:ConnectorStyle" xmi:id="_hAIkkVybEemc87q3iJlCgw" routing="Tree"/>
257 <styles xmi:type="notation:FontStyle" xmi:id="_hAIkklybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/> 257 <styles xmi:type="notation:FontStyle" xmi:id="_hAIkklybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/>
258 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hAIkk1ybEemc87q3iJlCgw" points="[0, 0, 106, 60]$[-106, -60, 0, 0]"/> 258 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hAIkk1ybEemc87q3iJlCgw" points="[0, 0, 84, 34]$[0, -12, 84, 22]$[-99, -12, -15, 22]$[-99, -34, -15, 0]"/>
259 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAJLoFybEemc87q3iJlCgw" id="(0.5,0.0)"/> 259 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAJLoFybEemc87q3iJlCgw" id="(0.5,0.0)"/>
260 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAJLoVybEemc87q3iJlCgw" id="(0.5,1.0)"/> 260 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAJLoVybEemc87q3iJlCgw" id="(0.5,1.0)"/>
261 </edges> 261 </edges>
@@ -271,7 +271,7 @@
271 </children> 271 </children>
272 <styles xmi:type="notation:ConnectorStyle" xmi:id="_hAJLo1ybEemc87q3iJlCgw" routing="Tree"/> 272 <styles xmi:type="notation:ConnectorStyle" xmi:id="_hAJLo1ybEemc87q3iJlCgw" routing="Tree"/>
273 <styles xmi:type="notation:FontStyle" xmi:id="_hAJLpFybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/> 273 <styles xmi:type="notation:FontStyle" xmi:id="_hAJLpFybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/>
274 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hAJLpVybEemc87q3iJlCgw" points="[0, 0, -180, 60]$[180, -60, 0, 0]"/> 274 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hAJLpVybEemc87q3iJlCgw" points="[0, 0, -81, 82]$[0, -36, -81, 46]$[80, -36, -1, 46]$[80, -82, -1, 0]"/>
275 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAKZwFybEemc87q3iJlCgw" id="(0.5,0.0)"/> 275 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAKZwFybEemc87q3iJlCgw" id="(0.5,0.0)"/>
276 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAKZwVybEemc87q3iJlCgw" id="(0.5,1.0)"/> 276 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAKZwVybEemc87q3iJlCgw" id="(0.5,1.0)"/>
277 </edges> 277 </edges>
@@ -287,7 +287,7 @@
287 </children> 287 </children>
288 <styles xmi:type="notation:ConnectorStyle" xmi:id="_hAKZw1ybEemc87q3iJlCgw" routing="Tree"/> 288 <styles xmi:type="notation:ConnectorStyle" xmi:id="_hAKZw1ybEemc87q3iJlCgw" routing="Tree"/>
289 <styles xmi:type="notation:FontStyle" xmi:id="_hAKZxFybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/> 289 <styles xmi:type="notation:FontStyle" xmi:id="_hAKZxFybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/>
290 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hAKZxVybEemc87q3iJlCgw" points="[0, 0, -75, 60]$[75, -60, 0, 0]"/> 290 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hAKZxVybEemc87q3iJlCgw" points="[0, 98, -348, 156]$[0, 144, -348, 202]$[359, 144, 11, 202]$[359, -58, 11, 0]"/>
291 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hALA0FybEemc87q3iJlCgw" id="(0.5,0.0)"/> 291 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hALA0FybEemc87q3iJlCgw" id="(0.5,0.0)"/>
292 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hALA0VybEemc87q3iJlCgw" id="(0.5,1.0)"/> 292 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hALA0VybEemc87q3iJlCgw" id="(0.5,1.0)"/>
293 </edges> 293 </edges>
@@ -303,7 +303,7 @@
303 </children> 303 </children>
304 <styles xmi:type="notation:ConnectorStyle" xmi:id="_hALA01ybEemc87q3iJlCgw" routing="Tree"/> 304 <styles xmi:type="notation:ConnectorStyle" xmi:id="_hALA01ybEemc87q3iJlCgw" routing="Tree"/>
305 <styles xmi:type="notation:FontStyle" xmi:id="_hALA1FybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/> 305 <styles xmi:type="notation:FontStyle" xmi:id="_hALA1FybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/>
306 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hALA1VybEemc87q3iJlCgw" points="[0, 0, -360, 60]$[360, -60, 0, 0]"/> 306 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hALA1VybEemc87q3iJlCgw" points="[0, 0, -261, 82]$[0, -36, -261, 46]$[260, -36, -1, 46]$[260, -82, -1, 0]"/>
307 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hALn4FybEemc87q3iJlCgw" id="(0.5,0.0)"/> 307 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hALn4FybEemc87q3iJlCgw" id="(0.5,0.0)"/>
308 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hALn4VybEemc87q3iJlCgw" id="(0.5,1.0)"/> 308 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hALn4VybEemc87q3iJlCgw" id="(0.5,1.0)"/>
309 </edges> 309 </edges>
@@ -319,7 +319,7 @@
319 </children> 319 </children>
320 <styles xmi:type="notation:ConnectorStyle" xmi:id="_hAMO8VybEemc87q3iJlCgw" routing="Tree"/> 320 <styles xmi:type="notation:ConnectorStyle" xmi:id="_hAMO8VybEemc87q3iJlCgw" routing="Tree"/>
321 <styles xmi:type="notation:FontStyle" xmi:id="_hAMO8lybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/> 321 <styles xmi:type="notation:FontStyle" xmi:id="_hAMO8lybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/>
322 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hAMO81ybEemc87q3iJlCgw" points="[0, 0, 0, 220]$[0, -220, 0, 0]"/> 322 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hAMO81ybEemc87q3iJlCgw" points="[0, 0, -168, 46]$[0, -24, -168, 22]$[153, -24, -15, 22]$[153, -46, -15, 0]"/>
323 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAei0FybEemc87q3iJlCgw" id="(0.5,0.0)"/> 323 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAei0FybEemc87q3iJlCgw" id="(0.5,0.0)"/>
324 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAei0VybEemc87q3iJlCgw" id="(0.5,1.0)"/> 324 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAei0VybEemc87q3iJlCgw" id="(0.5,1.0)"/>
325 </edges> 325 </edges>
@@ -335,7 +335,7 @@
335 </children> 335 </children>
336 <styles xmi:type="notation:ConnectorStyle" xmi:id="_hAfJ4VybEemc87q3iJlCgw" routing="Tree"/> 336 <styles xmi:type="notation:ConnectorStyle" xmi:id="_hAfJ4VybEemc87q3iJlCgw" routing="Tree"/>
337 <styles xmi:type="notation:FontStyle" xmi:id="_hAfJ4lybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/> 337 <styles xmi:type="notation:FontStyle" xmi:id="_hAfJ4lybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/>
338 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hAfJ41ybEemc87q3iJlCgw" points="[0, 0, 105, 60]$[-105, -60, 0, 0]"/> 338 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hAfJ41ybEemc87q3iJlCgw" points="[0, 0, -144, 370]$[0, -168, -144, 202]$[155, -168, 11, 202]$[155, -370, 11, 0]"/>
339 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAgYAFybEemc87q3iJlCgw" id="(0.5,0.0)"/> 339 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAgYAFybEemc87q3iJlCgw" id="(0.5,0.0)"/>
340 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAgYAVybEemc87q3iJlCgw" id="(0.5,1.0)"/> 340 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAgYAVybEemc87q3iJlCgw" id="(0.5,1.0)"/>
341 </edges> 341 </edges>
@@ -351,39 +351,39 @@
351 </children> 351 </children>
352 <styles xmi:type="notation:ConnectorStyle" xmi:id="_hAgYA1ybEemc87q3iJlCgw" routing="Tree"/> 352 <styles xmi:type="notation:ConnectorStyle" xmi:id="_hAgYA1ybEemc87q3iJlCgw" routing="Tree"/>
353 <styles xmi:type="notation:FontStyle" xmi:id="_hAgYBFybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/> 353 <styles xmi:type="notation:FontStyle" xmi:id="_hAgYBFybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/>
354 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hAgYBVybEemc87q3iJlCgw" points="[0, 0, -285, 60]$[285, -60, 0, 0]"/> 354 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hAgYBVybEemc87q3iJlCgw" points="[0, 0, 129, 118]$[0, -84, 129, 34]$[-166, -84, -37, 34]$[-166, -118, -37, 0]"/>
355 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAg_FFybEemc87q3iJlCgw" id="(0.5,0.0)"/> 355 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAg_FFybEemc87q3iJlCgw" id="(0.5,0.0)"/>
356 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAg_FVybEemc87q3iJlCgw" id="(0.5,1.0)"/> 356 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAg_FVybEemc87q3iJlCgw" id="(0.5,1.0)"/>
357 </edges> 357 </edges>
358 <edges xmi:type="notation:Edge" xmi:id="_hAhmIFybEemc87q3iJlCgw" type="4001" element="_g_frY1ybEemc87q3iJlCgw" source="_g_o1UFybEemc87q3iJlCgw" target="_g_qDcFybEemc87q3iJlCgw"> 358 <edges xmi:type="notation:Edge" xmi:id="_hAhmIFybEemc87q3iJlCgw" type="4001" element="_g_frY1ybEemc87q3iJlCgw" source="_g_o1UFybEemc87q3iJlCgw" target="_g_qDcFybEemc87q3iJlCgw">
359 <children xmi:type="notation:Node" xmi:id="_hAhmJFybEemc87q3iJlCgw" type="6001"> 359 <children xmi:type="notation:Node" xmi:id="_hAhmJFybEemc87q3iJlCgw" type="6001">
360 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hAhmJVybEemc87q3iJlCgw" x="1" y="-10"/> 360 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hAhmJVybEemc87q3iJlCgw" x="-6" y="-10"/>
361 </children> 361 </children>
362 <children xmi:type="notation:Node" xmi:id="_hAhmJlybEemc87q3iJlCgw" type="6002"> 362 <children xmi:type="notation:Node" xmi:id="_hAhmJlybEemc87q3iJlCgw" type="6002">
363 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hAhmJ1ybEemc87q3iJlCgw" y="-10"/> 363 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hAhmJ1ybEemc87q3iJlCgw" x="-1" y="10"/>
364 </children> 364 </children>
365 <children xmi:type="notation:Node" xmi:id="_hAhmKFybEemc87q3iJlCgw" type="6003"> 365 <children xmi:type="notation:Node" xmi:id="_hAhmKFybEemc87q3iJlCgw" type="6003">
366 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hAhmKVybEemc87q3iJlCgw" y="10"/> 366 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hAhmKVybEemc87q3iJlCgw" x="-31" y="18"/>
367 </children> 367 </children>
368 <styles xmi:type="notation:ConnectorStyle" xmi:id="_hAhmIVybEemc87q3iJlCgw" routing="Rectilinear"/> 368 <styles xmi:type="notation:ConnectorStyle" xmi:id="_hAhmIVybEemc87q3iJlCgw" routing="Rectilinear"/>
369 <styles xmi:type="notation:FontStyle" xmi:id="_hAhmIlybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/> 369 <styles xmi:type="notation:FontStyle" xmi:id="_hAhmIlybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/>
370 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hAhmI1ybEemc87q3iJlCgw" points="[-59, 50, -59, 108]$[-143, 50, -143, 108]$[-143, -106, -143, -48]$[-59, -106, -59, -48]"/> 370 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hAhmI1ybEemc87q3iJlCgw" points="[59, 72, -361, -26]$[361, 72, -59, -26]"/>
371 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAiNMFybEemc87q3iJlCgw" id="(0.5,0.0)"/> 371 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAiNMFybEemc87q3iJlCgw" id="(0.5,0.0)"/>
372 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAiNMVybEemc87q3iJlCgw" id="(0.5,1.0)"/> 372 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAiNMVybEemc87q3iJlCgw" id="(0.5,1.0)"/>
373 </edges> 373 </edges>
374 <edges xmi:type="notation:Edge" xmi:id="_hAiNMlybEemc87q3iJlCgw" type="4001" element="_g_g5gFybEemc87q3iJlCgw" source="_g_o1UFybEemc87q3iJlCgw" target="_g_qDcFybEemc87q3iJlCgw"> 374 <edges xmi:type="notation:Edge" xmi:id="_hAiNMlybEemc87q3iJlCgw" type="4001" element="_g_g5gFybEemc87q3iJlCgw" source="_g_o1UFybEemc87q3iJlCgw" target="_g_qDcFybEemc87q3iJlCgw">
375 <children xmi:type="notation:Node" xmi:id="_hAiNNlybEemc87q3iJlCgw" type="6001"> 375 <children xmi:type="notation:Node" xmi:id="_hAiNNlybEemc87q3iJlCgw" type="6001">
376 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hAiNN1ybEemc87q3iJlCgw" x="1" y="-10"/> 376 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hAiNN1ybEemc87q3iJlCgw" y="-10"/>
377 </children> 377 </children>
378 <children xmi:type="notation:Node" xmi:id="_hAi0QFybEemc87q3iJlCgw" type="6002"> 378 <children xmi:type="notation:Node" xmi:id="_hAi0QFybEemc87q3iJlCgw" type="6002">
379 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hAi0QVybEemc87q3iJlCgw" y="10"/> 379 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hAi0QVybEemc87q3iJlCgw" x="-1" y="18"/>
380 </children> 380 </children>
381 <children xmi:type="notation:Node" xmi:id="_hAi0QlybEemc87q3iJlCgw" type="6003"> 381 <children xmi:type="notation:Node" xmi:id="_hAi0QlybEemc87q3iJlCgw" type="6003">
382 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hAi0Q1ybEemc87q3iJlCgw" y="-10"/> 382 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hAi0Q1ybEemc87q3iJlCgw" x="-34" y="12"/>
383 </children> 383 </children>
384 <styles xmi:type="notation:ConnectorStyle" xmi:id="_hAiNM1ybEemc87q3iJlCgw" routing="Rectilinear"/> 384 <styles xmi:type="notation:ConnectorStyle" xmi:id="_hAiNM1ybEemc87q3iJlCgw" routing="Rectilinear"/>
385 <styles xmi:type="notation:FontStyle" xmi:id="_hAiNNFybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/> 385 <styles xmi:type="notation:FontStyle" xmi:id="_hAiNNFybEemc87q3iJlCgw" fontName="Segoe UI" fontHeight="8"/>
386 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hAiNNVybEemc87q3iJlCgw" points="[59, 50, 59, 108]$[130, 50, 130, 108]$[130, -106, 130, -48]$[59, -106, 59, -48]"/> 386 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hAiNNVybEemc87q3iJlCgw" points="[59, 12, -361, -86]$[361, 12, -59, -86]"/>
387 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAi0RFybEemc87q3iJlCgw" id="(0.5,0.0)"/> 387 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAi0RFybEemc87q3iJlCgw" id="(0.5,0.0)"/>
388 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAi0RVybEemc87q3iJlCgw" id="(0.5,1.0)"/> 388 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hAi0RVybEemc87q3iJlCgw" id="(0.5,1.0)"/>
389 </edges> 389 </edges>
@@ -392,6 +392,9 @@
392 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_g-GkQFybEemc87q3iJlCgw" name="Pseudostate" tooltipText="" outgoingEdges="_g_fEUFybEemc87q3iJlCgw" incomingEdges="_g_V6ZlybEemc87q3iJlCgw _g_V6bVybEemc87q3iJlCgw _g_ay41ybEemc87q3iJlCgw _g_coEFybEemc87q3iJlCgw" width="12" height="10"> 392 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_g-GkQFybEemc87q3iJlCgw" name="Pseudostate" tooltipText="" outgoingEdges="_g_fEUFybEemc87q3iJlCgw" incomingEdges="_g_V6ZlybEemc87q3iJlCgw _g_V6bVybEemc87q3iJlCgw _g_ay41ybEemc87q3iJlCgw _g_coEFybEemc87q3iJlCgw" width="12" height="10">
393 <target xmi:type="ecore:EClass" href="yakindu.ecore#//Pseudostate"/> 393 <target xmi:type="ecore:EClass" href="yakindu.ecore#//Pseudostate"/>
394 <semanticElements xmi:type="ecore:EClass" href="yakindu.ecore#//Pseudostate"/> 394 <semanticElements xmi:type="ecore:EClass" href="yakindu.ecore#//Pseudostate"/>
395 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
396 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
397 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
395 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_g-NR8FybEemc87q3iJlCgw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228"> 398 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_g-NR8FybEemc87q3iJlCgw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
396 <labelFormat>italic</labelFormat> 399 <labelFormat>italic</labelFormat>
397 <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']/@conditionnalStyles.1/@style"/> 400 <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']/@conditionnalStyles.1/@style"/>
@@ -401,6 +404,9 @@
401 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_g-SKcFybEemc87q3iJlCgw" name="Vertex" tooltipText="" outgoingEdges="_g_frY1ybEemc87q3iJlCgw _g_g5gFybEemc87q3iJlCgw" incomingEdges="_g_JtIFybEemc87q3iJlCgw _g_S3EFybEemc87q3iJlCgw _g_fEUFybEemc87q3iJlCgw" width="12" height="10"> 404 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_g-SKcFybEemc87q3iJlCgw" name="Vertex" tooltipText="" outgoingEdges="_g_frY1ybEemc87q3iJlCgw _g_g5gFybEemc87q3iJlCgw" incomingEdges="_g_JtIFybEemc87q3iJlCgw _g_S3EFybEemc87q3iJlCgw _g_fEUFybEemc87q3iJlCgw" width="12" height="10">
402 <target xmi:type="ecore:EClass" href="yakindu.ecore#//Vertex"/> 405 <target xmi:type="ecore:EClass" href="yakindu.ecore#//Vertex"/>
403 <semanticElements xmi:type="ecore:EClass" href="yakindu.ecore#//Vertex"/> 406 <semanticElements xmi:type="ecore:EClass" href="yakindu.ecore#//Vertex"/>
407 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
408 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
409 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
404 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_g-SxgFybEemc87q3iJlCgw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228"> 410 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_g-SxgFybEemc87q3iJlCgw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
405 <labelFormat>italic</labelFormat> 411 <labelFormat>italic</labelFormat>
406 <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']/@conditionnalStyles.1/@style"/> 412 <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']/@conditionnalStyles.1/@style"/>
@@ -410,6 +416,9 @@
410 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_g-T_oFybEemc87q3iJlCgw" name="Region" tooltipText="" outgoingEdges="_g_JtIFybEemc87q3iJlCgw" incomingEdges="_g_MweVybEemc87q3iJlCgw" width="12" height="10"> 416 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_g-T_oFybEemc87q3iJlCgw" name="Region" tooltipText="" outgoingEdges="_g_JtIFybEemc87q3iJlCgw" incomingEdges="_g_MweVybEemc87q3iJlCgw" width="12" height="10">
411 <target xmi:type="ecore:EClass" href="yakindu.ecore#//Region"/> 417 <target xmi:type="ecore:EClass" href="yakindu.ecore#//Region"/>
412 <semanticElements xmi:type="ecore:EClass" href="yakindu.ecore#//Region"/> 418 <semanticElements xmi:type="ecore:EClass" href="yakindu.ecore#//Region"/>
419 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
420 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
421 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
413 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_g-VNwFybEemc87q3iJlCgw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> 422 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_g-VNwFybEemc87q3iJlCgw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
414 <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"/> 423 <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"/>
415 </ownedStyle> 424 </ownedStyle>
@@ -418,6 +427,9 @@
418 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_g-Wb4FybEemc87q3iJlCgw" name="Transition" tooltipText="" incomingEdges="_g_frY1ybEemc87q3iJlCgw _g_g5gFybEemc87q3iJlCgw" width="12" height="10"> 427 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_g-Wb4FybEemc87q3iJlCgw" name="Transition" tooltipText="" incomingEdges="_g_frY1ybEemc87q3iJlCgw _g_g5gFybEemc87q3iJlCgw" width="12" height="10">
419 <target xmi:type="ecore:EClass" href="yakindu.ecore#//Transition"/> 428 <target xmi:type="ecore:EClass" href="yakindu.ecore#//Transition"/>
420 <semanticElements xmi:type="ecore:EClass" href="yakindu.ecore#//Transition"/> 429 <semanticElements xmi:type="ecore:EClass" href="yakindu.ecore#//Transition"/>
430 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
431 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
432 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
421 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_g-XC8FybEemc87q3iJlCgw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> 433 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_g-XC8FybEemc87q3iJlCgw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
422 <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"/> 434 <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"/>
423 </ownedStyle> 435 </ownedStyle>
@@ -426,6 +438,9 @@
426 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_g-YREFybEemc87q3iJlCgw" name="Statechart" tooltipText="" outgoingEdges="_g_cBAFybEemc87q3iJlCgw" width="12" height="10"> 438 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_g-YREFybEemc87q3iJlCgw" name="Statechart" tooltipText="" outgoingEdges="_g_cBAFybEemc87q3iJlCgw" width="12" height="10">
427 <target xmi:type="ecore:EClass" href="yakindu.ecore#//Statechart"/> 439 <target xmi:type="ecore:EClass" href="yakindu.ecore#//Statechart"/>
428 <semanticElements xmi:type="ecore:EClass" href="yakindu.ecore#//Statechart"/> 440 <semanticElements xmi:type="ecore:EClass" href="yakindu.ecore#//Statechart"/>
441 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
442 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
443 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
429 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_g-ZfMFybEemc87q3iJlCgw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> 444 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_g-ZfMFybEemc87q3iJlCgw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
430 <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"/> 445 <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"/>
431 </ownedStyle> 446 </ownedStyle>
@@ -434,6 +449,9 @@
434 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_g-aGQFybEemc87q3iJlCgw" name="Entry" tooltipText="" outgoingEdges="_g_ay41ybEemc87q3iJlCgw" width="12" height="10"> 449 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_g-aGQFybEemc87q3iJlCgw" name="Entry" tooltipText="" outgoingEdges="_g_ay41ybEemc87q3iJlCgw" width="12" height="10">
435 <target xmi:type="ecore:EClass" href="yakindu.ecore#//Entry"/> 450 <target xmi:type="ecore:EClass" href="yakindu.ecore#//Entry"/>
436 <semanticElements xmi:type="ecore:EClass" href="yakindu.ecore#//Entry"/> 451 <semanticElements xmi:type="ecore:EClass" href="yakindu.ecore#//Entry"/>
452 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
453 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
454 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
437 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_g-atUFybEemc87q3iJlCgw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> 455 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_g-atUFybEemc87q3iJlCgw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
438 <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"/> 456 <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"/>
439 </ownedStyle> 457 </ownedStyle>
@@ -442,6 +460,9 @@
442 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_g-b7cFybEemc87q3iJlCgw" name="Synchronization" tooltipText="" outgoingEdges="_g_coEFybEemc87q3iJlCgw" width="12" height="10"> 460 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_g-b7cFybEemc87q3iJlCgw" name="Synchronization" tooltipText="" outgoingEdges="_g_coEFybEemc87q3iJlCgw" width="12" height="10">
443 <target xmi:type="ecore:EClass" href="yakindu.ecore#//Synchronization"/> 461 <target xmi:type="ecore:EClass" href="yakindu.ecore#//Synchronization"/>
444 <semanticElements xmi:type="ecore:EClass" href="yakindu.ecore#//Synchronization"/> 462 <semanticElements xmi:type="ecore:EClass" href="yakindu.ecore#//Synchronization"/>
463 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
464 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
465 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
445 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_g-cigFybEemc87q3iJlCgw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> 466 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_g-cigFybEemc87q3iJlCgw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
446 <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"/> 467 <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"/>
447 </ownedStyle> 468 </ownedStyle>
@@ -450,6 +471,9 @@
450 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_g-dJkVybEemc87q3iJlCgw" name="State" tooltipText="" outgoingEdges="_g_dPI1ybEemc87q3iJlCgw _g_edQFybEemc87q3iJlCgw" width="12" height="10"> 471 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_g-dJkVybEemc87q3iJlCgw" name="State" tooltipText="" outgoingEdges="_g_dPI1ybEemc87q3iJlCgw _g_edQFybEemc87q3iJlCgw" width="12" height="10">
451 <target xmi:type="ecore:EClass" href="yakindu.ecore#//State"/> 472 <target xmi:type="ecore:EClass" href="yakindu.ecore#//State"/>
452 <semanticElements xmi:type="ecore:EClass" href="yakindu.ecore#//State"/> 473 <semanticElements xmi:type="ecore:EClass" href="yakindu.ecore#//State"/>
474 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
475 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
476 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
453 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_g-e-wFybEemc87q3iJlCgw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> 477 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_g-e-wFybEemc87q3iJlCgw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
454 <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"/> 478 <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"/>
455 </ownedStyle> 479 </ownedStyle>
@@ -458,6 +482,9 @@
458 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_g-fl0FybEemc87q3iJlCgw" name="RegularState" tooltipText="" outgoingEdges="_g_S3EFybEemc87q3iJlCgw" incomingEdges="_g_aL0FybEemc87q3iJlCgw _g_dPI1ybEemc87q3iJlCgw" width="12" height="10"> 482 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_g-fl0FybEemc87q3iJlCgw" name="RegularState" tooltipText="" outgoingEdges="_g_S3EFybEemc87q3iJlCgw" incomingEdges="_g_aL0FybEemc87q3iJlCgw _g_dPI1ybEemc87q3iJlCgw" width="12" height="10">
459 <target xmi:type="ecore:EClass" href="yakindu.ecore#//RegularState"/> 483 <target xmi:type="ecore:EClass" href="yakindu.ecore#//RegularState"/>
460 <semanticElements xmi:type="ecore:EClass" href="yakindu.ecore#//RegularState"/> 484 <semanticElements xmi:type="ecore:EClass" href="yakindu.ecore#//RegularState"/>
485 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
486 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
487 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
461 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_g-gz8FybEemc87q3iJlCgw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228"> 488 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_g-gz8FybEemc87q3iJlCgw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
462 <labelFormat>italic</labelFormat> 489 <labelFormat>italic</labelFormat>
463 <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']/@conditionnalStyles.1/@style"/> 490 <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']/@conditionnalStyles.1/@style"/>
@@ -467,6 +494,9 @@
467 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_g-hbAVybEemc87q3iJlCgw" name="CompositeElement" tooltipText="" outgoingEdges="_g_MweVybEemc87q3iJlCgw" incomingEdges="_g_cBAFybEemc87q3iJlCgw _g_edQFybEemc87q3iJlCgw" width="12" height="10"> 494 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_g-hbAVybEemc87q3iJlCgw" name="CompositeElement" tooltipText="" outgoingEdges="_g_MweVybEemc87q3iJlCgw" incomingEdges="_g_cBAFybEemc87q3iJlCgw _g_edQFybEemc87q3iJlCgw" width="12" height="10">
468 <target xmi:type="ecore:EClass" href="yakindu.ecore#//CompositeElement"/> 495 <target xmi:type="ecore:EClass" href="yakindu.ecore#//CompositeElement"/>
469 <semanticElements xmi:type="ecore:EClass" href="yakindu.ecore#//CompositeElement"/> 496 <semanticElements xmi:type="ecore:EClass" href="yakindu.ecore#//CompositeElement"/>
497 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
498 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
499 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
470 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_g-iCEFybEemc87q3iJlCgw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228"> 500 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_g-iCEFybEemc87q3iJlCgw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
471 <labelFormat>italic</labelFormat> 501 <labelFormat>italic</labelFormat>
472 <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']/@conditionnalStyles.1/@style"/> 502 <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']/@conditionnalStyles.1/@style"/>
@@ -476,6 +506,9 @@
476 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_g-jQMFybEemc87q3iJlCgw" name="Choice" tooltipText="" outgoingEdges="_g_V6ZlybEemc87q3iJlCgw" width="12" height="10"> 506 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_g-jQMFybEemc87q3iJlCgw" name="Choice" tooltipText="" outgoingEdges="_g_V6ZlybEemc87q3iJlCgw" width="12" height="10">
477 <target xmi:type="ecore:EClass" href="yakindu.ecore#//Choice"/> 507 <target xmi:type="ecore:EClass" href="yakindu.ecore#//Choice"/>
478 <semanticElements xmi:type="ecore:EClass" href="yakindu.ecore#//Choice"/> 508 <semanticElements xmi:type="ecore:EClass" href="yakindu.ecore#//Choice"/>
509 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
510 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
511 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
479 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_g-keUFybEemc87q3iJlCgw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> 512 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_g-keUFybEemc87q3iJlCgw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
480 <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"/> 513 <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"/>
481 </ownedStyle> 514 </ownedStyle>
@@ -484,6 +517,9 @@
484 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_g-lscFybEemc87q3iJlCgw" name="Exit" tooltipText="" outgoingEdges="_g_V6bVybEemc87q3iJlCgw" width="12" height="10"> 517 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_g-lscFybEemc87q3iJlCgw" name="Exit" tooltipText="" outgoingEdges="_g_V6bVybEemc87q3iJlCgw" width="12" height="10">
485 <target xmi:type="ecore:EClass" href="yakindu.ecore#//Exit"/> 518 <target xmi:type="ecore:EClass" href="yakindu.ecore#//Exit"/>
486 <semanticElements xmi:type="ecore:EClass" href="yakindu.ecore#//Exit"/> 519 <semanticElements xmi:type="ecore:EClass" href="yakindu.ecore#//Exit"/>
520 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
521 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
522 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
487 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_g-mTgFybEemc87q3iJlCgw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> 523 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_g-mTgFybEemc87q3iJlCgw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
488 <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"/> 524 <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"/>
489 </ownedStyle> 525 </ownedStyle>
@@ -492,6 +528,9 @@
492 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_g-m6kFybEemc87q3iJlCgw" name="FinalState" tooltipText="" outgoingEdges="_g_aL0FybEemc87q3iJlCgw" width="12" height="10"> 528 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_g-m6kFybEemc87q3iJlCgw" name="FinalState" tooltipText="" outgoingEdges="_g_aL0FybEemc87q3iJlCgw" width="12" height="10">
493 <target xmi:type="ecore:EClass" href="yakindu.ecore#//FinalState"/> 529 <target xmi:type="ecore:EClass" href="yakindu.ecore#//FinalState"/>
494 <semanticElements xmi:type="ecore:EClass" href="yakindu.ecore#//FinalState"/> 530 <semanticElements xmi:type="ecore:EClass" href="yakindu.ecore#//FinalState"/>
531 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
532 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
533 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
495 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_g-nhoFybEemc87q3iJlCgw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> 534 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_g-nhoFybEemc87q3iJlCgw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
496 <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"/> 535 <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"/>
497 </ownedStyle> 536 </ownedStyle>
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/plugin.xml b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/plugin.xml
index f9d517b9..c0c367a1 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/plugin.xml
+++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/plugin.xml
@@ -20,13 +20,6 @@
20 <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.ecore.queries.nonSymmetricOpposite"/> 20 <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.ecore.queries.nonSymmetricOpposite"/>
21 </group> 21 </group>
22 </extension> 22 </extension>
23 <extension id="ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.FamPatterns" point="org.eclipse.viatra.query.runtime.queryspecification">
24 <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.FamPatterns" id="ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.FamPatterns">
25 <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.terminatorAndInformation"/>
26 <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.rootElements"/>
27 <query-specification fqn="ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.parent"/>
28 </group>
29 </extension>
30 <extension id="extension.derived.ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.model" point="org.eclipse.viatra.query.runtime.base.wellbehaving.derived.features"> 23 <extension id="extension.derived.ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.model" point="org.eclipse.viatra.query.runtime.base.wellbehaving.derived.features">
31 <wellbehaving-derived-feature classifier-name="FunctionalElement" feature-name="model" package-nsUri="FamMetamodel"/> 24 <wellbehaving-derived-feature classifier-name="FunctionalElement" feature-name="model" package-nsUri="FamMetamodel"/>
32 </extension> 25 </extension>
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/src-gen/ca/mcgill/ecse/dslreasoner/standalone/test/fam/queries/TerminatorAndInformation.java b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/src-gen/ca/mcgill/ecse/dslreasoner/standalone/test/fam/queries/TerminatorAndInformation.java
deleted file mode 100644
index 69a6b9f4..00000000
--- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/src-gen/ca/mcgill/ecse/dslreasoner/standalone/test/fam/queries/TerminatorAndInformation.java
+++ /dev/null
@@ -1,747 +0,0 @@
1/**
2 * Generated from platform:/resource/ca.mcgill.ecse.dslreasoner.standalone.test/queries/ca/mcgill/ecse/dslreasoner/standalone/test/fam/queries/famPatterns.vql
3 */
4package ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries;
5
6import ca.mcgill.ecse.dslreasoner.standalone.test.fam.FAMTerminator;
7import ca.mcgill.ecse.dslreasoner.standalone.test.fam.InformationLink;
8import java.util.Arrays;
9import java.util.Collection;
10import java.util.LinkedHashSet;
11import java.util.List;
12import java.util.Objects;
13import java.util.Optional;
14import java.util.Set;
15import java.util.function.Consumer;
16import java.util.stream.Collectors;
17import java.util.stream.Stream;
18import org.apache.log4j.Logger;
19import org.eclipse.emf.ecore.EClass;
20import org.eclipse.viatra.query.runtime.api.IPatternMatch;
21import org.eclipse.viatra.query.runtime.api.IQuerySpecification;
22import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine;
23import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
24import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification;
25import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher;
26import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch;
27import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
28import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey;
29import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
30import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
31import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
32import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.PAnnotation;
33import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.ParameterReference;
34import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality;
35import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
36import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
37import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
38import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
39import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
40import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple;
41import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
42import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil;
43
44/**
45 * A pattern-specific query specification that can instantiate Matcher in a type-safe way.
46 *
47 * <p>Original source:
48 * <code><pre>
49 * {@literal @}Constraint(message="terminatorAndInformation", severity="error", key={T})
50 * pattern terminatorAndInformation(T : FAMTerminator, I : InformationLink) = {
51 * FunctionalOutput.outgoingLinks(Out,I);
52 * FunctionalOutput.terminator(Out,T);
53 * } or {
54 * InformationLink.to(I,In);
55 * FunctionalInput.terminator(In,T);
56 * }
57 * </pre></code>
58 *
59 * @see Matcher
60 * @see Match
61 *
62 */
63@SuppressWarnings("all")
64public final class TerminatorAndInformation extends BaseGeneratedEMFQuerySpecification<TerminatorAndInformation.Matcher> {
65 /**
66 * Pattern-specific match representation of the ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.terminatorAndInformation pattern,
67 * to be used in conjunction with {@link Matcher}.
68 *
69 * <p>Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned.
70 * Each instance is a (possibly partial) substitution of pattern parameters,
71 * usable to represent a match of the pattern in the result of a query,
72 * or to specify the bound (fixed) input parameters when issuing a query.
73 *
74 * @see Matcher
75 *
76 */
77 public static abstract class Match extends BasePatternMatch {
78 private FAMTerminator fT;
79
80 private InformationLink fI;
81
82 private static List<String> parameterNames = makeImmutableList("T", "I");
83
84 private Match(final FAMTerminator pT, final InformationLink pI) {
85 this.fT = pT;
86 this.fI = pI;
87 }
88
89 @Override
90 public Object get(final String parameterName) {
91 if ("T".equals(parameterName)) return this.fT;
92 if ("I".equals(parameterName)) return this.fI;
93 return null;
94 }
95
96 public FAMTerminator getT() {
97 return this.fT;
98 }
99
100 public InformationLink getI() {
101 return this.fI;
102 }
103
104 @Override
105 public boolean set(final String parameterName, final Object newValue) {
106 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
107 if ("T".equals(parameterName) ) {
108 this.fT = (FAMTerminator) newValue;
109 return true;
110 }
111 if ("I".equals(parameterName) ) {
112 this.fI = (InformationLink) newValue;
113 return true;
114 }
115 return false;
116 }
117
118 public void setT(final FAMTerminator pT) {
119 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
120 this.fT = pT;
121 }
122
123 public void setI(final InformationLink pI) {
124 if (!isMutable()) throw new java.lang.UnsupportedOperationException();
125 this.fI = pI;
126 }
127
128 @Override
129 public String patternName() {
130 return "ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.terminatorAndInformation";
131 }
132
133 @Override
134 public List<String> parameterNames() {
135 return TerminatorAndInformation.Match.parameterNames;
136 }
137
138 @Override
139 public Object[] toArray() {
140 return new Object[]{fT, fI};
141 }
142
143 @Override
144 public TerminatorAndInformation.Match toImmutable() {
145 return isMutable() ? newMatch(fT, fI) : this;
146 }
147
148 @Override
149 public String prettyPrint() {
150 StringBuilder result = new StringBuilder();
151 result.append("\"T\"=" + prettyPrintValue(fT) + ", ");
152 result.append("\"I\"=" + prettyPrintValue(fI));
153 return result.toString();
154 }
155
156 @Override
157 public int hashCode() {
158 return Objects.hash(fT, fI);
159 }
160
161 @Override
162 public boolean equals(final Object obj) {
163 if (this == obj)
164 return true;
165 if (obj == null) {
166 return false;
167 }
168 if ((obj instanceof TerminatorAndInformation.Match)) {
169 TerminatorAndInformation.Match other = (TerminatorAndInformation.Match) obj;
170 return Objects.equals(fT, other.fT) && Objects.equals(fI, other.fI);
171 } else {
172 // this should be infrequent
173 if (!(obj instanceof IPatternMatch)) {
174 return false;
175 }
176 IPatternMatch otherSig = (IPatternMatch) obj;
177 return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray());
178 }
179 }
180
181 @Override
182 public TerminatorAndInformation specification() {
183 return TerminatorAndInformation.instance();
184 }
185
186 /**
187 * Returns an empty, mutable match.
188 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
189 *
190 * @return the empty match.
191 *
192 */
193 public static TerminatorAndInformation.Match newEmptyMatch() {
194 return new Mutable(null, null);
195 }
196
197 /**
198 * Returns a mutable (partial) match.
199 * Fields of the mutable match can be filled to create a partial match, usable as matcher input.
200 *
201 * @param pT the fixed value of pattern parameter T, or null if not bound.
202 * @param pI the fixed value of pattern parameter I, or null if not bound.
203 * @return the new, mutable (partial) match object.
204 *
205 */
206 public static TerminatorAndInformation.Match newMutableMatch(final FAMTerminator pT, final InformationLink pI) {
207 return new Mutable(pT, pI);
208 }
209
210 /**
211 * Returns a new (partial) match.
212 * This can be used e.g. to call the matcher with a partial match.
213 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
214 * @param pT the fixed value of pattern parameter T, or null if not bound.
215 * @param pI the fixed value of pattern parameter I, or null if not bound.
216 * @return the (partial) match object.
217 *
218 */
219 public static TerminatorAndInformation.Match newMatch(final FAMTerminator pT, final InformationLink pI) {
220 return new Immutable(pT, pI);
221 }
222
223 private static final class Mutable extends TerminatorAndInformation.Match {
224 Mutable(final FAMTerminator pT, final InformationLink pI) {
225 super(pT, pI);
226 }
227
228 @Override
229 public boolean isMutable() {
230 return true;
231 }
232 }
233
234 private static final class Immutable extends TerminatorAndInformation.Match {
235 Immutable(final FAMTerminator pT, final InformationLink pI) {
236 super(pT, pI);
237 }
238
239 @Override
240 public boolean isMutable() {
241 return false;
242 }
243 }
244 }
245
246 /**
247 * Generated pattern matcher API of the ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.terminatorAndInformation pattern,
248 * providing pattern-specific query methods.
249 *
250 * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)},
251 * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}.
252 *
253 * <p>Matches of the pattern will be represented as {@link Match}.
254 *
255 * <p>Original source:
256 * <code><pre>
257 * {@literal @}Constraint(message="terminatorAndInformation", severity="error", key={T})
258 * pattern terminatorAndInformation(T : FAMTerminator, I : InformationLink) = {
259 * FunctionalOutput.outgoingLinks(Out,I);
260 * FunctionalOutput.terminator(Out,T);
261 * } or {
262 * InformationLink.to(I,In);
263 * FunctionalInput.terminator(In,T);
264 * }
265 * </pre></code>
266 *
267 * @see Match
268 * @see TerminatorAndInformation
269 *
270 */
271 public static class Matcher extends BaseMatcher<TerminatorAndInformation.Match> {
272 /**
273 * Initializes the pattern matcher within an existing VIATRA Query engine.
274 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
275 *
276 * @param engine the existing VIATRA Query engine in which this matcher will be created.
277 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
278 *
279 */
280 public static TerminatorAndInformation.Matcher on(final ViatraQueryEngine engine) {
281 // check if matcher already exists
282 Matcher matcher = engine.getExistingMatcher(querySpecification());
283 if (matcher == null) {
284 matcher = (Matcher)engine.getMatcher(querySpecification());
285 }
286 return matcher;
287 }
288
289 /**
290 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
291 * @return an initialized matcher
292 * @noreference This method is for internal matcher initialization by the framework, do not call it manually.
293 *
294 */
295 public static TerminatorAndInformation.Matcher create() {
296 return new Matcher();
297 }
298
299 private final static int POSITION_T = 0;
300
301 private final static int POSITION_I = 1;
302
303 private final static Logger LOGGER = ViatraQueryLoggingUtil.getLogger(TerminatorAndInformation.Matcher.class);
304
305 /**
306 * Initializes the pattern matcher within an existing VIATRA Query engine.
307 * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned.
308 *
309 * @param engine the existing VIATRA Query engine in which this matcher will be created.
310 * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation
311 *
312 */
313 private Matcher() {
314 super(querySpecification());
315 }
316
317 /**
318 * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters.
319 * @param pT the fixed value of pattern parameter T, or null if not bound.
320 * @param pI the fixed value of pattern parameter I, or null if not bound.
321 * @return matches represented as a Match object.
322 *
323 */
324 public Collection<TerminatorAndInformation.Match> getAllMatches(final FAMTerminator pT, final InformationLink pI) {
325 return rawStreamAllMatches(new Object[]{pT, pI}).collect(Collectors.toSet());
326 }
327
328 /**
329 * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters.
330 * </p>
331 * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed.
332 * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>.
333 * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code.
334 * @param pT the fixed value of pattern parameter T, or null if not bound.
335 * @param pI the fixed value of pattern parameter I, or null if not bound.
336 * @return a stream of matches represented as a Match object.
337 *
338 */
339 public Stream<TerminatorAndInformation.Match> streamAllMatches(final FAMTerminator pT, final InformationLink pI) {
340 return rawStreamAllMatches(new Object[]{pT, pI});
341 }
342
343 /**
344 * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
345 * Neither determinism nor randomness of selection is guaranteed.
346 * @param pT the fixed value of pattern parameter T, or null if not bound.
347 * @param pI the fixed value of pattern parameter I, or null if not bound.
348 * @return a match represented as a Match object, or null if no match is found.
349 *
350 */
351 public Optional<TerminatorAndInformation.Match> getOneArbitraryMatch(final FAMTerminator pT, final InformationLink pI) {
352 return rawGetOneArbitraryMatch(new Object[]{pT, pI});
353 }
354
355 /**
356 * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match,
357 * under any possible substitution of the unspecified parameters (if any).
358 * @param pT the fixed value of pattern parameter T, or null if not bound.
359 * @param pI the fixed value of pattern parameter I, or null if not bound.
360 * @return true if the input is a valid (partial) match of the pattern.
361 *
362 */
363 public boolean hasMatch(final FAMTerminator pT, final InformationLink pI) {
364 return rawHasMatch(new Object[]{pT, pI});
365 }
366
367 /**
368 * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters.
369 * @param pT the fixed value of pattern parameter T, or null if not bound.
370 * @param pI the fixed value of pattern parameter I, or null if not bound.
371 * @return the number of pattern matches found.
372 *
373 */
374 public int countMatches(final FAMTerminator pT, final InformationLink pI) {
375 return rawCountMatches(new Object[]{pT, pI});
376 }
377
378 /**
379 * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters.
380 * Neither determinism nor randomness of selection is guaranteed.
381 * @param pT the fixed value of pattern parameter T, or null if not bound.
382 * @param pI the fixed value of pattern parameter I, or null if not bound.
383 * @param processor the action that will process the selected match.
384 * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked
385 *
386 */
387 public boolean forOneArbitraryMatch(final FAMTerminator pT, final InformationLink pI, final Consumer<? super TerminatorAndInformation.Match> processor) {
388 return rawForOneArbitraryMatch(new Object[]{pT, pI}, processor);
389 }
390
391 /**
392 * Returns a new (partial) match.
393 * This can be used e.g. to call the matcher with a partial match.
394 * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
395 * @param pT the fixed value of pattern parameter T, or null if not bound.
396 * @param pI the fixed value of pattern parameter I, or null if not bound.
397 * @return the (partial) match object.
398 *
399 */
400 public TerminatorAndInformation.Match newMatch(final FAMTerminator pT, final InformationLink pI) {
401 return TerminatorAndInformation.Match.newMatch(pT, pI);
402 }
403
404 /**
405 * Retrieve the set of values that occur in matches for T.
406 * @return the Set of all values or empty set if there are no matches
407 *
408 */
409 protected Stream<FAMTerminator> rawStreamAllValuesOfT(final Object[] parameters) {
410 return rawStreamAllValues(POSITION_T, parameters).map(FAMTerminator.class::cast);
411 }
412
413 /**
414 * Retrieve the set of values that occur in matches for T.
415 * @return the Set of all values or empty set if there are no matches
416 *
417 */
418 public Set<FAMTerminator> getAllValuesOfT() {
419 return rawStreamAllValuesOfT(emptyArray()).collect(Collectors.toSet());
420 }
421
422 /**
423 * Retrieve the set of values that occur in matches for T.
424 * @return the Set of all values or empty set if there are no matches
425 *
426 */
427 public Stream<FAMTerminator> streamAllValuesOfT() {
428 return rawStreamAllValuesOfT(emptyArray());
429 }
430
431 /**
432 * Retrieve the set of values that occur in matches for T.
433 * </p>
434 * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed.
435 * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>.
436 * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code.
437 *
438 * @return the Stream of all values or empty set if there are no matches
439 *
440 */
441 public Stream<FAMTerminator> streamAllValuesOfT(final TerminatorAndInformation.Match partialMatch) {
442 return rawStreamAllValuesOfT(partialMatch.toArray());
443 }
444
445 /**
446 * Retrieve the set of values that occur in matches for T.
447 * </p>
448 * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed.
449 * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>.
450 * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code.
451 *
452 * @return the Stream of all values or empty set if there are no matches
453 *
454 */
455 public Stream<FAMTerminator> streamAllValuesOfT(final InformationLink pI) {
456 return rawStreamAllValuesOfT(new Object[]{null, pI});
457 }
458
459 /**
460 * Retrieve the set of values that occur in matches for T.
461 * @return the Set of all values or empty set if there are no matches
462 *
463 */
464 public Set<FAMTerminator> getAllValuesOfT(final TerminatorAndInformation.Match partialMatch) {
465 return rawStreamAllValuesOfT(partialMatch.toArray()).collect(Collectors.toSet());
466 }
467
468 /**
469 * Retrieve the set of values that occur in matches for T.
470 * @return the Set of all values or empty set if there are no matches
471 *
472 */
473 public Set<FAMTerminator> getAllValuesOfT(final InformationLink pI) {
474 return rawStreamAllValuesOfT(new Object[]{null, pI}).collect(Collectors.toSet());
475 }
476
477 /**
478 * Retrieve the set of values that occur in matches for I.
479 * @return the Set of all values or empty set if there are no matches
480 *
481 */
482 protected Stream<InformationLink> rawStreamAllValuesOfI(final Object[] parameters) {
483 return rawStreamAllValues(POSITION_I, parameters).map(InformationLink.class::cast);
484 }
485
486 /**
487 * Retrieve the set of values that occur in matches for I.
488 * @return the Set of all values or empty set if there are no matches
489 *
490 */
491 public Set<InformationLink> getAllValuesOfI() {
492 return rawStreamAllValuesOfI(emptyArray()).collect(Collectors.toSet());
493 }
494
495 /**
496 * Retrieve the set of values that occur in matches for I.
497 * @return the Set of all values or empty set if there are no matches
498 *
499 */
500 public Stream<InformationLink> streamAllValuesOfI() {
501 return rawStreamAllValuesOfI(emptyArray());
502 }
503
504 /**
505 * Retrieve the set of values that occur in matches for I.
506 * </p>
507 * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed.
508 * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>.
509 * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code.
510 *
511 * @return the Stream of all values or empty set if there are no matches
512 *
513 */
514 public Stream<InformationLink> streamAllValuesOfI(final TerminatorAndInformation.Match partialMatch) {
515 return rawStreamAllValuesOfI(partialMatch.toArray());
516 }
517
518 /**
519 * Retrieve the set of values that occur in matches for I.
520 * </p>
521 * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed.
522 * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>.
523 * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code.
524 *
525 * @return the Stream of all values or empty set if there are no matches
526 *
527 */
528 public Stream<InformationLink> streamAllValuesOfI(final FAMTerminator pT) {
529 return rawStreamAllValuesOfI(new Object[]{pT, null});
530 }
531
532 /**
533 * Retrieve the set of values that occur in matches for I.
534 * @return the Set of all values or empty set if there are no matches
535 *
536 */
537 public Set<InformationLink> getAllValuesOfI(final TerminatorAndInformation.Match partialMatch) {
538 return rawStreamAllValuesOfI(partialMatch.toArray()).collect(Collectors.toSet());
539 }
540
541 /**
542 * Retrieve the set of values that occur in matches for I.
543 * @return the Set of all values or empty set if there are no matches
544 *
545 */
546 public Set<InformationLink> getAllValuesOfI(final FAMTerminator pT) {
547 return rawStreamAllValuesOfI(new Object[]{pT, null}).collect(Collectors.toSet());
548 }
549
550 @Override
551 protected TerminatorAndInformation.Match tupleToMatch(final Tuple t) {
552 try {
553 return TerminatorAndInformation.Match.newMatch((FAMTerminator) t.get(POSITION_T), (InformationLink) t.get(POSITION_I));
554 } catch(ClassCastException e) {
555 LOGGER.error("Element(s) in tuple not properly typed!",e);
556 return null;
557 }
558 }
559
560 @Override
561 protected TerminatorAndInformation.Match arrayToMatch(final Object[] match) {
562 try {
563 return TerminatorAndInformation.Match.newMatch((FAMTerminator) match[POSITION_T], (InformationLink) match[POSITION_I]);
564 } catch(ClassCastException e) {
565 LOGGER.error("Element(s) in array not properly typed!",e);
566 return null;
567 }
568 }
569
570 @Override
571 protected TerminatorAndInformation.Match arrayToMatchMutable(final Object[] match) {
572 try {
573 return TerminatorAndInformation.Match.newMutableMatch((FAMTerminator) match[POSITION_T], (InformationLink) match[POSITION_I]);
574 } catch(ClassCastException e) {
575 LOGGER.error("Element(s) in array not properly typed!",e);
576 return null;
577 }
578 }
579
580 /**
581 * @return the singleton instance of the query specification of this pattern
582 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
583 *
584 */
585 public static IQuerySpecification<TerminatorAndInformation.Matcher> querySpecification() {
586 return TerminatorAndInformation.instance();
587 }
588 }
589
590 private TerminatorAndInformation() {
591 super(GeneratedPQuery.INSTANCE);
592 }
593
594 /**
595 * @return the singleton instance of the query specification
596 * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
597 *
598 */
599 public static TerminatorAndInformation instance() {
600 try{
601 return LazyHolder.INSTANCE;
602 } catch (ExceptionInInitializerError err) {
603 throw processInitializerError(err);
604 }
605 }
606
607 @Override
608 protected TerminatorAndInformation.Matcher instantiate(final ViatraQueryEngine engine) {
609 return TerminatorAndInformation.Matcher.on(engine);
610 }
611
612 @Override
613 public TerminatorAndInformation.Matcher instantiate() {
614 return TerminatorAndInformation.Matcher.create();
615 }
616
617 @Override
618 public TerminatorAndInformation.Match newEmptyMatch() {
619 return TerminatorAndInformation.Match.newEmptyMatch();
620 }
621
622 @Override
623 public TerminatorAndInformation.Match newMatch(final Object... parameters) {
624 return TerminatorAndInformation.Match.newMatch((ca.mcgill.ecse.dslreasoner.standalone.test.fam.FAMTerminator) parameters[0], (ca.mcgill.ecse.dslreasoner.standalone.test.fam.InformationLink) parameters[1]);
625 }
626
627 /**
628 * Inner class allowing the singleton instance of {@link JvmGenericType: ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.TerminatorAndInformation (visibility: PUBLIC, simpleName: TerminatorAndInformation, identifier: ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.TerminatorAndInformation, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created
629 * <b>not</b> at the class load time of the outer class,
630 * but rather at the first call to {@link JvmGenericType: ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.TerminatorAndInformation (visibility: PUBLIC, simpleName: TerminatorAndInformation, identifier: ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.TerminatorAndInformation, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}.
631 *
632 * <p> This workaround is required e.g. to support recursion.
633 *
634 */
635 private static class LazyHolder {
636 private final static TerminatorAndInformation INSTANCE = new TerminatorAndInformation();
637
638 /**
639 * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned.
640 * This initialization order is required to support indirect recursion.
641 *
642 * <p> The static initializer is defined using a helper field to work around limitations of the code generator.
643 *
644 */
645 private final static Object STATIC_INITIALIZER = ensureInitialized();
646
647 public static Object ensureInitialized() {
648 INSTANCE.ensureInitializedInternal();
649 return null;
650 }
651 }
652
653 private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
654 private final static TerminatorAndInformation.GeneratedPQuery INSTANCE = new GeneratedPQuery();
655
656 private final PParameter parameter_T = new PParameter("T", "ca.mcgill.ecse.dslreasoner.standalone.test.fam.FAMTerminator", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("FamMetamodel", "FAMTerminator")), PParameterDirection.INOUT);
657
658 private final PParameter parameter_I = new PParameter("I", "ca.mcgill.ecse.dslreasoner.standalone.test.fam.InformationLink", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("FamMetamodel", "InformationLink")), PParameterDirection.INOUT);
659
660 private final List<PParameter> parameters = Arrays.asList(parameter_T, parameter_I);
661
662 private GeneratedPQuery() {
663 super(PVisibility.PUBLIC);
664 }
665
666 @Override
667 public String getFullyQualifiedName() {
668 return "ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.terminatorAndInformation";
669 }
670
671 @Override
672 public List<String> getParameterNames() {
673 return Arrays.asList("T","I");
674 }
675
676 @Override
677 public List<PParameter> getParameters() {
678 return parameters;
679 }
680
681 @Override
682 public Set<PBody> doGetContainedBodies() {
683 setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED));
684 Set<PBody> bodies = new LinkedHashSet<>();
685 {
686 PBody body = new PBody(this);
687 PVariable var_T = body.getOrCreateVariableByName("T");
688 PVariable var_I = body.getOrCreateVariableByName("I");
689 PVariable var_Out = body.getOrCreateVariableByName("Out");
690 new TypeConstraint(body, Tuples.flatTupleOf(var_T), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("FamMetamodel", "FAMTerminator")));
691 new TypeConstraint(body, Tuples.flatTupleOf(var_I), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("FamMetamodel", "InformationLink")));
692 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
693 new ExportedParameter(body, var_T, parameter_T),
694 new ExportedParameter(body, var_I, parameter_I)
695 ));
696 // FunctionalOutput.outgoingLinks(Out,I)
697 new TypeConstraint(body, Tuples.flatTupleOf(var_Out), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("FamMetamodel", "FunctionalOutput")));
698 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}");
699 new TypeConstraint(body, Tuples.flatTupleOf(var_Out, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("FamMetamodel", "FunctionalOutput", "outgoingLinks")));
700 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("FamMetamodel", "InformationLink")));
701 new Equality(body, var__virtual_0_, var_I);
702 // FunctionalOutput.terminator(Out,T)
703 new TypeConstraint(body, Tuples.flatTupleOf(var_Out), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("FamMetamodel", "FunctionalOutput")));
704 PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}");
705 new TypeConstraint(body, Tuples.flatTupleOf(var_Out, var__virtual_1_), new EStructuralFeatureInstancesKey(getFeatureLiteral("FamMetamodel", "FunctionalData", "terminator")));
706 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_1_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("FamMetamodel", "FAMTerminator")));
707 new Equality(body, var__virtual_1_, var_T);
708 bodies.add(body);
709 }
710 {
711 PBody body = new PBody(this);
712 PVariable var_T = body.getOrCreateVariableByName("T");
713 PVariable var_I = body.getOrCreateVariableByName("I");
714 PVariable var_In = body.getOrCreateVariableByName("In");
715 new TypeConstraint(body, Tuples.flatTupleOf(var_T), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("FamMetamodel", "FAMTerminator")));
716 new TypeConstraint(body, Tuples.flatTupleOf(var_I), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("FamMetamodel", "InformationLink")));
717 body.setSymbolicParameters(Arrays.<ExportedParameter>asList(
718 new ExportedParameter(body, var_T, parameter_T),
719 new ExportedParameter(body, var_I, parameter_I)
720 ));
721 // InformationLink.to(I,In)
722 new TypeConstraint(body, Tuples.flatTupleOf(var_I), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("FamMetamodel", "InformationLink")));
723 PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}");
724 new TypeConstraint(body, Tuples.flatTupleOf(var_I, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("FamMetamodel", "InformationLink", "to")));
725 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("FamMetamodel", "FunctionalInput")));
726 new Equality(body, var__virtual_0_, var_In);
727 // FunctionalInput.terminator(In,T)
728 new TypeConstraint(body, Tuples.flatTupleOf(var_In), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("FamMetamodel", "FunctionalInput")));
729 PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}");
730 new TypeConstraint(body, Tuples.flatTupleOf(var_In, var__virtual_1_), new EStructuralFeatureInstancesKey(getFeatureLiteral("FamMetamodel", "FunctionalData", "terminator")));
731 new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_1_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("FamMetamodel", "FAMTerminator")));
732 new Equality(body, var__virtual_1_, var_T);
733 bodies.add(body);
734 }
735 {
736 PAnnotation annotation = new PAnnotation("Constraint");
737 annotation.addAttribute("message", "terminatorAndInformation");
738 annotation.addAttribute("severity", "error");
739 annotation.addAttribute("key", Arrays.asList(new Object[] {
740 new ParameterReference("T")
741 }));
742 addAnnotation(annotation);
743 }
744 return bodies;
745 }
746 }
747}