diff options
author | 2019-07-31 14:45:06 -0400 | |
---|---|---|
committer | 2019-07-31 14:45:06 -0400 | |
commit | 5e8b8c3a817dd9f7ae46338b6dbd3684dfb885fe (patch) | |
tree | 61b473589e5e43a58481ea28b7bbeeaf0860dcdb /Metrics/Metrics-Calculation/SocialNetwork_plugin | |
parent | consider node types during generation (diff) | |
download | VIATRA-Generator-5e8b8c3a817dd9f7ae46338b6dbd3684dfb885fe.tar.gz VIATRA-Generator-5e8b8c3a817dd9f7ae46338b6dbd3684dfb885fe.tar.zst VIATRA-Generator-5e8b8c3a817dd9f7ae46338b6dbd3684dfb885fe.zip |
Further development of realistic solver, create generation config for ecore models
Diffstat (limited to 'Metrics/Metrics-Calculation/SocialNetwork_plugin')
19 files changed, 2395 insertions, 31 deletions
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/.classpath b/Metrics/Metrics-Calculation/SocialNetwork_plugin/.classpath index 58c238b9..4f2afbc9 100644 --- a/Metrics/Metrics-Calculation/SocialNetwork_plugin/.classpath +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/.classpath | |||
@@ -1,6 +1,7 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8"?> | 1 | <?xml version="1.0" encoding="UTF-8"?> |
2 | <classpath> | 2 | <classpath> |
3 | <classpathentry kind="src" path="encore_gen"/> | 3 | <classpathentry kind="src" path="encore_gen"/> |
4 | <classpathentry kind="src" path="queries"/> | ||
4 | <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/> | 5 | <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/> |
5 | <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> | 6 | <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> |
6 | <classpathentry kind="src" path="src"/> | 7 | <classpathentry kind="src" path="src"/> |
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/META-INF/MANIFEST.MF b/Metrics/Metrics-Calculation/SocialNetwork_plugin/META-INF/MANIFEST.MF index b7ec683a..cf5154e4 100644 --- a/Metrics/Metrics-Calculation/SocialNetwork_plugin/META-INF/MANIFEST.MF +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/META-INF/MANIFEST.MF | |||
@@ -7,6 +7,7 @@ Bundle-ClassPath: . | |||
7 | Bundle-Vendor: %providerName | 7 | Bundle-Vendor: %providerName |
8 | Bundle-Localization: plugin | 8 | Bundle-Localization: plugin |
9 | Export-Package: ca.mcgill.ecse.socialnetwork.plugin, | 9 | Export-Package: ca.mcgill.ecse.socialnetwork.plugin, |
10 | queries, | ||
10 | socialnetwork, | 11 | socialnetwork, |
11 | socialnetwork.impl, | 12 | socialnetwork.impl, |
12 | socialnetwork.util | 13 | socialnetwork.util |
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/.gitignore b/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/.gitignore index 683b1de1..8b962bcf 100644 --- a/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/.gitignore +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/bin/.gitignore | |||
@@ -1 +1,8 @@ | |||
1 | /ca/ | 1 | /ca/ |
2 | /ecore.ecore | ||
3 | /queries/ | ||
4 | /socialnetwork.aird | ||
5 | /socialnetwork.ecore | ||
6 | /socialnetwork.genmodel | ||
7 | /socialnetwork/ | ||
8 | /statistics/ | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Yakinduum/mpc_rep/R_2015194.xmi b/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Yakinduum/mpc_rep/R_2015194.xmi new file mode 100644 index 00000000..25ff5ce0 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Yakinduum/mpc_rep/R_2015194.xmi | |||
@@ -0,0 +1,132 @@ | |||
1 | <?xml version="1.0" encoding="ASCII"?> | ||
2 | <hu.bme.mit.inf.yakindumm:Statechart xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:hu.bme.mit.inf.yakindumm="hu.bme.mit.inf.yakindumm"> | ||
3 | <regions> | ||
4 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.1/@outgoingTransitions.0 //@regions.0/@vertices.2/@outgoingTransitions.0"> | ||
5 | <outgoingTransitions target="//@regions.0/@vertices.1"/> | ||
6 | <regions> | ||
7 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.5/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.13/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.12/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.12/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.13/@outgoingTransitions.1"> | ||
8 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.12"/> | ||
9 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.1"/> | ||
10 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.13"/> | ||
11 | </vertices> | ||
12 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.14/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.15/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.0/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.15/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.14/@outgoingTransitions.1"> | ||
13 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.7"/> | ||
14 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.14"/> | ||
15 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.15"/> | ||
16 | </vertices> | ||
17 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.7/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.3/@outgoingTransitions.1"> | ||
18 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.4"/> | ||
19 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.3"/> | ||
20 | </vertices> | ||
21 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.7/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.2/@outgoingTransitions.1"> | ||
22 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.4"/> | ||
23 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.2"/> | ||
24 | </vertices> | ||
25 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.9/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.8/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.6/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.3/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.2/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.8/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.9/@outgoingTransitions.1"> | ||
26 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.5"/> | ||
27 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.8"/> | ||
28 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.9"/> | ||
29 | </vertices> | ||
30 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.11/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.4/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.10/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.10/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.11/@outgoingTransitions.1"> | ||
31 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.0"/> | ||
32 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.10"/> | ||
33 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.11"/> | ||
34 | </vertices> | ||
35 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry"> | ||
36 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.4"/> | ||
37 | </vertices> | ||
38 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.1/@outgoingTransitions.0"> | ||
39 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.2"/> | ||
40 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.3"/> | ||
41 | </vertices> | ||
42 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.4/@outgoingTransitions.1"> | ||
43 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.4"/> | ||
44 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.4"/> | ||
45 | </vertices> | ||
46 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.4/@outgoingTransitions.2"> | ||
47 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.4"/> | ||
48 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.4"/> | ||
49 | </vertices> | ||
50 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.5/@outgoingTransitions.1"> | ||
51 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.5"/> | ||
52 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.5"/> | ||
53 | </vertices> | ||
54 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.5/@outgoingTransitions.2"> | ||
55 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.5"/> | ||
56 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.5"/> | ||
57 | </vertices> | ||
58 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.0/@outgoingTransitions.0"> | ||
59 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.0"/> | ||
60 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.0"/> | ||
61 | </vertices> | ||
62 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.0/@outgoingTransitions.2"> | ||
63 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.0"/> | ||
64 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.0"/> | ||
65 | </vertices> | ||
66 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.1/@outgoingTransitions.1"> | ||
67 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.1"/> | ||
68 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.1"/> | ||
69 | </vertices> | ||
70 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.1/@outgoingTransitions.2"> | ||
71 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.1"/> | ||
72 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.1"/> | ||
73 | </vertices> | ||
74 | </regions> | ||
75 | </vertices> | ||
76 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.0/@outgoingTransitions.0"> | ||
77 | <outgoingTransitions target="//@regions.0/@vertices.0"/> | ||
78 | <regions> | ||
79 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry"> | ||
80 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.2"/> | ||
81 | </vertices> | ||
82 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.1/@regions.0/@vertices.2/@outgoingTransitions.0"/> | ||
83 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.1/@regions.0/@vertices.0/@outgoingTransitions.0"> | ||
84 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.1"/> | ||
85 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.3"/> | ||
86 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.3"/> | ||
87 | <regions> | ||
88 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.1/@regions.0/@vertices.2/@regions.0/@vertices.2/@outgoingTransitions.0 //@regions.0/@vertices.1/@regions.0/@vertices.2/@regions.0/@vertices.5/@outgoingTransitions.0 //@regions.0/@vertices.1/@regions.0/@vertices.2/@regions.0/@vertices.0/@outgoingTransitions.1 //@regions.0/@vertices.1/@regions.0/@vertices.2/@regions.0/@vertices.5/@outgoingTransitions.1"> | ||
89 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.2/@regions.0/@vertices.4"/> | ||
90 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.2/@regions.0/@vertices.0"/> | ||
91 | </vertices> | ||
92 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.1/@regions.0/@vertices.2/@regions.0/@vertices.2/@outgoingTransitions.1 //@regions.0/@vertices.1/@regions.0/@vertices.2/@regions.0/@vertices.4/@outgoingTransitions.0 //@regions.0/@vertices.1/@regions.0/@vertices.2/@regions.0/@vertices.1/@outgoingTransitions.0 //@regions.0/@vertices.1/@regions.0/@vertices.2/@regions.0/@vertices.4/@outgoingTransitions.1"> | ||
93 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.2/@regions.0/@vertices.1"/> | ||
94 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.2/@regions.0/@vertices.5"/> | ||
95 | </vertices> | ||
96 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.1/@regions.0/@vertices.2/@regions.0/@vertices.3/@outgoingTransitions.0"> | ||
97 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.2/@regions.0/@vertices.0"/> | ||
98 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.2/@regions.0/@vertices.1"/> | ||
99 | </vertices> | ||
100 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry"> | ||
101 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.2/@regions.0/@vertices.2"/> | ||
102 | </vertices> | ||
103 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.1/@regions.0/@vertices.2/@regions.0/@vertices.0/@outgoingTransitions.0"> | ||
104 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.2/@regions.0/@vertices.1"/> | ||
105 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.2/@regions.0/@vertices.1"/> | ||
106 | </vertices> | ||
107 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.1/@regions.0/@vertices.2/@regions.0/@vertices.1/@outgoingTransitions.1"> | ||
108 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.2/@regions.0/@vertices.0"/> | ||
109 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.2/@regions.0/@vertices.0"/> | ||
110 | </vertices> | ||
111 | </regions> | ||
112 | </vertices> | ||
113 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.1/@regions.0/@vertices.2/@outgoingTransitions.1 //@regions.0/@vertices.1/@regions.0/@vertices.2/@outgoingTransitions.2"> | ||
114 | <regions> | ||
115 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.1/@regions.0/@vertices.3/@regions.0/@vertices.2/@outgoingTransitions.1"/> | ||
116 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.1/@regions.0/@vertices.3/@regions.0/@vertices.2/@outgoingTransitions.0"/> | ||
117 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.1/@regions.0/@vertices.3/@regions.0/@vertices.3/@outgoingTransitions.0"> | ||
118 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.3/@regions.0/@vertices.1"/> | ||
119 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.3/@regions.0/@vertices.0"/> | ||
120 | </vertices> | ||
121 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry"> | ||
122 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.3/@regions.0/@vertices.2"/> | ||
123 | </vertices> | ||
124 | </regions> | ||
125 | </vertices> | ||
126 | </regions> | ||
127 | </vertices> | ||
128 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry"> | ||
129 | <outgoingTransitions target="//@regions.0/@vertices.0"/> | ||
130 | </vertices> | ||
131 | </regions> | ||
132 | </hu.bme.mit.inf.yakindumm:Statechart> | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Yakinduum/na_rep/R_2017131.xmi b/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Yakinduum/na_rep/R_2017131.xmi new file mode 100644 index 00000000..39780f72 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Yakinduum/na_rep/R_2017131.xmi | |||
@@ -0,0 +1,149 @@ | |||
1 | <?xml version="1.0" encoding="ASCII"?> | ||
2 | <hu.bme.mit.inf.yakindumm:Statechart xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:hu.bme.mit.inf.yakindumm="hu.bme.mit.inf.yakindumm"> | ||
3 | <regions> | ||
4 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.5/@outgoingTransitions.0 //@regions.0/@vertices.2/@outgoingTransitions.0 //@regions.0/@vertices.1/@outgoingTransitions.0"> | ||
5 | <outgoingTransitions target="//@regions.0/@vertices.1"/> | ||
6 | <regions> | ||
7 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.4/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.2/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.5/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.5/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.4/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.8/@outgoingTransitions.0"> | ||
8 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.5"/> | ||
9 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.1"/> | ||
10 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.4"/> | ||
11 | </vertices> | ||
12 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.10/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.0/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.9/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.9/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.10/@outgoingTransitions.1"> | ||
13 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.10"/> | ||
14 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.3"/> | ||
15 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.9"/> | ||
16 | </vertices> | ||
17 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.11/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.3/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.11/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.12/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.12/@outgoingTransitions.1"> | ||
18 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.0"/> | ||
19 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.12"/> | ||
20 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.11"/> | ||
21 | </vertices> | ||
22 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.1/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.7/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.6/@outgoingTransitions.0 //@regions.0/@vertices.0/@regions.0/@vertices.7/@outgoingTransitions.1 //@regions.0/@vertices.0/@regions.0/@vertices.6/@outgoingTransitions.1"> | ||
23 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.2"/> | ||
24 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.7"/> | ||
25 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.6"/> | ||
26 | </vertices> | ||
27 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.0/@outgoingTransitions.2"> | ||
28 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.0"/> | ||
29 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.0"/> | ||
30 | </vertices> | ||
31 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.0/@outgoingTransitions.0"> | ||
32 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.0"/> | ||
33 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.0"/> | ||
34 | </vertices> | ||
35 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.3/@outgoingTransitions.2"> | ||
36 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.3"/> | ||
37 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.3"/> | ||
38 | </vertices> | ||
39 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.3/@outgoingTransitions.1"> | ||
40 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.3"/> | ||
41 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.3"/> | ||
42 | </vertices> | ||
43 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry"> | ||
44 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.0"/> | ||
45 | </vertices> | ||
46 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.1/@outgoingTransitions.2"> | ||
47 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.1"/> | ||
48 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.1"/> | ||
49 | </vertices> | ||
50 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.1/@outgoingTransitions.0"> | ||
51 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.1"/> | ||
52 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.1"/> | ||
53 | </vertices> | ||
54 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.2/@outgoingTransitions.2"> | ||
55 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.2"/> | ||
56 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.2"/> | ||
57 | </vertices> | ||
58 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.0/@regions.0/@vertices.2/@outgoingTransitions.1"> | ||
59 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.2"/> | ||
60 | <outgoingTransitions target="//@regions.0/@vertices.0/@regions.0/@vertices.2"/> | ||
61 | </vertices> | ||
62 | </regions> | ||
63 | </vertices> | ||
64 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.0/@outgoingTransitions.0 //@regions.0/@vertices.4/@outgoingTransitions.0 //@regions.0/@vertices.4/@outgoingTransitions.1 //@regions.0/@vertices.2/@regions.0/@vertices.5/@outgoingTransitions.0"> | ||
65 | <outgoingTransitions target="//@regions.0/@vertices.0"/> | ||
66 | <regions> | ||
67 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry"> | ||
68 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.1"/> | ||
69 | </vertices> | ||
70 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.1/@regions.0/@vertices.2/@outgoingTransitions.0 //@regions.0/@vertices.1/@regions.0/@vertices.0/@outgoingTransitions.0 //@regions.0/@vertices.1/@regions.0/@vertices.2/@outgoingTransitions.2"> | ||
71 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.2"/> | ||
72 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.4"/> | ||
73 | <outgoingTransitions target="//@regions.0/@vertices.3"/> | ||
74 | </vertices> | ||
75 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.1/@regions.0/@vertices.1/@outgoingTransitions.0"> | ||
76 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.1"/> | ||
77 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.3"/> | ||
78 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.1"/> | ||
79 | </vertices> | ||
80 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.1/@regions.0/@vertices.5/@outgoingTransitions.1 //@regions.0/@vertices.1/@regions.0/@vertices.2/@outgoingTransitions.1"/> | ||
81 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.1/@regions.0/@vertices.1/@outgoingTransitions.1 //@regions.0/@vertices.1/@regions.0/@vertices.5/@outgoingTransitions.0 //@regions.0/@vertices.1/@regions.0/@vertices.5/@outgoingTransitions.2"> | ||
82 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.7"/> | ||
83 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.5"/> | ||
84 | </vertices> | ||
85 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.1/@regions.0/@vertices.4/@outgoingTransitions.1"> | ||
86 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.4"/> | ||
87 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.3"/> | ||
88 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.4"/> | ||
89 | </vertices> | ||
90 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.1/@regions.0/@vertices.7/@outgoingTransitions.1 //@regions.0/@vertices.1/@regions.0/@vertices.7/@outgoingTransitions.0"> | ||
91 | <outgoingTransitions target="//@regions.0/@vertices.2"/> | ||
92 | </vertices> | ||
93 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.1/@regions.0/@vertices.4/@outgoingTransitions.0"> | ||
94 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.6"/> | ||
95 | <outgoingTransitions target="//@regions.0/@vertices.1/@regions.0/@vertices.6"/> | ||
96 | </vertices> | ||
97 | </regions> | ||
98 | </vertices> | ||
99 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.3/@outgoingTransitions.0 //@regions.0/@vertices.3/@outgoingTransitions.1 //@regions.0/@vertices.1/@regions.0/@vertices.6/@outgoingTransitions.0"> | ||
100 | <outgoingTransitions target="//@regions.0/@vertices.0"/> | ||
101 | <regions> | ||
102 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.7/@outgoingTransitions.0 //@regions.0/@vertices.2/@regions.0/@vertices.2/@outgoingTransitions.1 //@regions.0/@vertices.2/@regions.0/@vertices.2/@outgoingTransitions.0"> | ||
103 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.2"/> | ||
104 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.3"/> | ||
105 | <outgoingTransitions target="//@regions.0/@vertices.4"/> | ||
106 | </vertices> | ||
107 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.2/@outgoingTransitions.2 //@regions.0/@vertices.2/@regions.0/@vertices.4/@outgoingTransitions.2"/> | ||
108 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.0/@outgoingTransitions.0"> | ||
109 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.0"/> | ||
110 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.0"/> | ||
111 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.1"/> | ||
112 | </vertices> | ||
113 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.0/@outgoingTransitions.1 //@regions.0/@vertices.2/@regions.0/@vertices.4/@outgoingTransitions.0 //@regions.0/@vertices.2/@regions.0/@vertices.4/@outgoingTransitions.1"> | ||
114 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.4"/> | ||
115 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.6"/> | ||
116 | </vertices> | ||
117 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.3/@outgoingTransitions.0"> | ||
118 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.3"/> | ||
119 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.3"/> | ||
120 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.1"/> | ||
121 | </vertices> | ||
122 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.6/@outgoingTransitions.0 //@regions.0/@vertices.2/@regions.0/@vertices.6/@outgoingTransitions.1"> | ||
123 | <outgoingTransitions target="//@regions.0/@vertices.1"/> | ||
124 | </vertices> | ||
125 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.3/@outgoingTransitions.1"> | ||
126 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.5"/> | ||
127 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.5"/> | ||
128 | </vertices> | ||
129 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry"> | ||
130 | <outgoingTransitions target="//@regions.0/@vertices.2/@regions.0/@vertices.0"/> | ||
131 | </vertices> | ||
132 | </regions> | ||
133 | </vertices> | ||
134 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.1/@regions.0/@vertices.1/@outgoingTransitions.2"> | ||
135 | <outgoingTransitions target="//@regions.0/@vertices.2"/> | ||
136 | <outgoingTransitions target="//@regions.0/@vertices.2"/> | ||
137 | </vertices> | ||
138 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.2/@regions.0/@vertices.0/@outgoingTransitions.2"> | ||
139 | <outgoingTransitions target="//@regions.0/@vertices.1"/> | ||
140 | <outgoingTransitions target="//@regions.0/@vertices.1"/> | ||
141 | </vertices> | ||
142 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.6/@outgoingTransitions.0"> | ||
143 | <outgoingTransitions target="//@regions.0/@vertices.0"/> | ||
144 | </vertices> | ||
145 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry"> | ||
146 | <outgoingTransitions target="//@regions.0/@vertices.5"/> | ||
147 | </vertices> | ||
148 | </regions> | ||
149 | </hu.bme.mit.inf.yakindumm:Statechart> | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Yakinduum/mpc_rep/R_2016324.xmi b/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Yakinduum/old/mpc_rep/R_2016324.xmi index 493a1731..493a1731 100644 --- a/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Yakinduum/mpc_rep/R_2016324.xmi +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Yakinduum/old/mpc_rep/R_2016324.xmi | |||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Yakinduum/na_rep/R_2017419.xmi b/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Yakinduum/old/na_rep/R_2017419.xmi index 369760bf..369760bf 100644 --- a/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Yakinduum/na_rep/R_2017419.xmi +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Yakinduum/old/na_rep/R_2017419.xmi | |||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Yakinduum/out_d_rep/R_2015225.xmi b/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Yakinduum/old/out_d_rep/R_2015225.xmi index 21fee5a9..21fee5a9 100644 --- a/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Yakinduum/out_d_rep/R_2015225.xmi +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Yakinduum/old/out_d_rep/R_2015225.xmi | |||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Yakinduum/out_d_rep/R_2015248.xmi b/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Yakinduum/out_d_rep/R_2015248.xmi new file mode 100644 index 00000000..e7fe8114 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/data/Yakinduum/out_d_rep/R_2015248.xmi | |||
@@ -0,0 +1,125 @@ | |||
1 | <?xml version="1.0" encoding="ASCII"?> | ||
2 | <hu.bme.mit.inf.yakindumm:Statechart xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:hu.bme.mit.inf.yakindumm="hu.bme.mit.inf.yakindumm"> | ||
3 | <regions> | ||
4 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry"> | ||
5 | <outgoingTransitions target="//@regions.0/@vertices.1"/> | ||
6 | </vertices> | ||
7 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.12/@outgoingTransitions.0 //@regions.0/@vertices.0/@outgoingTransitions.0 //@regions.0/@vertices.6/@outgoingTransitions.0"> | ||
8 | <outgoingTransitions target="//@regions.0/@vertices.2"/> | ||
9 | <outgoingTransitions target="//@regions.0/@vertices.6"/> | ||
10 | </vertices> | ||
11 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.1/@outgoingTransitions.0 //@regions.0/@vertices.4/@outgoingTransitions.0 //@regions.0/@vertices.4/@outgoingTransitions.1 //@regions.0/@vertices.7/@outgoingTransitions.0 //@regions.0/@vertices.7/@outgoingTransitions.1"> | ||
12 | <outgoingTransitions target="//@regions.0/@vertices.3"/> | ||
13 | <outgoingTransitions target="//@regions.0/@vertices.4"/> | ||
14 | <outgoingTransitions target="//@regions.0/@vertices.7"/> | ||
15 | </vertices> | ||
16 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.8/@outgoingTransitions.0 //@regions.0/@vertices.8/@outgoingTransitions.1 //@regions.0/@vertices.2/@outgoingTransitions.0 //@regions.0/@vertices.9/@outgoingTransitions.0 //@regions.0/@vertices.9/@outgoingTransitions.1"> | ||
17 | <outgoingTransitions target="//@regions.0/@vertices.8"/> | ||
18 | <outgoingTransitions target="//@regions.0/@vertices.5"/> | ||
19 | <outgoingTransitions target="//@regions.0/@vertices.9"/> | ||
20 | </vertices> | ||
21 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.2/@outgoingTransitions.1"> | ||
22 | <outgoingTransitions target="//@regions.0/@vertices.2"/> | ||
23 | <outgoingTransitions target="//@regions.0/@vertices.2"/> | ||
24 | </vertices> | ||
25 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.11/@outgoingTransitions.0 //@regions.0/@vertices.10/@outgoingTransitions.0 //@regions.0/@vertices.10/@outgoingTransitions.1 //@regions.0/@vertices.3/@outgoingTransitions.1 //@regions.0/@vertices.11/@outgoingTransitions.1"> | ||
26 | <outgoingTransitions target="//@regions.0/@vertices.12"/> | ||
27 | <outgoingTransitions target="//@regions.0/@vertices.11"/> | ||
28 | <outgoingTransitions target="//@regions.0/@vertices.10"/> | ||
29 | </vertices> | ||
30 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.1/@outgoingTransitions.1"> | ||
31 | <outgoingTransitions target="//@regions.0/@vertices.1"/> | ||
32 | <regions> | ||
33 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry"> | ||
34 | <outgoingTransitions target="//@regions.0/@vertices.6/@regions.0/@vertices.1"/> | ||
35 | </vertices> | ||
36 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.6/@regions.0/@vertices.0/@outgoingTransitions.0"> | ||
37 | <outgoingTransitions target="//@regions.0/@vertices.6/@regions.0/@vertices.3"/> | ||
38 | <outgoingTransitions target="//@regions.0/@vertices.6/@regions.0/@vertices.2"/> | ||
39 | </vertices> | ||
40 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.6/@regions.0/@vertices.10/@outgoingTransitions.0 //@regions.0/@vertices.6/@regions.0/@vertices.2/@outgoingTransitions.1 //@regions.0/@vertices.6/@regions.0/@vertices.1/@outgoingTransitions.1 //@regions.0/@vertices.6/@regions.0/@vertices.10/@outgoingTransitions.2 //@regions.0/@vertices.6/@regions.0/@vertices.9/@outgoingTransitions.0 //@regions.0/@vertices.6/@regions.0/@vertices.13/@outgoingTransitions.1"> | ||
41 | <outgoingTransitions target="//@regions.0/@vertices.6/@regions.0/@vertices.4"/> | ||
42 | <outgoingTransitions target="//@regions.0/@vertices.6/@regions.0/@vertices.2"/> | ||
43 | <outgoingTransitions target="//@regions.0/@vertices.6/@regions.0/@vertices.10"/> | ||
44 | </vertices> | ||
45 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.6/@regions.0/@vertices.1/@outgoingTransitions.0 //@regions.0/@vertices.6/@regions.0/@vertices.11/@outgoingTransitions.2 //@regions.0/@vertices.6/@regions.0/@vertices.11/@outgoingTransitions.0 //@regions.0/@vertices.6/@regions.0/@vertices.3/@outgoingTransitions.2 //@regions.0/@vertices.6/@regions.0/@vertices.12/@outgoingTransitions.0 //@regions.0/@vertices.6/@regions.0/@vertices.8/@outgoingTransitions.0"> | ||
46 | <outgoingTransitions target="//@regions.0/@vertices.6/@regions.0/@vertices.11"/> | ||
47 | <outgoingTransitions target="//@regions.0/@vertices.6/@regions.0/@vertices.5"/> | ||
48 | <outgoingTransitions target="//@regions.0/@vertices.6/@regions.0/@vertices.3"/> | ||
49 | </vertices> | ||
50 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.6/@regions.0/@vertices.2/@outgoingTransitions.0"> | ||
51 | <outgoingTransitions target="//@regions.0/@vertices.6/@regions.0/@vertices.12"/> | ||
52 | <outgoingTransitions target="//@regions.0/@vertices.6/@regions.0/@vertices.12"/> | ||
53 | </vertices> | ||
54 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.6/@regions.0/@vertices.3/@outgoingTransitions.1"> | ||
55 | <outgoingTransitions target="//@regions.0/@vertices.6/@regions.0/@vertices.13"/> | ||
56 | <outgoingTransitions target="//@regions.0/@vertices.6/@regions.0/@vertices.13"/> | ||
57 | </vertices> | ||
58 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.6/@regions.0/@vertices.11/@outgoingTransitions.1"/> | ||
59 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.6/@regions.0/@vertices.10/@outgoingTransitions.1"/> | ||
60 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.6/@regions.0/@vertices.12/@outgoingTransitions.1"> | ||
61 | <outgoingTransitions target="//@regions.0/@vertices.6/@regions.0/@vertices.3"/> | ||
62 | </vertices> | ||
63 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.6/@regions.0/@vertices.13/@outgoingTransitions.0"> | ||
64 | <outgoingTransitions target="//@regions.0/@vertices.6/@regions.0/@vertices.2"/> | ||
65 | </vertices> | ||
66 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.6/@regions.0/@vertices.2/@outgoingTransitions.2"> | ||
67 | <outgoingTransitions target="//@regions.0/@vertices.6/@regions.0/@vertices.2"/> | ||
68 | <outgoingTransitions target="//@regions.0/@vertices.6/@regions.0/@vertices.7"/> | ||
69 | <outgoingTransitions target="//@regions.0/@vertices.6/@regions.0/@vertices.2"/> | ||
70 | </vertices> | ||
71 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.6/@regions.0/@vertices.3/@outgoingTransitions.0"> | ||
72 | <outgoingTransitions target="//@regions.0/@vertices.6/@regions.0/@vertices.3"/> | ||
73 | <outgoingTransitions target="//@regions.0/@vertices.6/@regions.0/@vertices.6"/> | ||
74 | <outgoingTransitions target="//@regions.0/@vertices.6/@regions.0/@vertices.3"/> | ||
75 | </vertices> | ||
76 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.6/@regions.0/@vertices.4/@outgoingTransitions.0 //@regions.0/@vertices.6/@regions.0/@vertices.4/@outgoingTransitions.1"> | ||
77 | <outgoingTransitions target="//@regions.0/@vertices.6/@regions.0/@vertices.3"/> | ||
78 | <outgoingTransitions target="//@regions.0/@vertices.6/@regions.0/@vertices.8"/> | ||
79 | </vertices> | ||
80 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.6/@regions.0/@vertices.5/@outgoingTransitions.0 //@regions.0/@vertices.6/@regions.0/@vertices.5/@outgoingTransitions.1"> | ||
81 | <outgoingTransitions target="//@regions.0/@vertices.6/@regions.0/@vertices.9"/> | ||
82 | <outgoingTransitions target="//@regions.0/@vertices.6/@regions.0/@vertices.2"/> | ||
83 | </vertices> | ||
84 | </regions> | ||
85 | </vertices> | ||
86 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.2/@outgoingTransitions.2"> | ||
87 | <outgoingTransitions target="//@regions.0/@vertices.2"/> | ||
88 | <outgoingTransitions target="//@regions.0/@vertices.2"/> | ||
89 | </vertices> | ||
90 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.3/@outgoingTransitions.0"> | ||
91 | <outgoingTransitions target="//@regions.0/@vertices.3"/> | ||
92 | <outgoingTransitions target="//@regions.0/@vertices.3"/> | ||
93 | </vertices> | ||
94 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.3/@outgoingTransitions.2"> | ||
95 | <outgoingTransitions target="//@regions.0/@vertices.3"/> | ||
96 | <outgoingTransitions target="//@regions.0/@vertices.3"/> | ||
97 | </vertices> | ||
98 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.5/@outgoingTransitions.2"> | ||
99 | <outgoingTransitions target="//@regions.0/@vertices.5"/> | ||
100 | <outgoingTransitions target="//@regions.0/@vertices.5"/> | ||
101 | </vertices> | ||
102 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.5/@outgoingTransitions.1"> | ||
103 | <outgoingTransitions target="//@regions.0/@vertices.5"/> | ||
104 | <outgoingTransitions target="//@regions.0/@vertices.5"/> | ||
105 | </vertices> | ||
106 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.5/@outgoingTransitions.0"> | ||
107 | <outgoingTransitions target="//@regions.0/@vertices.1"/> | ||
108 | <regions> | ||
109 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Entry"> | ||
110 | <outgoingTransitions target="//@regions.0/@vertices.12/@regions.0/@vertices.1"/> | ||
111 | </vertices> | ||
112 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:Choice" incomingTransitions="//@regions.0/@vertices.12/@regions.0/@vertices.0/@outgoingTransitions.0"> | ||
113 | <outgoingTransitions target="//@regions.0/@vertices.12/@regions.0/@vertices.2"/> | ||
114 | <outgoingTransitions target="//@regions.0/@vertices.12/@regions.0/@vertices.3"/> | ||
115 | </vertices> | ||
116 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.12/@regions.0/@vertices.1/@outgoingTransitions.0 //@regions.0/@vertices.12/@regions.0/@vertices.3/@outgoingTransitions.0"> | ||
117 | <outgoingTransitions target="//@regions.0/@vertices.12/@regions.0/@vertices.3"/> | ||
118 | </vertices> | ||
119 | <vertices xsi:type="hu.bme.mit.inf.yakindumm:State" incomingTransitions="//@regions.0/@vertices.12/@regions.0/@vertices.1/@outgoingTransitions.1 //@regions.0/@vertices.12/@regions.0/@vertices.2/@outgoingTransitions.0"> | ||
120 | <outgoingTransitions target="//@regions.0/@vertices.12/@regions.0/@vertices.2"/> | ||
121 | </vertices> | ||
122 | </regions> | ||
123 | </vertices> | ||
124 | </regions> | ||
125 | </hu.bme.mit.inf.yakindumm:Statechart> | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/debug/.gitignore b/Metrics/Metrics-Calculation/SocialNetwork_plugin/debug/.gitignore deleted file mode 100644 index 17126b28..00000000 --- a/Metrics/Metrics-Calculation/SocialNetwork_plugin/debug/.gitignore +++ /dev/null | |||
@@ -1,4 +0,0 @@ | |||
1 | # ignore everything in this folder except for this folder it self | ||
2 | |||
3 | * | ||
4 | !.gitignore \ No newline at end of file | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/ecore.vsconfig b/Metrics/Metrics-Calculation/SocialNetwork_plugin/ecore.vsconfig new file mode 100644 index 00000000..2c83f94f --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/ecore.vsconfig | |||
@@ -0,0 +1,34 @@ | |||
1 | import viatra "./queries/queries/ecore_pattern.vql" | ||
2 | import epackage "http://www.eclipse.org/emf/2002/Ecore" | ||
3 | |||
4 | generate { | ||
5 | metamodel = {package ecore excluding{EClassifier.instanceClass, EClassifier.defaultValue, | ||
6 | EEnumLiteral.instance, EStructuralFeature.defaultValue, EStructuralFeature.changeable, | ||
7 | EStructuralFeature.derived, ENamedElement.name, EClass.interface, EClass.abstract, EClassifier.instanceTypeName, | ||
8 | EClassifier.instanceClassName, EPackage.nsPrefix, EPackage.nsURI, EAnnotation.source, | ||
9 | EAttribute.iD, EDataType.serializable, EEnumLiteral.literal, EEnumLiteral.value, | ||
10 | EGenericType.eTypeParameter, EReference.resolveProxies, EStringToStringMapEntry.key, | ||
11 | EStringToStringMapEntry.value, EStructuralFeature.defaultValueLiteral, EStructuralFeature.transient, | ||
12 | EStructuralFeature.unsettable, EStructuralFeature.volatile, ETypedElement.lowerBound, | ||
13 | ETypedElement.many, ETypedElement.ordered, ETypedElement.required, ETypedElement.unique,ETypedElement.upperBound, | ||
14 | EPackage.eFactoryInstance}} | ||
15 | // metamodel = {EPackage, EClass, EClassifier, EObject, ENamedElement, EModelElement, EReference, EStructuralFeature, ETypedElement} | ||
16 | partial-model = { "inputs/ecore.xmi"} | ||
17 | constraints = { package queries } | ||
18 | |||
19 | |||
20 | solver = ViatraSolver | ||
21 | |||
22 | scope = { | ||
23 | #node = 75 | ||
24 | } | ||
25 | |||
26 | number = 1 | ||
27 | runs = 50 | ||
28 | config = { | ||
29 | log-level = none | ||
30 | } | ||
31 | |||
32 | debug = "debug" | ||
33 | output = "output/Ecore/" | ||
34 | } \ No newline at end of file | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/model/ecore.ecore b/Metrics/Metrics-Calculation/SocialNetwork_plugin/model/ecore.ecore new file mode 100644 index 00000000..eaaf3d11 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/model/ecore.ecore | |||
@@ -0,0 +1,1023 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8"?> | ||
2 | <ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
3 | xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="ecore" nsURI="http://www.eclipse.org/emf/2002/Ecore" nsPrefix="ecore"> | ||
4 | <eClassifiers xsi:type="ecore:EClass" name="EAnnotation" eSuperTypes="#//EModelElement"> | ||
5 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
6 | <details key="name" value="EAnnotation"/> | ||
7 | <details key="kind" value="elementOnly"/> | ||
8 | </eAnnotations> | ||
9 | <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> | ||
10 | <details key="constraints" value="WellFormedSourceURI"/> | ||
11 | </eAnnotations> | ||
12 | <eStructuralFeatures xsi:type="ecore:EReference" name="details" upperBound="-1" | ||
13 | eType="#//EStringToStringMapEntry" containment="true" resolveProxies="false"> | ||
14 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
15 | <details key="kind" value="element"/> | ||
16 | <details key="name" value="details"/> | ||
17 | </eAnnotations> | ||
18 | </eStructuralFeatures> | ||
19 | <eStructuralFeatures xsi:type="ecore:EReference" name="contents" upperBound="-1" | ||
20 | eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject" containment="true" | ||
21 | resolveProxies="false"> | ||
22 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
23 | <details key="kind" value="element"/> | ||
24 | <details key="name" value="contents"/> | ||
25 | </eAnnotations> | ||
26 | </eStructuralFeatures> | ||
27 | <eStructuralFeatures xsi:type="ecore:EReference" name="references" upperBound="-1" | ||
28 | eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"> | ||
29 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
30 | <details key="kind" value="attribute"/> | ||
31 | <details key="name" value="references"/> | ||
32 | </eAnnotations> | ||
33 | </eStructuralFeatures> | ||
34 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="source" eType="#//EString"> | ||
35 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
36 | <details key="kind" value="attribute"/> | ||
37 | <details key="name" value="source"/> | ||
38 | </eAnnotations> | ||
39 | </eStructuralFeatures> | ||
40 | <eStructuralFeatures xsi:type="ecore:EReference" name="eModelElement" eType="#//EModelElement" | ||
41 | transient="true" eOpposite="#//EModelElement/eAnnotations"/> | ||
42 | </eClassifiers> | ||
43 | <eClassifiers xsi:type="ecore:EClass" name="EAttribute" eSuperTypes="#//EStructuralFeature"> | ||
44 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
45 | <details key="name" value="EAttribute"/> | ||
46 | <details key="kind" value="elementOnly"/> | ||
47 | </eAnnotations> | ||
48 | <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> | ||
49 | <details key="constraints" value="ConsistentTransient"/> | ||
50 | </eAnnotations> | ||
51 | <eStructuralFeatures xsi:type="ecore:EReference" name="eAttributeType" lowerBound="1" | ||
52 | eType="#//EDataType" changeable="false" volatile="true" transient="true" derived="true"> | ||
53 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
54 | <details key="kind" value="attribute"/> | ||
55 | <details key="name" value="eAttributeType"/> | ||
56 | </eAnnotations> | ||
57 | </eStructuralFeatures> | ||
58 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="iD" eType="#//EBoolean"> | ||
59 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
60 | <details key="kind" value="attribute"/> | ||
61 | <details key="name" value="iD"/> | ||
62 | </eAnnotations> | ||
63 | </eStructuralFeatures> | ||
64 | </eClassifiers> | ||
65 | <eClassifiers xsi:type="ecore:EDataType" name="EBigDecimal" instanceClassName="java.math.BigDecimal"> | ||
66 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
67 | <details key="name" value="EBigDecimal"/> | ||
68 | <details key="baseType" value="http://www.eclipse.org/emf/2003/XMLType#decimal"/> | ||
69 | </eAnnotations> | ||
70 | </eClassifiers> | ||
71 | <eClassifiers xsi:type="ecore:EDataType" name="EBigInteger" instanceClassName="java.math.BigInteger"> | ||
72 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
73 | <details key="name" value="EBigInteger"/> | ||
74 | <details key="baseType" value="http://www.eclipse.org/emf/2003/XMLType#integer"/> | ||
75 | </eAnnotations> | ||
76 | </eClassifiers> | ||
77 | <eClassifiers xsi:type="ecore:EDataType" name="EBoolean" instanceClassName="boolean"> | ||
78 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
79 | <details key="name" value="EBoolean"/> | ||
80 | </eAnnotations> | ||
81 | </eClassifiers> | ||
82 | <eClassifiers xsi:type="ecore:EDataType" name="EBooleanObject" instanceClassName="java.lang.Boolean"> | ||
83 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
84 | <details key="name" value="EBoolean:Object"/> | ||
85 | <details key="baseType" value="EBoolean"/> | ||
86 | </eAnnotations> | ||
87 | </eClassifiers> | ||
88 | <eClassifiers xsi:type="ecore:EDataType" name="EByte" instanceClassName="byte"> | ||
89 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
90 | <details key="name" value="EByte"/> | ||
91 | <details key="baseType" value="http://www.eclipse.org/emf/2003/XMLType#byte"/> | ||
92 | </eAnnotations> | ||
93 | </eClassifiers> | ||
94 | <eClassifiers xsi:type="ecore:EDataType" name="EByteArray" instanceClassName="byte[]"> | ||
95 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
96 | <details key="name" value="EByteArray"/> | ||
97 | <details key="baseType" value="http://www.eclipse.org/emf/2003/XMLType#hexBinary"/> | ||
98 | </eAnnotations> | ||
99 | </eClassifiers> | ||
100 | <eClassifiers xsi:type="ecore:EDataType" name="EByteObject" instanceClassName="java.lang.Byte"> | ||
101 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
102 | <details key="name" value="EByte:Object"/> | ||
103 | <details key="baseType" value="EByte"/> | ||
104 | </eAnnotations> | ||
105 | </eClassifiers> | ||
106 | <eClassifiers xsi:type="ecore:EDataType" name="EChar" instanceClassName="char"> | ||
107 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
108 | <details key="name" value="EChar"/> | ||
109 | </eAnnotations> | ||
110 | </eClassifiers> | ||
111 | <eClassifiers xsi:type="ecore:EDataType" name="ECharacterObject" instanceClassName="java.lang.Character"> | ||
112 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
113 | <details key="name" value="EChar:Object"/> | ||
114 | <details key="baseType" value="EChar"/> | ||
115 | </eAnnotations> | ||
116 | </eClassifiers> | ||
117 | <eClassifiers xsi:type="ecore:EClass" name="EClass" eSuperTypes="#//EClassifier"> | ||
118 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
119 | <details key="name" value="EClass"/> | ||
120 | <details key="kind" value="elementOnly"/> | ||
121 | </eAnnotations> | ||
122 | <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> | ||
123 | <details key="constraints" value="InterfaceIsAbstract AtMostOneID UniqueFeatureNames UniqueOperationSignatures NoCircularSuperTypes WellFormedMapEntryClass ConsistentSuperTypes DisjointFeatureAndOperationSignatures"/> | ||
124 | </eAnnotations> | ||
125 | <eOperations name="isSuperTypeOf" eType="#//EBoolean"> | ||
126 | <eParameters name="someClass" eType="#//EClass"/> | ||
127 | </eOperations> | ||
128 | <eOperations name="getFeatureCount" eType="#//EInt"/> | ||
129 | <eOperations name="getEStructuralFeature" eType="#//EStructuralFeature"> | ||
130 | <eParameters name="featureID" eType="#//EInt"/> | ||
131 | </eOperations> | ||
132 | <eOperations name="getFeatureID" eType="#//EInt"> | ||
133 | <eParameters name="feature" eType="#//EStructuralFeature"/> | ||
134 | </eOperations> | ||
135 | <eOperations name="getEStructuralFeature" eType="#//EStructuralFeature"> | ||
136 | <eParameters name="featureName" eType="#//EString"/> | ||
137 | </eOperations> | ||
138 | <eOperations name="getOperationCount" eType="#//EInt"/> | ||
139 | <eOperations name="getEOperation" eType="#//EOperation"> | ||
140 | <eParameters name="operationID" eType="#//EInt"/> | ||
141 | </eOperations> | ||
142 | <eOperations name="getOperationID" eType="#//EInt"> | ||
143 | <eParameters name="operation" eType="#//EOperation"/> | ||
144 | </eOperations> | ||
145 | <eOperations name="getOverride" eType="#//EOperation"> | ||
146 | <eParameters name="operation" eType="#//EOperation"/> | ||
147 | </eOperations> | ||
148 | <eStructuralFeatures xsi:type="ecore:EReference" name="eOperations" upperBound="-1" | ||
149 | eType="#//EOperation" containment="true" resolveProxies="false" eOpposite="#//EOperation/eContainingClass"> | ||
150 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
151 | <details key="kind" value="element"/> | ||
152 | <details key="name" value="eOperations"/> | ||
153 | </eAnnotations> | ||
154 | </eStructuralFeatures> | ||
155 | <eStructuralFeatures xsi:type="ecore:EReference" name="eStructuralFeatures" upperBound="-1" | ||
156 | eType="#//EStructuralFeature" containment="true" resolveProxies="false" eOpposite="#//EStructuralFeature/eContainingClass"> | ||
157 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
158 | <details key="kind" value="element"/> | ||
159 | <details key="name" value="eStructuralFeatures"/> | ||
160 | </eAnnotations> | ||
161 | </eStructuralFeatures> | ||
162 | <eStructuralFeatures xsi:type="ecore:EReference" name="eGenericSuperTypes" upperBound="-1" | ||
163 | eType="#//EGenericType" unsettable="true" containment="true" resolveProxies="false"> | ||
164 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
165 | <details key="kind" value="element"/> | ||
166 | <details key="name" value="eGenericSuperTypes"/> | ||
167 | </eAnnotations> | ||
168 | <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> | ||
169 | <details key="suppressedIsSetVisibility" value="true"/> | ||
170 | <details key="suppressedUnsetVisibility" value="true"/> | ||
171 | </eAnnotations> | ||
172 | </eStructuralFeatures> | ||
173 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="abstract" eType="#//EBoolean"> | ||
174 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
175 | <details key="kind" value="attribute"/> | ||
176 | <details key="name" value="abstract"/> | ||
177 | </eAnnotations> | ||
178 | </eStructuralFeatures> | ||
179 | <eStructuralFeatures xsi:type="ecore:EReference" name="eAllAttributes" upperBound="-1" | ||
180 | eType="#//EAttribute" changeable="false" volatile="true" transient="true" | ||
181 | derived="true"> | ||
182 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
183 | <details key="kind" value="attribute"/> | ||
184 | <details key="name" value="eAllAttributes"/> | ||
185 | </eAnnotations> | ||
186 | </eStructuralFeatures> | ||
187 | <eStructuralFeatures xsi:type="ecore:EReference" name="eAllContainments" upperBound="-1" | ||
188 | eType="#//EReference" changeable="false" volatile="true" transient="true" | ||
189 | derived="true"> | ||
190 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
191 | <details key="kind" value="attribute"/> | ||
192 | <details key="name" value="eAllContainments"/> | ||
193 | </eAnnotations> | ||
194 | </eStructuralFeatures> | ||
195 | <eStructuralFeatures xsi:type="ecore:EReference" name="eAllGenericSuperTypes" | ||
196 | upperBound="-1" eType="#//EGenericType" changeable="false" volatile="true" | ||
197 | transient="true" derived="true"> | ||
198 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
199 | <details key="kind" value="attribute"/> | ||
200 | <details key="name" value="eAllGenericSuperTypes"/> | ||
201 | </eAnnotations> | ||
202 | </eStructuralFeatures> | ||
203 | <eStructuralFeatures xsi:type="ecore:EReference" name="eAllOperations" upperBound="-1" | ||
204 | eType="#//EOperation" changeable="false" volatile="true" transient="true" | ||
205 | derived="true"> | ||
206 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
207 | <details key="kind" value="attribute"/> | ||
208 | <details key="name" value="eAllOperations"/> | ||
209 | </eAnnotations> | ||
210 | </eStructuralFeatures> | ||
211 | <eStructuralFeatures xsi:type="ecore:EReference" name="eAllReferences" upperBound="-1" | ||
212 | eType="#//EReference" changeable="false" volatile="true" transient="true" | ||
213 | derived="true"> | ||
214 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
215 | <details key="kind" value="attribute"/> | ||
216 | <details key="name" value="eAllReferences"/> | ||
217 | </eAnnotations> | ||
218 | </eStructuralFeatures> | ||
219 | <eStructuralFeatures xsi:type="ecore:EReference" name="eAllStructuralFeatures" | ||
220 | upperBound="-1" eType="#//EStructuralFeature" changeable="false" volatile="true" | ||
221 | transient="true" derived="true"> | ||
222 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
223 | <details key="kind" value="attribute"/> | ||
224 | <details key="name" value="eAllStructuralFeatures"/> | ||
225 | </eAnnotations> | ||
226 | </eStructuralFeatures> | ||
227 | <eStructuralFeatures xsi:type="ecore:EReference" name="eAllSuperTypes" upperBound="-1" | ||
228 | eType="#//EClass" changeable="false" volatile="true" transient="true" derived="true"> | ||
229 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
230 | <details key="kind" value="attribute"/> | ||
231 | <details key="name" value="eAllSuperTypes"/> | ||
232 | </eAnnotations> | ||
233 | </eStructuralFeatures> | ||
234 | <eStructuralFeatures xsi:type="ecore:EReference" name="eAttributes" upperBound="-1" | ||
235 | eType="#//EAttribute" changeable="false" volatile="true" transient="true" | ||
236 | derived="true"> | ||
237 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
238 | <details key="kind" value="attribute"/> | ||
239 | <details key="name" value="eAttributes"/> | ||
240 | </eAnnotations> | ||
241 | </eStructuralFeatures> | ||
242 | <eStructuralFeatures xsi:type="ecore:EReference" name="eIDAttribute" eType="#//EAttribute" | ||
243 | changeable="false" volatile="true" transient="true" derived="true" resolveProxies="false"> | ||
244 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
245 | <details key="kind" value="attribute"/> | ||
246 | <details key="name" value="eIDAttribute"/> | ||
247 | </eAnnotations> | ||
248 | </eStructuralFeatures> | ||
249 | <eStructuralFeatures xsi:type="ecore:EReference" name="eReferences" upperBound="-1" | ||
250 | eType="#//EReference" changeable="false" volatile="true" transient="true" | ||
251 | derived="true"> | ||
252 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
253 | <details key="kind" value="attribute"/> | ||
254 | <details key="name" value="eReferences"/> | ||
255 | </eAnnotations> | ||
256 | </eStructuralFeatures> | ||
257 | <eStructuralFeatures xsi:type="ecore:EReference" name="eSuperTypes" upperBound="-1" | ||
258 | eType="#//EClass" unsettable="true"> | ||
259 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
260 | <details key="kind" value="attribute"/> | ||
261 | <details key="name" value="eSuperTypes"/> | ||
262 | </eAnnotations> | ||
263 | <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> | ||
264 | <details key="suppressedIsSetVisibility" value="true"/> | ||
265 | <details key="suppressedUnsetVisibility" value="true"/> | ||
266 | </eAnnotations> | ||
267 | </eStructuralFeatures> | ||
268 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="interface" eType="#//EBoolean"> | ||
269 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
270 | <details key="kind" value="attribute"/> | ||
271 | <details key="name" value="interface"/> | ||
272 | </eAnnotations> | ||
273 | </eStructuralFeatures> | ||
274 | </eClassifiers> | ||
275 | <eClassifiers xsi:type="ecore:EClass" name="EClassifier" abstract="true" eSuperTypes="#//ENamedElement"> | ||
276 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
277 | <details key="name" value="EClassifier"/> | ||
278 | <details key="kind" value="elementOnly"/> | ||
279 | </eAnnotations> | ||
280 | <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> | ||
281 | <details key="constraints" value="WellFormedInstanceTypeName UniqueTypeParameterNames"/> | ||
282 | </eAnnotations> | ||
283 | <eOperations name="isInstance" eType="#//EBoolean"> | ||
284 | <eParameters name="object" eType="#//EJavaObject"/> | ||
285 | </eOperations> | ||
286 | <eOperations name="getClassifierID" eType="#//EInt"/> | ||
287 | <eStructuralFeatures xsi:type="ecore:EReference" name="eTypeParameters" upperBound="-1" | ||
288 | eType="#//ETypeParameter" containment="true"> | ||
289 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
290 | <details key="kind" value="element"/> | ||
291 | <details key="name" value="eTypeParameters"/> | ||
292 | </eAnnotations> | ||
293 | </eStructuralFeatures> | ||
294 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultValue" eType="#//EJavaObject" | ||
295 | changeable="false" volatile="true" transient="true" derived="true"> | ||
296 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
297 | <details key="kind" value="attribute"/> | ||
298 | <details key="name" value="defaultValue"/> | ||
299 | </eAnnotations> | ||
300 | </eStructuralFeatures> | ||
301 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="instanceClass" changeable="false" | ||
302 | volatile="true" transient="true" derived="true"> | ||
303 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
304 | <details key="kind" value="attribute"/> | ||
305 | <details key="name" value="instanceClass"/> | ||
306 | </eAnnotations> | ||
307 | <eGenericType eClassifier="#//EJavaClass"> | ||
308 | <eTypeArguments/> | ||
309 | </eGenericType> | ||
310 | </eStructuralFeatures> | ||
311 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="instanceClassName" eType="#//EString" | ||
312 | volatile="true" unsettable="true"> | ||
313 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
314 | <details key="kind" value="attribute"/> | ||
315 | <details key="name" value="instanceClassName"/> | ||
316 | </eAnnotations> | ||
317 | <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> | ||
318 | <details key="suppressedIsSetVisibility" value="true"/> | ||
319 | <details key="suppressedUnsetVisibility" value="true"/> | ||
320 | </eAnnotations> | ||
321 | </eStructuralFeatures> | ||
322 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="instanceTypeName" eType="#//EString" | ||
323 | volatile="true" unsettable="true"> | ||
324 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
325 | <details key="kind" value="attribute"/> | ||
326 | <details key="name" value="instanceTypeName"/> | ||
327 | </eAnnotations> | ||
328 | <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> | ||
329 | <details key="suppressedIsSetVisibility" value="true"/> | ||
330 | <details key="suppressedUnsetVisibility" value="true"/> | ||
331 | </eAnnotations> | ||
332 | </eStructuralFeatures> | ||
333 | <eStructuralFeatures xsi:type="ecore:EReference" name="ePackage" eType="#//EPackage" | ||
334 | transient="true" eOpposite="#//EPackage/eClassifiers"/> | ||
335 | </eClassifiers> | ||
336 | <eClassifiers xsi:type="ecore:EClass" name="EDataType" eSuperTypes="#//EClassifier"> | ||
337 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
338 | <details key="name" value="EDataType"/> | ||
339 | <details key="kind" value="elementOnly"/> | ||
340 | </eAnnotations> | ||
341 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="serializable" eType="#//EBoolean" | ||
342 | defaultValueLiteral="true"> | ||
343 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
344 | <details key="kind" value="attribute"/> | ||
345 | <details key="name" value="serializable"/> | ||
346 | </eAnnotations> | ||
347 | </eStructuralFeatures> | ||
348 | </eClassifiers> | ||
349 | <eClassifiers xsi:type="ecore:EDataType" name="EDate" instanceClassName="java.util.Date"> | ||
350 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
351 | <details key="name" value="EDate"/> | ||
352 | </eAnnotations> | ||
353 | </eClassifiers> | ||
354 | <eClassifiers xsi:type="ecore:EDataType" name="EDiagnosticChain" instanceClassName="org.eclipse.emf.common.util.DiagnosticChain" | ||
355 | serializable="false"> | ||
356 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
357 | <details key="name" value="EDiagnosticChain"/> | ||
358 | </eAnnotations> | ||
359 | </eClassifiers> | ||
360 | <eClassifiers xsi:type="ecore:EDataType" name="EDouble" instanceClassName="double"> | ||
361 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
362 | <details key="name" value="EDouble"/> | ||
363 | <details key="baseType" value="http://www.eclipse.org/emf/2003/XMLType#double"/> | ||
364 | </eAnnotations> | ||
365 | </eClassifiers> | ||
366 | <eClassifiers xsi:type="ecore:EDataType" name="EDoubleObject" instanceClassName="java.lang.Double"> | ||
367 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
368 | <details key="name" value="EDouble:Object"/> | ||
369 | <details key="baseType" value="EDouble"/> | ||
370 | </eAnnotations> | ||
371 | </eClassifiers> | ||
372 | <eClassifiers xsi:type="ecore:EDataType" name="EEList" instanceClassName="org.eclipse.emf.common.util.EList" | ||
373 | serializable="false"> | ||
374 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
375 | <details key="name" value="EEList"/> | ||
376 | </eAnnotations> | ||
377 | <eTypeParameters name="E"/> | ||
378 | </eClassifiers> | ||
379 | <eClassifiers xsi:type="ecore:EClass" name="EEnum" eSuperTypes="#//EDataType"> | ||
380 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
381 | <details key="name" value="EEnum"/> | ||
382 | <details key="kind" value="elementOnly"/> | ||
383 | </eAnnotations> | ||
384 | <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> | ||
385 | <details key="constraints" value="UniqueEnumeratorNames UniqueEnumeratorLiterals"/> | ||
386 | </eAnnotations> | ||
387 | <eOperations name="getEEnumLiteral" eType="#//EEnumLiteral"> | ||
388 | <eParameters name="name" eType="#//EString"/> | ||
389 | </eOperations> | ||
390 | <eOperations name="getEEnumLiteral" eType="#//EEnumLiteral"> | ||
391 | <eParameters name="value" eType="#//EInt"/> | ||
392 | </eOperations> | ||
393 | <eOperations name="getEEnumLiteralByLiteral" eType="#//EEnumLiteral"> | ||
394 | <eParameters name="literal" eType="#//EString"/> | ||
395 | </eOperations> | ||
396 | <eStructuralFeatures xsi:type="ecore:EReference" name="eLiterals" upperBound="-1" | ||
397 | eType="#//EEnumLiteral" containment="true" resolveProxies="false" eOpposite="#//EEnumLiteral/eEnum"> | ||
398 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
399 | <details key="kind" value="element"/> | ||
400 | <details key="name" value="eLiterals"/> | ||
401 | </eAnnotations> | ||
402 | </eStructuralFeatures> | ||
403 | </eClassifiers> | ||
404 | <eClassifiers xsi:type="ecore:EDataType" name="EEnumerator" instanceClassName="org.eclipse.emf.common.util.Enumerator" | ||
405 | serializable="false"> | ||
406 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
407 | <details key="name" value="EEnumerator"/> | ||
408 | </eAnnotations> | ||
409 | </eClassifiers> | ||
410 | <eClassifiers xsi:type="ecore:EClass" name="EEnumLiteral" eSuperTypes="#//ENamedElement"> | ||
411 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
412 | <details key="name" value="EEnumLiteral"/> | ||
413 | <details key="kind" value="elementOnly"/> | ||
414 | </eAnnotations> | ||
415 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="instance" eType="#//EEnumerator" | ||
416 | transient="true"> | ||
417 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
418 | <details key="kind" value="attribute"/> | ||
419 | <details key="name" value="instance"/> | ||
420 | </eAnnotations> | ||
421 | </eStructuralFeatures> | ||
422 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="literal" eType="#//EString"> | ||
423 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
424 | <details key="kind" value="attribute"/> | ||
425 | <details key="name" value="literal"/> | ||
426 | </eAnnotations> | ||
427 | </eStructuralFeatures> | ||
428 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="#//EInt"> | ||
429 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
430 | <details key="kind" value="attribute"/> | ||
431 | <details key="name" value="value"/> | ||
432 | </eAnnotations> | ||
433 | </eStructuralFeatures> | ||
434 | <eStructuralFeatures xsi:type="ecore:EReference" name="eEnum" eType="#//EEnum" | ||
435 | transient="true" eOpposite="#//EEnum/eLiterals"/> | ||
436 | </eClassifiers> | ||
437 | <eClassifiers xsi:type="ecore:EClass" name="EFactory" eSuperTypes="#//EModelElement"> | ||
438 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
439 | <details key="name" value="EFactory"/> | ||
440 | <details key="kind" value="elementOnly"/> | ||
441 | </eAnnotations> | ||
442 | <eOperations name="create" eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"> | ||
443 | <eParameters name="eClass" eType="#//EClass"/> | ||
444 | </eOperations> | ||
445 | <eOperations name="createFromString" eType="#//EJavaObject"> | ||
446 | <eParameters name="eDataType" eType="#//EDataType"/> | ||
447 | <eParameters name="literalValue" eType="#//EString"/> | ||
448 | </eOperations> | ||
449 | <eOperations name="convertToString" eType="#//EString"> | ||
450 | <eParameters name="eDataType" eType="#//EDataType"/> | ||
451 | <eParameters name="instanceValue" eType="#//EJavaObject"/> | ||
452 | </eOperations> | ||
453 | <eStructuralFeatures xsi:type="ecore:EReference" name="ePackage" lowerBound="1" | ||
454 | eType="#//EPackage" transient="true" resolveProxies="false" eOpposite="#//EPackage/eFactoryInstance"> | ||
455 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
456 | <details key="kind" value="attribute"/> | ||
457 | <details key="name" value="ePackage"/> | ||
458 | </eAnnotations> | ||
459 | </eStructuralFeatures> | ||
460 | </eClassifiers> | ||
461 | <eClassifiers xsi:type="ecore:EDataType" name="EFeatureMap" instanceClassName="org.eclipse.emf.ecore.util.FeatureMap" | ||
462 | serializable="false"> | ||
463 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
464 | <details key="name" value="EFeatureMap"/> | ||
465 | </eAnnotations> | ||
466 | </eClassifiers> | ||
467 | <eClassifiers xsi:type="ecore:EDataType" name="EFeatureMapEntry" instanceClassName="org.eclipse.emf.ecore.util.FeatureMap$Entry" | ||
468 | serializable="false"> | ||
469 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
470 | <details key="name" value="EFeatureMapEntry"/> | ||
471 | </eAnnotations> | ||
472 | </eClassifiers> | ||
473 | <eClassifiers xsi:type="ecore:EDataType" name="EFloat" instanceClassName="float"> | ||
474 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
475 | <details key="name" value="EFloat"/> | ||
476 | <details key="baseType" value="http://www.eclipse.org/emf/2003/XMLType#float"/> | ||
477 | </eAnnotations> | ||
478 | </eClassifiers> | ||
479 | <eClassifiers xsi:type="ecore:EDataType" name="EFloatObject" instanceClassName="java.lang.Float"> | ||
480 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
481 | <details key="name" value="EFloat:Object"/> | ||
482 | <details key="baseType" value="EFloat"/> | ||
483 | </eAnnotations> | ||
484 | </eClassifiers> | ||
485 | <eClassifiers xsi:type="ecore:EClass" name="EGenericType"> | ||
486 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
487 | <details key="name" value="EGenericType"/> | ||
488 | <details key="kind" value="elementOnly"/> | ||
489 | </eAnnotations> | ||
490 | <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> | ||
491 | <details key="constraints" value="ConsistentType ConsistentBounds ConsistentArguments"/> | ||
492 | </eAnnotations> | ||
493 | <eStructuralFeatures xsi:type="ecore:EReference" name="eUpperBound" eType="#//EGenericType" | ||
494 | containment="true" resolveProxies="false"> | ||
495 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
496 | <details key="kind" value="element"/> | ||
497 | <details key="name" value="eUpperBound"/> | ||
498 | </eAnnotations> | ||
499 | </eStructuralFeatures> | ||
500 | <eStructuralFeatures xsi:type="ecore:EReference" name="eTypeArguments" upperBound="-1" | ||
501 | eType="#//EGenericType" containment="true" resolveProxies="false"> | ||
502 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
503 | <details key="kind" value="element"/> | ||
504 | <details key="name" value="eTypeArguments"/> | ||
505 | </eAnnotations> | ||
506 | </eStructuralFeatures> | ||
507 | <eStructuralFeatures xsi:type="ecore:EReference" name="eLowerBound" eType="#//EGenericType" | ||
508 | containment="true" resolveProxies="false"> | ||
509 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
510 | <details key="kind" value="element"/> | ||
511 | <details key="name" value="eLowerBound"/> | ||
512 | </eAnnotations> | ||
513 | </eStructuralFeatures> | ||
514 | <eStructuralFeatures xsi:type="ecore:EReference" name="eClassifier" eType="#//EClassifier"> | ||
515 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
516 | <details key="kind" value="attribute"/> | ||
517 | <details key="name" value="eClassifier"/> | ||
518 | </eAnnotations> | ||
519 | </eStructuralFeatures> | ||
520 | <eStructuralFeatures xsi:type="ecore:EReference" name="eRawType" lowerBound="1" | ||
521 | eType="#//EClassifier" changeable="false" transient="true" derived="true"> | ||
522 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
523 | <details key="kind" value="attribute"/> | ||
524 | <details key="name" value="eRawType"/> | ||
525 | </eAnnotations> | ||
526 | </eStructuralFeatures> | ||
527 | <eStructuralFeatures xsi:type="ecore:EReference" name="eTypeParameter" eType="#//ETypeParameter" | ||
528 | resolveProxies="false"> | ||
529 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
530 | <details key="kind" value="attribute"/> | ||
531 | <details key="name" value="eTypeParameter"/> | ||
532 | </eAnnotations> | ||
533 | </eStructuralFeatures> | ||
534 | </eClassifiers> | ||
535 | <eClassifiers xsi:type="ecore:EDataType" name="EInt" instanceClassName="int"> | ||
536 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
537 | <details key="name" value="EInt"/> | ||
538 | </eAnnotations> | ||
539 | </eClassifiers> | ||
540 | <eClassifiers xsi:type="ecore:EDataType" name="EIntegerObject" instanceClassName="java.lang.Integer"> | ||
541 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
542 | <details key="name" value="EInt:Object"/> | ||
543 | <details key="baseType" value="EInt"/> | ||
544 | </eAnnotations> | ||
545 | </eClassifiers> | ||
546 | <eClassifiers xsi:type="ecore:EDataType" name="EInvocationTargetException" instanceClassName="java.lang.reflect.InvocationTargetException" | ||
547 | serializable="false"> | ||
548 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
549 | <details key="name" value="EInvocationTargetException"/> | ||
550 | </eAnnotations> | ||
551 | </eClassifiers> | ||
552 | <eClassifiers xsi:type="ecore:EDataType" name="EJavaClass" instanceClassName="java.lang.Class"> | ||
553 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
554 | <details key="name" value="EJavaClass"/> | ||
555 | </eAnnotations> | ||
556 | <eTypeParameters name="T"/> | ||
557 | </eClassifiers> | ||
558 | <eClassifiers xsi:type="ecore:EDataType" name="EJavaObject" instanceClassName="java.lang.Object"> | ||
559 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
560 | <details key="name" value="EJavaObject"/> | ||
561 | </eAnnotations> | ||
562 | </eClassifiers> | ||
563 | <eClassifiers xsi:type="ecore:EDataType" name="ELong" instanceClassName="long"> | ||
564 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
565 | <details key="name" value="ELong"/> | ||
566 | <details key="baseType" value="http://www.eclipse.org/emf/2003/XMLType#long"/> | ||
567 | </eAnnotations> | ||
568 | </eClassifiers> | ||
569 | <eClassifiers xsi:type="ecore:EDataType" name="ELongObject" instanceClassName="java.lang.Long"> | ||
570 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
571 | <details key="name" value="ELong:Object"/> | ||
572 | <details key="baseType" value="ELong"/> | ||
573 | </eAnnotations> | ||
574 | </eClassifiers> | ||
575 | <eClassifiers xsi:type="ecore:EDataType" name="EMap" instanceClassName="java.util.Map" | ||
576 | serializable="false"> | ||
577 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
578 | <details key="name" value="EMap"/> | ||
579 | </eAnnotations> | ||
580 | <eTypeParameters name="K"/> | ||
581 | <eTypeParameters name="V"/> | ||
582 | </eClassifiers> | ||
583 | <eClassifiers xsi:type="ecore:EClass" name="EModelElement" abstract="true"> | ||
584 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
585 | <details key="name" value="EModelElement"/> | ||
586 | <details key="kind" value="elementOnly"/> | ||
587 | </eAnnotations> | ||
588 | <eOperations name="getEAnnotation" eType="#//EAnnotation"> | ||
589 | <eParameters name="source" eType="#//EString"/> | ||
590 | </eOperations> | ||
591 | <eStructuralFeatures xsi:type="ecore:EReference" name="eAnnotations" upperBound="-1" | ||
592 | eType="#//EAnnotation" containment="true" resolveProxies="false" eOpposite="#//EAnnotation/eModelElement"> | ||
593 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
594 | <details key="kind" value="element"/> | ||
595 | <details key="name" value="eAnnotations"/> | ||
596 | </eAnnotations> | ||
597 | </eStructuralFeatures> | ||
598 | </eClassifiers> | ||
599 | <eClassifiers xsi:type="ecore:EClass" name="ENamedElement" abstract="true" eSuperTypes="#//EModelElement"> | ||
600 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
601 | <details key="name" value="ENamedElement"/> | ||
602 | <details key="kind" value="elementOnly"/> | ||
603 | </eAnnotations> | ||
604 | <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> | ||
605 | <details key="constraints" value="WellFormedName"/> | ||
606 | </eAnnotations> | ||
607 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="#//EString"> | ||
608 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
609 | <details key="kind" value="attribute"/> | ||
610 | <details key="name" value="name"/> | ||
611 | </eAnnotations> | ||
612 | </eStructuralFeatures> | ||
613 | </eClassifiers> | ||
614 | <eClassifiers xsi:type="ecore:EClass" name="EObject"> | ||
615 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
616 | <details key="name" value="EObject"/> | ||
617 | <details key="kind" value="empty"/> | ||
618 | </eAnnotations> | ||
619 | <eOperations name="eClass" eType="#//EClass"/> | ||
620 | <eOperations name="eIsProxy" eType="#//EBoolean"/> | ||
621 | <eOperations name="eResource" eType="#//EResource"/> | ||
622 | <eOperations name="eContainer" eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"/> | ||
623 | <eOperations name="eContainingFeature" eType="#//EStructuralFeature"/> | ||
624 | <eOperations name="eContainmentFeature" eType="#//EReference"/> | ||
625 | <eOperations name="eContents"> | ||
626 | <eGenericType eClassifier="#//EEList"> | ||
627 | <eTypeArguments eClassifier="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"/> | ||
628 | </eGenericType> | ||
629 | </eOperations> | ||
630 | <eOperations name="eAllContents"> | ||
631 | <eGenericType eClassifier="#//ETreeIterator"> | ||
632 | <eTypeArguments eClassifier="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"/> | ||
633 | </eGenericType> | ||
634 | </eOperations> | ||
635 | <eOperations name="eCrossReferences"> | ||
636 | <eGenericType eClassifier="#//EEList"> | ||
637 | <eTypeArguments eClassifier="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"/> | ||
638 | </eGenericType> | ||
639 | </eOperations> | ||
640 | <eOperations name="eGet" eType="#//EJavaObject"> | ||
641 | <eParameters name="feature" eType="#//EStructuralFeature"/> | ||
642 | </eOperations> | ||
643 | <eOperations name="eGet" eType="#//EJavaObject"> | ||
644 | <eParameters name="feature" eType="#//EStructuralFeature"/> | ||
645 | <eParameters name="resolve" eType="#//EBoolean"/> | ||
646 | </eOperations> | ||
647 | <eOperations name="eSet"> | ||
648 | <eParameters name="feature" eType="#//EStructuralFeature"/> | ||
649 | <eParameters name="newValue" eType="#//EJavaObject"/> | ||
650 | </eOperations> | ||
651 | <eOperations name="eIsSet" eType="#//EBoolean"> | ||
652 | <eParameters name="feature" eType="#//EStructuralFeature"/> | ||
653 | </eOperations> | ||
654 | <eOperations name="eUnset"> | ||
655 | <eParameters name="feature" eType="#//EStructuralFeature"/> | ||
656 | </eOperations> | ||
657 | <eOperations name="eInvoke" eType="#//EJavaObject" eExceptions="#//EInvocationTargetException"> | ||
658 | <eParameters name="operation" eType="#//EOperation"/> | ||
659 | <eParameters name="arguments"> | ||
660 | <eGenericType eClassifier="#//EEList"> | ||
661 | <eTypeArguments/> | ||
662 | </eGenericType> | ||
663 | </eParameters> | ||
664 | </eOperations> | ||
665 | </eClassifiers> | ||
666 | <eClassifiers xsi:type="ecore:EClass" name="EOperation" eSuperTypes="#//ETypedElement"> | ||
667 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
668 | <details key="name" value="EOperation"/> | ||
669 | <details key="kind" value="elementOnly"/> | ||
670 | </eAnnotations> | ||
671 | <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> | ||
672 | <details key="constraints" value="UniqueParameterNames UniqueTypeParameterNames NoRepeatingVoid"/> | ||
673 | </eAnnotations> | ||
674 | <eOperations name="getOperationID" eType="#//EInt"/> | ||
675 | <eOperations name="isOverrideOf" eType="#//EBoolean"> | ||
676 | <eParameters name="someOperation" eType="#//EOperation"/> | ||
677 | </eOperations> | ||
678 | <eStructuralFeatures xsi:type="ecore:EReference" name="eTypeParameters" upperBound="-1" | ||
679 | eType="#//ETypeParameter" containment="true"> | ||
680 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
681 | <details key="kind" value="element"/> | ||
682 | <details key="name" value="eTypeParameters"/> | ||
683 | </eAnnotations> | ||
684 | </eStructuralFeatures> | ||
685 | <eStructuralFeatures xsi:type="ecore:EReference" name="eParameters" upperBound="-1" | ||
686 | eType="#//EParameter" containment="true" resolveProxies="false" eOpposite="#//EParameter/eOperation"> | ||
687 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
688 | <details key="kind" value="element"/> | ||
689 | <details key="name" value="eParameters"/> | ||
690 | </eAnnotations> | ||
691 | </eStructuralFeatures> | ||
692 | <eStructuralFeatures xsi:type="ecore:EReference" name="eGenericExceptions" upperBound="-1" | ||
693 | eType="#//EGenericType" unsettable="true" containment="true" resolveProxies="false"> | ||
694 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
695 | <details key="kind" value="element"/> | ||
696 | <details key="name" value="eGenericExceptions"/> | ||
697 | </eAnnotations> | ||
698 | <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> | ||
699 | <details key="suppressedIsSetVisibility" value="true"/> | ||
700 | <details key="suppressedUnsetVisibility" value="true"/> | ||
701 | </eAnnotations> | ||
702 | </eStructuralFeatures> | ||
703 | <eStructuralFeatures xsi:type="ecore:EReference" name="eExceptions" upperBound="-1" | ||
704 | eType="#//EClassifier" unsettable="true"> | ||
705 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
706 | <details key="kind" value="attribute"/> | ||
707 | <details key="name" value="eExceptions"/> | ||
708 | </eAnnotations> | ||
709 | <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> | ||
710 | <details key="suppressedIsSetVisibility" value="true"/> | ||
711 | <details key="suppressedUnsetVisibility" value="true"/> | ||
712 | </eAnnotations> | ||
713 | </eStructuralFeatures> | ||
714 | <eStructuralFeatures xsi:type="ecore:EReference" name="eContainingClass" eType="#//EClass" | ||
715 | transient="true" eOpposite="#//EClass/eOperations"/> | ||
716 | </eClassifiers> | ||
717 | <eClassifiers xsi:type="ecore:EClass" name="EPackage" eSuperTypes="#//ENamedElement"> | ||
718 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
719 | <details key="name" value="EPackage"/> | ||
720 | <details key="kind" value="elementOnly"/> | ||
721 | </eAnnotations> | ||
722 | <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> | ||
723 | <details key="constraints" value="WellFormedNsURI WellFormedNsPrefix UniqueSubpackageNames UniqueClassifierNames UniqueNsURIs"/> | ||
724 | </eAnnotations> | ||
725 | <eOperations name="getEClassifier" eType="#//EClassifier"> | ||
726 | <eParameters name="name" eType="#//EString"/> | ||
727 | </eOperations> | ||
728 | <eStructuralFeatures xsi:type="ecore:EReference" name="eClassifiers" upperBound="-1" | ||
729 | eType="#//EClassifier" containment="true" eOpposite="#//EClassifier/ePackage"> | ||
730 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
731 | <details key="kind" value="element"/> | ||
732 | <details key="name" value="eClassifiers"/> | ||
733 | </eAnnotations> | ||
734 | </eStructuralFeatures> | ||
735 | <eStructuralFeatures xsi:type="ecore:EReference" name="eSubpackages" upperBound="-1" | ||
736 | eType="#//EPackage" containment="true" eOpposite="#//EPackage/eSuperPackage"> | ||
737 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
738 | <details key="kind" value="element"/> | ||
739 | <details key="name" value="eSubpackages"/> | ||
740 | </eAnnotations> | ||
741 | </eStructuralFeatures> | ||
742 | <eStructuralFeatures xsi:type="ecore:EReference" name="eFactoryInstance" lowerBound="1" | ||
743 | eType="#//EFactory" transient="true" resolveProxies="false" eOpposite="#//EFactory/ePackage"> | ||
744 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
745 | <details key="kind" value="attribute"/> | ||
746 | <details key="name" value="eFactoryInstance"/> | ||
747 | </eAnnotations> | ||
748 | </eStructuralFeatures> | ||
749 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="nsPrefix" eType="#//EString"> | ||
750 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
751 | <details key="kind" value="attribute"/> | ||
752 | <details key="name" value="nsPrefix"/> | ||
753 | </eAnnotations> | ||
754 | </eStructuralFeatures> | ||
755 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="nsURI" eType="#//EString"> | ||
756 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
757 | <details key="kind" value="attribute"/> | ||
758 | <details key="name" value="nsURI"/> | ||
759 | </eAnnotations> | ||
760 | </eStructuralFeatures> | ||
761 | <eStructuralFeatures xsi:type="ecore:EReference" name="eSuperPackage" eType="#//EPackage" | ||
762 | transient="true" eOpposite="#//EPackage/eSubpackages"/> | ||
763 | </eClassifiers> | ||
764 | <eClassifiers xsi:type="ecore:EClass" name="EParameter" eSuperTypes="#//ETypedElement"> | ||
765 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
766 | <details key="name" value="EParameter"/> | ||
767 | <details key="kind" value="elementOnly"/> | ||
768 | </eAnnotations> | ||
769 | <eStructuralFeatures xsi:type="ecore:EReference" name="eOperation" eType="#//EOperation" | ||
770 | transient="true" eOpposite="#//EOperation/eParameters"/> | ||
771 | </eClassifiers> | ||
772 | <eClassifiers xsi:type="ecore:EClass" name="EReference" eSuperTypes="#//EStructuralFeature"> | ||
773 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
774 | <details key="name" value="EReference"/> | ||
775 | <details key="kind" value="elementOnly"/> | ||
776 | </eAnnotations> | ||
777 | <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> | ||
778 | <details key="constraints" value="ConsistentOpposite SingleContainer ConsistentKeys ConsistentUnique ConsistentContainer"/> | ||
779 | </eAnnotations> | ||
780 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="container" eType="#//EBoolean" | ||
781 | changeable="false" volatile="true" transient="true" derived="true"> | ||
782 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
783 | <details key="kind" value="attribute"/> | ||
784 | <details key="name" value="container"/> | ||
785 | </eAnnotations> | ||
786 | </eStructuralFeatures> | ||
787 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="containment" eType="#//EBoolean"> | ||
788 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
789 | <details key="kind" value="attribute"/> | ||
790 | <details key="name" value="containment"/> | ||
791 | </eAnnotations> | ||
792 | </eStructuralFeatures> | ||
793 | <eStructuralFeatures xsi:type="ecore:EReference" name="eKeys" upperBound="-1" | ||
794 | eType="#//EAttribute"> | ||
795 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
796 | <details key="kind" value="attribute"/> | ||
797 | <details key="name" value="eKeys"/> | ||
798 | </eAnnotations> | ||
799 | </eStructuralFeatures> | ||
800 | <eStructuralFeatures xsi:type="ecore:EReference" name="eOpposite" eType="#//EReference"> | ||
801 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
802 | <details key="kind" value="attribute"/> | ||
803 | <details key="name" value="eOpposite"/> | ||
804 | </eAnnotations> | ||
805 | </eStructuralFeatures> | ||
806 | <eStructuralFeatures xsi:type="ecore:EReference" name="eReferenceType" lowerBound="1" | ||
807 | eType="#//EClass" changeable="false" volatile="true" transient="true" derived="true"> | ||
808 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
809 | <details key="kind" value="attribute"/> | ||
810 | <details key="name" value="eReferenceType"/> | ||
811 | </eAnnotations> | ||
812 | </eStructuralFeatures> | ||
813 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="resolveProxies" eType="#//EBoolean" | ||
814 | defaultValueLiteral="true"> | ||
815 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
816 | <details key="kind" value="attribute"/> | ||
817 | <details key="name" value="resolveProxies"/> | ||
818 | </eAnnotations> | ||
819 | </eStructuralFeatures> | ||
820 | </eClassifiers> | ||
821 | <eClassifiers xsi:type="ecore:EDataType" name="EResource" instanceClassName="org.eclipse.emf.ecore.resource.Resource" | ||
822 | serializable="false"> | ||
823 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
824 | <details key="name" value="EResource"/> | ||
825 | </eAnnotations> | ||
826 | </eClassifiers> | ||
827 | <eClassifiers xsi:type="ecore:EDataType" name="EResourceSet" instanceClassName="org.eclipse.emf.ecore.resource.ResourceSet" | ||
828 | serializable="false"> | ||
829 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
830 | <details key="name" value="EResourceSet"/> | ||
831 | </eAnnotations> | ||
832 | </eClassifiers> | ||
833 | <eClassifiers xsi:type="ecore:EDataType" name="EShort" instanceClassName="short"> | ||
834 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
835 | <details key="name" value="EShort"/> | ||
836 | <details key="baseType" value="http://www.eclipse.org/emf/2003/XMLType#short"/> | ||
837 | </eAnnotations> | ||
838 | </eClassifiers> | ||
839 | <eClassifiers xsi:type="ecore:EDataType" name="EShortObject" instanceClassName="java.lang.Short"> | ||
840 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
841 | <details key="name" value="EShort:Object"/> | ||
842 | <details key="baseType" value="EShort"/> | ||
843 | </eAnnotations> | ||
844 | </eClassifiers> | ||
845 | <eClassifiers xsi:type="ecore:EDataType" name="EString" instanceClassName="java.lang.String"> | ||
846 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
847 | <details key="name" value="EString"/> | ||
848 | <details key="baseType" value="http://www.eclipse.org/emf/2003/XMLType#string"/> | ||
849 | </eAnnotations> | ||
850 | </eClassifiers> | ||
851 | <eClassifiers xsi:type="ecore:EClass" name="EStringToStringMapEntry" instanceClassName="java.util.Map$Entry"> | ||
852 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
853 | <details key="name" value="EStringToStringMapEntry"/> | ||
854 | <details key="kind" value="empty"/> | ||
855 | </eAnnotations> | ||
856 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="key" eType="#//EString"> | ||
857 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
858 | <details key="kind" value="attribute"/> | ||
859 | <details key="name" value="key"/> | ||
860 | </eAnnotations> | ||
861 | </eStructuralFeatures> | ||
862 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="#//EString"> | ||
863 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
864 | <details key="kind" value="attribute"/> | ||
865 | <details key="name" value="value"/> | ||
866 | </eAnnotations> | ||
867 | </eStructuralFeatures> | ||
868 | </eClassifiers> | ||
869 | <eClassifiers xsi:type="ecore:EClass" name="EStructuralFeature" abstract="true" | ||
870 | eSuperTypes="#//ETypedElement"> | ||
871 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
872 | <details key="name" value="EStructuralFeature"/> | ||
873 | <details key="kind" value="elementOnly"/> | ||
874 | </eAnnotations> | ||
875 | <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> | ||
876 | <details key="constraints" value="ValidDefaultValueLiteral"/> | ||
877 | </eAnnotations> | ||
878 | <eOperations name="getFeatureID" eType="#//EInt"/> | ||
879 | <eOperations name="getContainerClass"> | ||
880 | <eGenericType eClassifier="#//EJavaClass"> | ||
881 | <eTypeArguments/> | ||
882 | </eGenericType> | ||
883 | </eOperations> | ||
884 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="changeable" eType="#//EBoolean" | ||
885 | defaultValueLiteral="true"> | ||
886 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
887 | <details key="kind" value="attribute"/> | ||
888 | <details key="name" value="changeable"/> | ||
889 | </eAnnotations> | ||
890 | </eStructuralFeatures> | ||
891 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultValue" eType="#//EJavaObject" | ||
892 | changeable="false" volatile="true" transient="true" derived="true"> | ||
893 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
894 | <details key="kind" value="attribute"/> | ||
895 | <details key="name" value="defaultValue"/> | ||
896 | </eAnnotations> | ||
897 | </eStructuralFeatures> | ||
898 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultValueLiteral" eType="#//EString"> | ||
899 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
900 | <details key="kind" value="attribute"/> | ||
901 | <details key="name" value="defaultValueLiteral"/> | ||
902 | </eAnnotations> | ||
903 | </eStructuralFeatures> | ||
904 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="derived" eType="#//EBoolean"> | ||
905 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
906 | <details key="kind" value="attribute"/> | ||
907 | <details key="name" value="derived"/> | ||
908 | </eAnnotations> | ||
909 | </eStructuralFeatures> | ||
910 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="transient" eType="#//EBoolean"> | ||
911 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
912 | <details key="kind" value="attribute"/> | ||
913 | <details key="name" value="transient"/> | ||
914 | </eAnnotations> | ||
915 | </eStructuralFeatures> | ||
916 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="unsettable" eType="#//EBoolean"> | ||
917 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
918 | <details key="kind" value="attribute"/> | ||
919 | <details key="name" value="unsettable"/> | ||
920 | </eAnnotations> | ||
921 | </eStructuralFeatures> | ||
922 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="volatile" eType="#//EBoolean"> | ||
923 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
924 | <details key="kind" value="attribute"/> | ||
925 | <details key="name" value="volatile"/> | ||
926 | </eAnnotations> | ||
927 | </eStructuralFeatures> | ||
928 | <eStructuralFeatures xsi:type="ecore:EReference" name="eContainingClass" eType="#//EClass" | ||
929 | transient="true" eOpposite="#//EClass/eStructuralFeatures"/> | ||
930 | </eClassifiers> | ||
931 | <eClassifiers xsi:type="ecore:EDataType" name="ETreeIterator" instanceClassName="org.eclipse.emf.common.util.TreeIterator" | ||
932 | serializable="false"> | ||
933 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
934 | <details key="name" value="ETreeIterator"/> | ||
935 | </eAnnotations> | ||
936 | <eTypeParameters name="E"/> | ||
937 | </eClassifiers> | ||
938 | <eClassifiers xsi:type="ecore:EClass" name="ETypedElement" abstract="true" eSuperTypes="#//ENamedElement"> | ||
939 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
940 | <details key="name" value="ETypedElement"/> | ||
941 | <details key="kind" value="elementOnly"/> | ||
942 | </eAnnotations> | ||
943 | <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> | ||
944 | <details key="constraints" value="ValidLowerBound ValidUpperBound ConsistentBounds ValidType"/> | ||
945 | </eAnnotations> | ||
946 | <eStructuralFeatures xsi:type="ecore:EReference" name="eGenericType" eType="#//EGenericType" | ||
947 | volatile="true" unsettable="true" containment="true" resolveProxies="false"> | ||
948 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
949 | <details key="kind" value="element"/> | ||
950 | <details key="name" value="eGenericType"/> | ||
951 | </eAnnotations> | ||
952 | <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> | ||
953 | <details key="suppressedIsSetVisibility" value="true"/> | ||
954 | <details key="suppressedUnsetVisibility" value="true"/> | ||
955 | </eAnnotations> | ||
956 | </eStructuralFeatures> | ||
957 | <eStructuralFeatures xsi:type="ecore:EReference" name="eType" eType="#//EClassifier" | ||
958 | volatile="true" unsettable="true"> | ||
959 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
960 | <details key="kind" value="attribute"/> | ||
961 | <details key="name" value="eType"/> | ||
962 | </eAnnotations> | ||
963 | <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel"> | ||
964 | <details key="suppressedIsSetVisibility" value="true"/> | ||
965 | <details key="suppressedUnsetVisibility" value="true"/> | ||
966 | </eAnnotations> | ||
967 | </eStructuralFeatures> | ||
968 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="lowerBound" eType="#//EInt"> | ||
969 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
970 | <details key="kind" value="attribute"/> | ||
971 | <details key="name" value="lowerBound"/> | ||
972 | </eAnnotations> | ||
973 | </eStructuralFeatures> | ||
974 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="many" eType="#//EBoolean" | ||
975 | changeable="false" volatile="true" transient="true" derived="true"> | ||
976 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
977 | <details key="kind" value="attribute"/> | ||
978 | <details key="name" value="many"/> | ||
979 | </eAnnotations> | ||
980 | </eStructuralFeatures> | ||
981 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="ordered" eType="#//EBoolean" | ||
982 | defaultValueLiteral="true"> | ||
983 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
984 | <details key="kind" value="attribute"/> | ||
985 | <details key="name" value="ordered"/> | ||
986 | </eAnnotations> | ||
987 | </eStructuralFeatures> | ||
988 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="required" eType="#//EBoolean" | ||
989 | changeable="false" volatile="true" transient="true" derived="true"> | ||
990 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
991 | <details key="kind" value="attribute"/> | ||
992 | <details key="name" value="required"/> | ||
993 | </eAnnotations> | ||
994 | </eStructuralFeatures> | ||
995 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="unique" eType="#//EBoolean" | ||
996 | defaultValueLiteral="true"> | ||
997 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
998 | <details key="kind" value="attribute"/> | ||
999 | <details key="name" value="unique"/> | ||
1000 | </eAnnotations> | ||
1001 | </eStructuralFeatures> | ||
1002 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="upperBound" eType="#//EInt" | ||
1003 | defaultValueLiteral="1"> | ||
1004 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
1005 | <details key="kind" value="attribute"/> | ||
1006 | <details key="name" value="upperBound"/> | ||
1007 | </eAnnotations> | ||
1008 | </eStructuralFeatures> | ||
1009 | </eClassifiers> | ||
1010 | <eClassifiers xsi:type="ecore:EClass" name="ETypeParameter" eSuperTypes="#//ENamedElement"> | ||
1011 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
1012 | <details key="name" value="ETypeParameter"/> | ||
1013 | <details key="kind" value="elementOnly"/> | ||
1014 | </eAnnotations> | ||
1015 | <eStructuralFeatures xsi:type="ecore:EReference" name="eBounds" upperBound="-1" | ||
1016 | eType="#//EGenericType" containment="true" resolveProxies="false"> | ||
1017 | <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | ||
1018 | <details key="kind" value="element"/> | ||
1019 | <details key="name" value="eBounds"/> | ||
1020 | </eAnnotations> | ||
1021 | </eStructuralFeatures> | ||
1022 | </eClassifiers> | ||
1023 | </ecore:EPackage> | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/plugin.xml b/Metrics/Metrics-Calculation/SocialNetwork_plugin/plugin.xml index 6f4ab31b..6ac719c8 100644 --- a/Metrics/Metrics-Calculation/SocialNetwork_plugin/plugin.xml +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/plugin.xml | |||
@@ -12,4 +12,9 @@ | |||
12 | <query-specification fqn="ca.mcgill.ecse.socialnetwork.plugin.friendship"/> | 12 | <query-specification fqn="ca.mcgill.ecse.socialnetwork.plugin.friendship"/> |
13 | </group> | 13 | </group> |
14 | </extension> | 14 | </extension> |
15 | <extension id="queries.Ecore_pattern" point="org.eclipse.viatra.query.runtime.queryspecification"> | ||
16 | <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:queries.Ecore_pattern" id="queries.Ecore_pattern"> | ||
17 | <query-specification fqn="queries.sameSuperClass"/> | ||
18 | </group> | ||
19 | </extension> | ||
15 | </plugin> | 20 | </plugin> |
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/queries/queries/ecore_pattern.vql b/Metrics/Metrics-Calculation/SocialNetwork_plugin/queries/queries/ecore_pattern.vql new file mode 100644 index 00000000..a6f384d9 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/queries/queries/ecore_pattern.vql | |||
@@ -0,0 +1,9 @@ | |||
1 | package queries | ||
2 | import epackage "http://www.eclipse.org/emf/2002/Ecore" | ||
3 | |||
4 | @Constraint(severity="error", message="error", key = {c}) | ||
5 | pattern sameSuperClass(c : EClass, s1 : EClass, s2: EClass) { | ||
6 | EClass.eSuperTypes(c, s1); | ||
7 | EClass.eSuperTypes(c, s2); | ||
8 | s1 == s2; | ||
9 | } \ No newline at end of file | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/src-gen/queries/.gitignore b/Metrics/Metrics-Calculation/SocialNetwork_plugin/src-gen/queries/.gitignore new file mode 100644 index 00000000..121edf31 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/src-gen/queries/.gitignore | |||
@@ -0,0 +1,3 @@ | |||
1 | /.Ecore_pattern.java._trace | ||
2 | /.MultipleTransitionFromEntry.java._trace | ||
3 | /.SameSuperClass.java._trace | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/src-gen/queries/Ecore_pattern.java b/Metrics/Metrics-Calculation/SocialNetwork_plugin/src-gen/queries/Ecore_pattern.java new file mode 100644 index 00000000..e2627646 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/src-gen/queries/Ecore_pattern.java | |||
@@ -0,0 +1,53 @@ | |||
1 | /** | ||
2 | * Generated from platform:/resource/SocialNetwork_plugin/queries/queries/ecore_pattern.vql | ||
3 | */ | ||
4 | package queries; | ||
5 | |||
6 | import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; | ||
7 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedPatternGroup; | ||
8 | import queries.SameSuperClass; | ||
9 | |||
10 | /** | ||
11 | * A pattern group formed of all public patterns defined in ecore_pattern.vql. | ||
12 | * | ||
13 | * <p>Use the static instance as any {@link interface org.eclipse.viatra.query.runtime.api.IQueryGroup}, to conveniently prepare | ||
14 | * a VIATRA Query engine for matching all patterns originally defined in file ecore_pattern.vql, | ||
15 | * in order to achieve better performance than one-by-one on-demand matcher initialization. | ||
16 | * | ||
17 | * <p> From package queries, the group contains the definition of the following patterns: <ul> | ||
18 | * <li>sameSuperClass</li> | ||
19 | * </ul> | ||
20 | * | ||
21 | * @see IQueryGroup | ||
22 | * | ||
23 | */ | ||
24 | @SuppressWarnings("all") | ||
25 | public final class Ecore_pattern extends BaseGeneratedPatternGroup { | ||
26 | /** | ||
27 | * Access the pattern group. | ||
28 | * | ||
29 | * @return the singleton instance of the group | ||
30 | * @throws ViatraQueryRuntimeException if there was an error loading the generated code of pattern specifications | ||
31 | * | ||
32 | */ | ||
33 | public static Ecore_pattern instance() { | ||
34 | if (INSTANCE == null) { | ||
35 | INSTANCE = new Ecore_pattern(); | ||
36 | } | ||
37 | return INSTANCE; | ||
38 | } | ||
39 | |||
40 | private static Ecore_pattern INSTANCE; | ||
41 | |||
42 | private Ecore_pattern() { | ||
43 | querySpecifications.add(SameSuperClass.instance()); | ||
44 | } | ||
45 | |||
46 | public SameSuperClass getSameSuperClass() { | ||
47 | return SameSuperClass.instance(); | ||
48 | } | ||
49 | |||
50 | public SameSuperClass.Matcher getSameSuperClass(final ViatraQueryEngine engine) { | ||
51 | return SameSuperClass.Matcher.on(engine); | ||
52 | } | ||
53 | } | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/src-gen/queries/SameSuperClass.java b/Metrics/Metrics-Calculation/SocialNetwork_plugin/src-gen/queries/SameSuperClass.java new file mode 100644 index 00000000..2e8a19d8 --- /dev/null +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/src-gen/queries/SameSuperClass.java | |||
@@ -0,0 +1,824 @@ | |||
1 | /** | ||
2 | * Generated from platform:/resource/SocialNetwork_plugin/queries/queries/ecore_pattern.vql | ||
3 | */ | ||
4 | package queries; | ||
5 | |||
6 | import java.util.Arrays; | ||
7 | import java.util.Collection; | ||
8 | import java.util.LinkedHashSet; | ||
9 | import java.util.List; | ||
10 | import java.util.Objects; | ||
11 | import java.util.Optional; | ||
12 | import java.util.Set; | ||
13 | import java.util.function.Consumer; | ||
14 | import java.util.stream.Collectors; | ||
15 | import java.util.stream.Stream; | ||
16 | import org.apache.log4j.Logger; | ||
17 | import org.eclipse.emf.ecore.EClass; | ||
18 | import org.eclipse.viatra.query.runtime.api.IPatternMatch; | ||
19 | import org.eclipse.viatra.query.runtime.api.IQuerySpecification; | ||
20 | import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine; | ||
21 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery; | ||
22 | import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification; | ||
23 | import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher; | ||
24 | import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch; | ||
25 | import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey; | ||
26 | import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey; | ||
27 | import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint; | ||
28 | import org.eclipse.viatra.query.runtime.matchers.psystem.PBody; | ||
29 | import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable; | ||
30 | import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.PAnnotation; | ||
31 | import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.ParameterReference; | ||
32 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality; | ||
33 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter; | ||
34 | import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint; | ||
35 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter; | ||
36 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection; | ||
37 | import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility; | ||
38 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple; | ||
39 | import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples; | ||
40 | import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil; | ||
41 | |||
42 | /** | ||
43 | * A pattern-specific query specification that can instantiate Matcher in a type-safe way. | ||
44 | * | ||
45 | * <p>Original source: | ||
46 | * <code><pre> | ||
47 | * {@literal @}Constraint(severity="error", message="error", key = {c}) | ||
48 | * pattern sameSuperClass(c : EClass, s1 : EClass, s2: EClass) { | ||
49 | * EClass.eSuperTypes(c, s1); | ||
50 | * EClass.eSuperTypes(c, s2); | ||
51 | * s1 == s2; | ||
52 | * } | ||
53 | * </pre></code> | ||
54 | * | ||
55 | * @see Matcher | ||
56 | * @see Match | ||
57 | * | ||
58 | */ | ||
59 | @SuppressWarnings("all") | ||
60 | public final class SameSuperClass extends BaseGeneratedEMFQuerySpecification<SameSuperClass.Matcher> { | ||
61 | /** | ||
62 | * Pattern-specific match representation of the queries.sameSuperClass pattern, | ||
63 | * to be used in conjunction with {@link Matcher}. | ||
64 | * | ||
65 | * <p>Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned. | ||
66 | * Each instance is a (possibly partial) substitution of pattern parameters, | ||
67 | * usable to represent a match of the pattern in the result of a query, | ||
68 | * or to specify the bound (fixed) input parameters when issuing a query. | ||
69 | * | ||
70 | * @see Matcher | ||
71 | * | ||
72 | */ | ||
73 | public static abstract class Match extends BasePatternMatch { | ||
74 | private EClass fC; | ||
75 | |||
76 | private EClass fS1; | ||
77 | |||
78 | private EClass fS2; | ||
79 | |||
80 | private static List<String> parameterNames = makeImmutableList("c", "s1", "s2"); | ||
81 | |||
82 | private Match(final EClass pC, final EClass pS1, final EClass pS2) { | ||
83 | this.fC = pC; | ||
84 | this.fS1 = pS1; | ||
85 | this.fS2 = pS2; | ||
86 | } | ||
87 | |||
88 | @Override | ||
89 | public Object get(final String parameterName) { | ||
90 | if ("c".equals(parameterName)) return this.fC; | ||
91 | if ("s1".equals(parameterName)) return this.fS1; | ||
92 | if ("s2".equals(parameterName)) return this.fS2; | ||
93 | return null; | ||
94 | } | ||
95 | |||
96 | public EClass getC() { | ||
97 | return this.fC; | ||
98 | } | ||
99 | |||
100 | public EClass getS1() { | ||
101 | return this.fS1; | ||
102 | } | ||
103 | |||
104 | public EClass getS2() { | ||
105 | return this.fS2; | ||
106 | } | ||
107 | |||
108 | @Override | ||
109 | public boolean set(final String parameterName, final Object newValue) { | ||
110 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
111 | if ("c".equals(parameterName) ) { | ||
112 | this.fC = (EClass) newValue; | ||
113 | return true; | ||
114 | } | ||
115 | if ("s1".equals(parameterName) ) { | ||
116 | this.fS1 = (EClass) newValue; | ||
117 | return true; | ||
118 | } | ||
119 | if ("s2".equals(parameterName) ) { | ||
120 | this.fS2 = (EClass) newValue; | ||
121 | return true; | ||
122 | } | ||
123 | return false; | ||
124 | } | ||
125 | |||
126 | public void setC(final EClass pC) { | ||
127 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
128 | this.fC = pC; | ||
129 | } | ||
130 | |||
131 | public void setS1(final EClass pS1) { | ||
132 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
133 | this.fS1 = pS1; | ||
134 | } | ||
135 | |||
136 | public void setS2(final EClass pS2) { | ||
137 | if (!isMutable()) throw new java.lang.UnsupportedOperationException(); | ||
138 | this.fS2 = pS2; | ||
139 | } | ||
140 | |||
141 | @Override | ||
142 | public String patternName() { | ||
143 | return "queries.sameSuperClass"; | ||
144 | } | ||
145 | |||
146 | @Override | ||
147 | public List<String> parameterNames() { | ||
148 | return SameSuperClass.Match.parameterNames; | ||
149 | } | ||
150 | |||
151 | @Override | ||
152 | public Object[] toArray() { | ||
153 | return new Object[]{fC, fS1, fS2}; | ||
154 | } | ||
155 | |||
156 | @Override | ||
157 | public SameSuperClass.Match toImmutable() { | ||
158 | return isMutable() ? newMatch(fC, fS1, fS2) : this; | ||
159 | } | ||
160 | |||
161 | @Override | ||
162 | public String prettyPrint() { | ||
163 | StringBuilder result = new StringBuilder(); | ||
164 | result.append("\"c\"=" + prettyPrintValue(fC) + ", "); | ||
165 | result.append("\"s1\"=" + prettyPrintValue(fS1) + ", "); | ||
166 | result.append("\"s2\"=" + prettyPrintValue(fS2)); | ||
167 | return result.toString(); | ||
168 | } | ||
169 | |||
170 | @Override | ||
171 | public int hashCode() { | ||
172 | return Objects.hash(fC, fS1, fS2); | ||
173 | } | ||
174 | |||
175 | @Override | ||
176 | public boolean equals(final Object obj) { | ||
177 | if (this == obj) | ||
178 | return true; | ||
179 | if (obj == null) { | ||
180 | return false; | ||
181 | } | ||
182 | if ((obj instanceof SameSuperClass.Match)) { | ||
183 | SameSuperClass.Match other = (SameSuperClass.Match) obj; | ||
184 | return Objects.equals(fC, other.fC) && Objects.equals(fS1, other.fS1) && Objects.equals(fS2, other.fS2); | ||
185 | } else { | ||
186 | // this should be infrequent | ||
187 | if (!(obj instanceof IPatternMatch)) { | ||
188 | return false; | ||
189 | } | ||
190 | IPatternMatch otherSig = (IPatternMatch) obj; | ||
191 | return Objects.equals(specification(), otherSig.specification()) && Arrays.deepEquals(toArray(), otherSig.toArray()); | ||
192 | } | ||
193 | } | ||
194 | |||
195 | @Override | ||
196 | public SameSuperClass specification() { | ||
197 | return SameSuperClass.instance(); | ||
198 | } | ||
199 | |||
200 | /** | ||
201 | * Returns an empty, mutable match. | ||
202 | * Fields of the mutable match can be filled to create a partial match, usable as matcher input. | ||
203 | * | ||
204 | * @return the empty match. | ||
205 | * | ||
206 | */ | ||
207 | public static SameSuperClass.Match newEmptyMatch() { | ||
208 | return new Mutable(null, null, null); | ||
209 | } | ||
210 | |||
211 | /** | ||
212 | * Returns a mutable (partial) match. | ||
213 | * Fields of the mutable match can be filled to create a partial match, usable as matcher input. | ||
214 | * | ||
215 | * @param pC the fixed value of pattern parameter c, or null if not bound. | ||
216 | * @param pS1 the fixed value of pattern parameter s1, or null if not bound. | ||
217 | * @param pS2 the fixed value of pattern parameter s2, or null if not bound. | ||
218 | * @return the new, mutable (partial) match object. | ||
219 | * | ||
220 | */ | ||
221 | public static SameSuperClass.Match newMutableMatch(final EClass pC, final EClass pS1, final EClass pS2) { | ||
222 | return new Mutable(pC, pS1, pS2); | ||
223 | } | ||
224 | |||
225 | /** | ||
226 | * Returns a new (partial) match. | ||
227 | * This can be used e.g. to call the matcher with a partial match. | ||
228 | * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. | ||
229 | * @param pC the fixed value of pattern parameter c, or null if not bound. | ||
230 | * @param pS1 the fixed value of pattern parameter s1, or null if not bound. | ||
231 | * @param pS2 the fixed value of pattern parameter s2, or null if not bound. | ||
232 | * @return the (partial) match object. | ||
233 | * | ||
234 | */ | ||
235 | public static SameSuperClass.Match newMatch(final EClass pC, final EClass pS1, final EClass pS2) { | ||
236 | return new Immutable(pC, pS1, pS2); | ||
237 | } | ||
238 | |||
239 | private static final class Mutable extends SameSuperClass.Match { | ||
240 | Mutable(final EClass pC, final EClass pS1, final EClass pS2) { | ||
241 | super(pC, pS1, pS2); | ||
242 | } | ||
243 | |||
244 | @Override | ||
245 | public boolean isMutable() { | ||
246 | return true; | ||
247 | } | ||
248 | } | ||
249 | |||
250 | private static final class Immutable extends SameSuperClass.Match { | ||
251 | Immutable(final EClass pC, final EClass pS1, final EClass pS2) { | ||
252 | super(pC, pS1, pS2); | ||
253 | } | ||
254 | |||
255 | @Override | ||
256 | public boolean isMutable() { | ||
257 | return false; | ||
258 | } | ||
259 | } | ||
260 | } | ||
261 | |||
262 | /** | ||
263 | * Generated pattern matcher API of the queries.sameSuperClass pattern, | ||
264 | * providing pattern-specific query methods. | ||
265 | * | ||
266 | * <p>Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)}, | ||
267 | * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}. | ||
268 | * | ||
269 | * <p>Matches of the pattern will be represented as {@link Match}. | ||
270 | * | ||
271 | * <p>Original source: | ||
272 | * <code><pre> | ||
273 | * {@literal @}Constraint(severity="error", message="error", key = {c}) | ||
274 | * pattern sameSuperClass(c : EClass, s1 : EClass, s2: EClass) { | ||
275 | * EClass.eSuperTypes(c, s1); | ||
276 | * EClass.eSuperTypes(c, s2); | ||
277 | * s1 == s2; | ||
278 | * } | ||
279 | * </pre></code> | ||
280 | * | ||
281 | * @see Match | ||
282 | * @see SameSuperClass | ||
283 | * | ||
284 | */ | ||
285 | public static class Matcher extends BaseMatcher<SameSuperClass.Match> { | ||
286 | /** | ||
287 | * Initializes the pattern matcher within an existing VIATRA Query engine. | ||
288 | * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. | ||
289 | * | ||
290 | * @param engine the existing VIATRA Query engine in which this matcher will be created. | ||
291 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
292 | * | ||
293 | */ | ||
294 | public static SameSuperClass.Matcher on(final ViatraQueryEngine engine) { | ||
295 | // check if matcher already exists | ||
296 | Matcher matcher = engine.getExistingMatcher(querySpecification()); | ||
297 | if (matcher == null) { | ||
298 | matcher = (Matcher)engine.getMatcher(querySpecification()); | ||
299 | } | ||
300 | return matcher; | ||
301 | } | ||
302 | |||
303 | /** | ||
304 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
305 | * @return an initialized matcher | ||
306 | * @noreference This method is for internal matcher initialization by the framework, do not call it manually. | ||
307 | * | ||
308 | */ | ||
309 | public static SameSuperClass.Matcher create() { | ||
310 | return new Matcher(); | ||
311 | } | ||
312 | |||
313 | private static final int POSITION_C = 0; | ||
314 | |||
315 | private static final int POSITION_S1 = 1; | ||
316 | |||
317 | private static final int POSITION_S2 = 2; | ||
318 | |||
319 | private static final Logger LOGGER = ViatraQueryLoggingUtil.getLogger(SameSuperClass.Matcher.class); | ||
320 | |||
321 | /** | ||
322 | * Initializes the pattern matcher within an existing VIATRA Query engine. | ||
323 | * If the pattern matcher is already constructed in the engine, only a light-weight reference is returned. | ||
324 | * | ||
325 | * @param engine the existing VIATRA Query engine in which this matcher will be created. | ||
326 | * @throws ViatraQueryRuntimeException if an error occurs during pattern matcher creation | ||
327 | * | ||
328 | */ | ||
329 | private Matcher() { | ||
330 | super(querySpecification()); | ||
331 | } | ||
332 | |||
333 | /** | ||
334 | * Returns the set of all matches of the pattern that conform to the given fixed values of some parameters. | ||
335 | * @param pC the fixed value of pattern parameter c, or null if not bound. | ||
336 | * @param pS1 the fixed value of pattern parameter s1, or null if not bound. | ||
337 | * @param pS2 the fixed value of pattern parameter s2, or null if not bound. | ||
338 | * @return matches represented as a Match object. | ||
339 | * | ||
340 | */ | ||
341 | public Collection<SameSuperClass.Match> getAllMatches(final EClass pC, final EClass pS1, final EClass pS2) { | ||
342 | return rawStreamAllMatches(new Object[]{pC, pS1, pS2}).collect(Collectors.toSet()); | ||
343 | } | ||
344 | |||
345 | /** | ||
346 | * Returns a stream of all matches of the pattern that conform to the given fixed values of some parameters. | ||
347 | * </p> | ||
348 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
349 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
350 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
351 | * @param pC the fixed value of pattern parameter c, or null if not bound. | ||
352 | * @param pS1 the fixed value of pattern parameter s1, or null if not bound. | ||
353 | * @param pS2 the fixed value of pattern parameter s2, or null if not bound. | ||
354 | * @return a stream of matches represented as a Match object. | ||
355 | * | ||
356 | */ | ||
357 | public Stream<SameSuperClass.Match> streamAllMatches(final EClass pC, final EClass pS1, final EClass pS2) { | ||
358 | return rawStreamAllMatches(new Object[]{pC, pS1, pS2}); | ||
359 | } | ||
360 | |||
361 | /** | ||
362 | * Returns an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. | ||
363 | * Neither determinism nor randomness of selection is guaranteed. | ||
364 | * @param pC the fixed value of pattern parameter c, or null if not bound. | ||
365 | * @param pS1 the fixed value of pattern parameter s1, or null if not bound. | ||
366 | * @param pS2 the fixed value of pattern parameter s2, or null if not bound. | ||
367 | * @return a match represented as a Match object, or null if no match is found. | ||
368 | * | ||
369 | */ | ||
370 | public Optional<SameSuperClass.Match> getOneArbitraryMatch(final EClass pC, final EClass pS1, final EClass pS2) { | ||
371 | return rawGetOneArbitraryMatch(new Object[]{pC, pS1, pS2}); | ||
372 | } | ||
373 | |||
374 | /** | ||
375 | * Indicates whether the given combination of specified pattern parameters constitute a valid pattern match, | ||
376 | * under any possible substitution of the unspecified parameters (if any). | ||
377 | * @param pC the fixed value of pattern parameter c, or null if not bound. | ||
378 | * @param pS1 the fixed value of pattern parameter s1, or null if not bound. | ||
379 | * @param pS2 the fixed value of pattern parameter s2, or null if not bound. | ||
380 | * @return true if the input is a valid (partial) match of the pattern. | ||
381 | * | ||
382 | */ | ||
383 | public boolean hasMatch(final EClass pC, final EClass pS1, final EClass pS2) { | ||
384 | return rawHasMatch(new Object[]{pC, pS1, pS2}); | ||
385 | } | ||
386 | |||
387 | /** | ||
388 | * Returns the number of all matches of the pattern that conform to the given fixed values of some parameters. | ||
389 | * @param pC the fixed value of pattern parameter c, or null if not bound. | ||
390 | * @param pS1 the fixed value of pattern parameter s1, or null if not bound. | ||
391 | * @param pS2 the fixed value of pattern parameter s2, or null if not bound. | ||
392 | * @return the number of pattern matches found. | ||
393 | * | ||
394 | */ | ||
395 | public int countMatches(final EClass pC, final EClass pS1, final EClass pS2) { | ||
396 | return rawCountMatches(new Object[]{pC, pS1, pS2}); | ||
397 | } | ||
398 | |||
399 | /** | ||
400 | * Executes the given processor on an arbitrarily chosen match of the pattern that conforms to the given fixed values of some parameters. | ||
401 | * Neither determinism nor randomness of selection is guaranteed. | ||
402 | * @param pC the fixed value of pattern parameter c, or null if not bound. | ||
403 | * @param pS1 the fixed value of pattern parameter s1, or null if not bound. | ||
404 | * @param pS2 the fixed value of pattern parameter s2, or null if not bound. | ||
405 | * @param processor the action that will process the selected match. | ||
406 | * @return true if the pattern has at least one match with the given parameter values, false if the processor was not invoked | ||
407 | * | ||
408 | */ | ||
409 | public boolean forOneArbitraryMatch(final EClass pC, final EClass pS1, final EClass pS2, final Consumer<? super SameSuperClass.Match> processor) { | ||
410 | return rawForOneArbitraryMatch(new Object[]{pC, pS1, pS2}, processor); | ||
411 | } | ||
412 | |||
413 | /** | ||
414 | * Returns a new (partial) match. | ||
415 | * This can be used e.g. to call the matcher with a partial match. | ||
416 | * <p>The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object. | ||
417 | * @param pC the fixed value of pattern parameter c, or null if not bound. | ||
418 | * @param pS1 the fixed value of pattern parameter s1, or null if not bound. | ||
419 | * @param pS2 the fixed value of pattern parameter s2, or null if not bound. | ||
420 | * @return the (partial) match object. | ||
421 | * | ||
422 | */ | ||
423 | public SameSuperClass.Match newMatch(final EClass pC, final EClass pS1, final EClass pS2) { | ||
424 | return SameSuperClass.Match.newMatch(pC, pS1, pS2); | ||
425 | } | ||
426 | |||
427 | /** | ||
428 | * Retrieve the set of values that occur in matches for c. | ||
429 | * @return the Set of all values or empty set if there are no matches | ||
430 | * | ||
431 | */ | ||
432 | protected Stream<EClass> rawStreamAllValuesOfc(final Object[] parameters) { | ||
433 | return rawStreamAllValues(POSITION_C, parameters).map(EClass.class::cast); | ||
434 | } | ||
435 | |||
436 | /** | ||
437 | * Retrieve the set of values that occur in matches for c. | ||
438 | * @return the Set of all values or empty set if there are no matches | ||
439 | * | ||
440 | */ | ||
441 | public Set<EClass> getAllValuesOfc() { | ||
442 | return rawStreamAllValuesOfc(emptyArray()).collect(Collectors.toSet()); | ||
443 | } | ||
444 | |||
445 | /** | ||
446 | * Retrieve the set of values that occur in matches for c. | ||
447 | * @return the Set of all values or empty set if there are no matches | ||
448 | * | ||
449 | */ | ||
450 | public Stream<EClass> streamAllValuesOfc() { | ||
451 | return rawStreamAllValuesOfc(emptyArray()); | ||
452 | } | ||
453 | |||
454 | /** | ||
455 | * Retrieve the set of values that occur in matches for c. | ||
456 | * </p> | ||
457 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
458 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
459 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
460 | * | ||
461 | * @return the Stream of all values or empty set if there are no matches | ||
462 | * | ||
463 | */ | ||
464 | public Stream<EClass> streamAllValuesOfc(final SameSuperClass.Match partialMatch) { | ||
465 | return rawStreamAllValuesOfc(partialMatch.toArray()); | ||
466 | } | ||
467 | |||
468 | /** | ||
469 | * Retrieve the set of values that occur in matches for c. | ||
470 | * </p> | ||
471 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
472 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
473 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
474 | * | ||
475 | * @return the Stream of all values or empty set if there are no matches | ||
476 | * | ||
477 | */ | ||
478 | public Stream<EClass> streamAllValuesOfc(final EClass pS1, final EClass pS2) { | ||
479 | return rawStreamAllValuesOfc(new Object[]{null, pS1, pS2}); | ||
480 | } | ||
481 | |||
482 | /** | ||
483 | * Retrieve the set of values that occur in matches for c. | ||
484 | * @return the Set of all values or empty set if there are no matches | ||
485 | * | ||
486 | */ | ||
487 | public Set<EClass> getAllValuesOfc(final SameSuperClass.Match partialMatch) { | ||
488 | return rawStreamAllValuesOfc(partialMatch.toArray()).collect(Collectors.toSet()); | ||
489 | } | ||
490 | |||
491 | /** | ||
492 | * Retrieve the set of values that occur in matches for c. | ||
493 | * @return the Set of all values or empty set if there are no matches | ||
494 | * | ||
495 | */ | ||
496 | public Set<EClass> getAllValuesOfc(final EClass pS1, final EClass pS2) { | ||
497 | return rawStreamAllValuesOfc(new Object[]{null, pS1, pS2}).collect(Collectors.toSet()); | ||
498 | } | ||
499 | |||
500 | /** | ||
501 | * Retrieve the set of values that occur in matches for s1. | ||
502 | * @return the Set of all values or empty set if there are no matches | ||
503 | * | ||
504 | */ | ||
505 | protected Stream<EClass> rawStreamAllValuesOfs1(final Object[] parameters) { | ||
506 | return rawStreamAllValues(POSITION_S1, parameters).map(EClass.class::cast); | ||
507 | } | ||
508 | |||
509 | /** | ||
510 | * Retrieve the set of values that occur in matches for s1. | ||
511 | * @return the Set of all values or empty set if there are no matches | ||
512 | * | ||
513 | */ | ||
514 | public Set<EClass> getAllValuesOfs1() { | ||
515 | return rawStreamAllValuesOfs1(emptyArray()).collect(Collectors.toSet()); | ||
516 | } | ||
517 | |||
518 | /** | ||
519 | * Retrieve the set of values that occur in matches for s1. | ||
520 | * @return the Set of all values or empty set if there are no matches | ||
521 | * | ||
522 | */ | ||
523 | public Stream<EClass> streamAllValuesOfs1() { | ||
524 | return rawStreamAllValuesOfs1(emptyArray()); | ||
525 | } | ||
526 | |||
527 | /** | ||
528 | * Retrieve the set of values that occur in matches for s1. | ||
529 | * </p> | ||
530 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
531 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
532 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
533 | * | ||
534 | * @return the Stream of all values or empty set if there are no matches | ||
535 | * | ||
536 | */ | ||
537 | public Stream<EClass> streamAllValuesOfs1(final SameSuperClass.Match partialMatch) { | ||
538 | return rawStreamAllValuesOfs1(partialMatch.toArray()); | ||
539 | } | ||
540 | |||
541 | /** | ||
542 | * Retrieve the set of values that occur in matches for s1. | ||
543 | * </p> | ||
544 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
545 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
546 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
547 | * | ||
548 | * @return the Stream of all values or empty set if there are no matches | ||
549 | * | ||
550 | */ | ||
551 | public Stream<EClass> streamAllValuesOfs1(final EClass pC, final EClass pS2) { | ||
552 | return rawStreamAllValuesOfs1(new Object[]{pC, null, pS2}); | ||
553 | } | ||
554 | |||
555 | /** | ||
556 | * Retrieve the set of values that occur in matches for s1. | ||
557 | * @return the Set of all values or empty set if there are no matches | ||
558 | * | ||
559 | */ | ||
560 | public Set<EClass> getAllValuesOfs1(final SameSuperClass.Match partialMatch) { | ||
561 | return rawStreamAllValuesOfs1(partialMatch.toArray()).collect(Collectors.toSet()); | ||
562 | } | ||
563 | |||
564 | /** | ||
565 | * Retrieve the set of values that occur in matches for s1. | ||
566 | * @return the Set of all values or empty set if there are no matches | ||
567 | * | ||
568 | */ | ||
569 | public Set<EClass> getAllValuesOfs1(final EClass pC, final EClass pS2) { | ||
570 | return rawStreamAllValuesOfs1(new Object[]{pC, null, pS2}).collect(Collectors.toSet()); | ||
571 | } | ||
572 | |||
573 | /** | ||
574 | * Retrieve the set of values that occur in matches for s2. | ||
575 | * @return the Set of all values or empty set if there are no matches | ||
576 | * | ||
577 | */ | ||
578 | protected Stream<EClass> rawStreamAllValuesOfs2(final Object[] parameters) { | ||
579 | return rawStreamAllValues(POSITION_S2, parameters).map(EClass.class::cast); | ||
580 | } | ||
581 | |||
582 | /** | ||
583 | * Retrieve the set of values that occur in matches for s2. | ||
584 | * @return the Set of all values or empty set if there are no matches | ||
585 | * | ||
586 | */ | ||
587 | public Set<EClass> getAllValuesOfs2() { | ||
588 | return rawStreamAllValuesOfs2(emptyArray()).collect(Collectors.toSet()); | ||
589 | } | ||
590 | |||
591 | /** | ||
592 | * Retrieve the set of values that occur in matches for s2. | ||
593 | * @return the Set of all values or empty set if there are no matches | ||
594 | * | ||
595 | */ | ||
596 | public Stream<EClass> streamAllValuesOfs2() { | ||
597 | return rawStreamAllValuesOfs2(emptyArray()); | ||
598 | } | ||
599 | |||
600 | /** | ||
601 | * Retrieve the set of values that occur in matches for s2. | ||
602 | * </p> | ||
603 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
604 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
605 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
606 | * | ||
607 | * @return the Stream of all values or empty set if there are no matches | ||
608 | * | ||
609 | */ | ||
610 | public Stream<EClass> streamAllValuesOfs2(final SameSuperClass.Match partialMatch) { | ||
611 | return rawStreamAllValuesOfs2(partialMatch.toArray()); | ||
612 | } | ||
613 | |||
614 | /** | ||
615 | * Retrieve the set of values that occur in matches for s2. | ||
616 | * </p> | ||
617 | * <strong>NOTE</strong>: It is important not to modify the source model while the stream is being processed. | ||
618 | * If the match set of the pattern changes during processing, the contents of the stream is <strong>undefined</strong>. | ||
619 | * In such cases, either rely on {@link #getAllMatches()} or collect the results of the stream in end-user code. | ||
620 | * | ||
621 | * @return the Stream of all values or empty set if there are no matches | ||
622 | * | ||
623 | */ | ||
624 | public Stream<EClass> streamAllValuesOfs2(final EClass pC, final EClass pS1) { | ||
625 | return rawStreamAllValuesOfs2(new Object[]{pC, pS1, null}); | ||
626 | } | ||
627 | |||
628 | /** | ||
629 | * Retrieve the set of values that occur in matches for s2. | ||
630 | * @return the Set of all values or empty set if there are no matches | ||
631 | * | ||
632 | */ | ||
633 | public Set<EClass> getAllValuesOfs2(final SameSuperClass.Match partialMatch) { | ||
634 | return rawStreamAllValuesOfs2(partialMatch.toArray()).collect(Collectors.toSet()); | ||
635 | } | ||
636 | |||
637 | /** | ||
638 | * Retrieve the set of values that occur in matches for s2. | ||
639 | * @return the Set of all values or empty set if there are no matches | ||
640 | * | ||
641 | */ | ||
642 | public Set<EClass> getAllValuesOfs2(final EClass pC, final EClass pS1) { | ||
643 | return rawStreamAllValuesOfs2(new Object[]{pC, pS1, null}).collect(Collectors.toSet()); | ||
644 | } | ||
645 | |||
646 | @Override | ||
647 | protected SameSuperClass.Match tupleToMatch(final Tuple t) { | ||
648 | try { | ||
649 | return SameSuperClass.Match.newMatch((EClass) t.get(POSITION_C), (EClass) t.get(POSITION_S1), (EClass) t.get(POSITION_S2)); | ||
650 | } catch(ClassCastException e) { | ||
651 | LOGGER.error("Element(s) in tuple not properly typed!",e); | ||
652 | return null; | ||
653 | } | ||
654 | } | ||
655 | |||
656 | @Override | ||
657 | protected SameSuperClass.Match arrayToMatch(final Object[] match) { | ||
658 | try { | ||
659 | return SameSuperClass.Match.newMatch((EClass) match[POSITION_C], (EClass) match[POSITION_S1], (EClass) match[POSITION_S2]); | ||
660 | } catch(ClassCastException e) { | ||
661 | LOGGER.error("Element(s) in array not properly typed!",e); | ||
662 | return null; | ||
663 | } | ||
664 | } | ||
665 | |||
666 | @Override | ||
667 | protected SameSuperClass.Match arrayToMatchMutable(final Object[] match) { | ||
668 | try { | ||
669 | return SameSuperClass.Match.newMutableMatch((EClass) match[POSITION_C], (EClass) match[POSITION_S1], (EClass) match[POSITION_S2]); | ||
670 | } catch(ClassCastException e) { | ||
671 | LOGGER.error("Element(s) in array not properly typed!",e); | ||
672 | return null; | ||
673 | } | ||
674 | } | ||
675 | |||
676 | /** | ||
677 | * @return the singleton instance of the query specification of this pattern | ||
678 | * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded | ||
679 | * | ||
680 | */ | ||
681 | public static IQuerySpecification<SameSuperClass.Matcher> querySpecification() { | ||
682 | return SameSuperClass.instance(); | ||
683 | } | ||
684 | } | ||
685 | |||
686 | private SameSuperClass() { | ||
687 | super(GeneratedPQuery.INSTANCE); | ||
688 | } | ||
689 | |||
690 | /** | ||
691 | * @return the singleton instance of the query specification | ||
692 | * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded | ||
693 | * | ||
694 | */ | ||
695 | public static SameSuperClass instance() { | ||
696 | try{ | ||
697 | return LazyHolder.INSTANCE; | ||
698 | } catch (ExceptionInInitializerError err) { | ||
699 | throw processInitializerError(err); | ||
700 | } | ||
701 | } | ||
702 | |||
703 | @Override | ||
704 | protected SameSuperClass.Matcher instantiate(final ViatraQueryEngine engine) { | ||
705 | return SameSuperClass.Matcher.on(engine); | ||
706 | } | ||
707 | |||
708 | @Override | ||
709 | public SameSuperClass.Matcher instantiate() { | ||
710 | return SameSuperClass.Matcher.create(); | ||
711 | } | ||
712 | |||
713 | @Override | ||
714 | public SameSuperClass.Match newEmptyMatch() { | ||
715 | return SameSuperClass.Match.newEmptyMatch(); | ||
716 | } | ||
717 | |||
718 | @Override | ||
719 | public SameSuperClass.Match newMatch(final Object... parameters) { | ||
720 | return SameSuperClass.Match.newMatch((org.eclipse.emf.ecore.EClass) parameters[0], (org.eclipse.emf.ecore.EClass) parameters[1], (org.eclipse.emf.ecore.EClass) parameters[2]); | ||
721 | } | ||
722 | |||
723 | /** | ||
724 | * Inner class allowing the singleton instance of {@link JvmGenericType: queries.SameSuperClass (visibility: PUBLIC, simpleName: SameSuperClass, identifier: queries.SameSuperClass, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: queries) (interface: false, strictFloatingPoint: false, anonymous: false)} to be created | ||
725 | * <b>not</b> at the class load time of the outer class, | ||
726 | * but rather at the first call to {@link JvmGenericType: queries.SameSuperClass (visibility: PUBLIC, simpleName: SameSuperClass, identifier: queries.SameSuperClass, deprecated: <unset>) (abstract: false, static: false, final: true, packageName: queries) (interface: false, strictFloatingPoint: false, anonymous: false)#instance()}. | ||
727 | * | ||
728 | * <p> This workaround is required e.g. to support recursion. | ||
729 | * | ||
730 | */ | ||
731 | private static class LazyHolder { | ||
732 | private static final SameSuperClass INSTANCE = new SameSuperClass(); | ||
733 | |||
734 | /** | ||
735 | * Statically initializes the query specification <b>after</b> the field {@link #INSTANCE} is assigned. | ||
736 | * This initialization order is required to support indirect recursion. | ||
737 | * | ||
738 | * <p> The static initializer is defined using a helper field to work around limitations of the code generator. | ||
739 | * | ||
740 | */ | ||
741 | private static final Object STATIC_INITIALIZER = ensureInitialized(); | ||
742 | |||
743 | public static Object ensureInitialized() { | ||
744 | INSTANCE.ensureInitializedInternal(); | ||
745 | return null; | ||
746 | } | ||
747 | } | ||
748 | |||
749 | private static class GeneratedPQuery extends BaseGeneratedEMFPQuery { | ||
750 | private static final SameSuperClass.GeneratedPQuery INSTANCE = new GeneratedPQuery(); | ||
751 | |||
752 | private final PParameter parameter_c = new PParameter("c", "org.eclipse.emf.ecore.EClass", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.eclipse.org/emf/2002/Ecore", "EClass")), PParameterDirection.INOUT); | ||
753 | |||
754 | private final PParameter parameter_s1 = new PParameter("s1", "org.eclipse.emf.ecore.EClass", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.eclipse.org/emf/2002/Ecore", "EClass")), PParameterDirection.INOUT); | ||
755 | |||
756 | private final PParameter parameter_s2 = new PParameter("s2", "org.eclipse.emf.ecore.EClass", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.eclipse.org/emf/2002/Ecore", "EClass")), PParameterDirection.INOUT); | ||
757 | |||
758 | private final List<PParameter> parameters = Arrays.asList(parameter_c, parameter_s1, parameter_s2); | ||
759 | |||
760 | private GeneratedPQuery() { | ||
761 | super(PVisibility.PUBLIC); | ||
762 | } | ||
763 | |||
764 | @Override | ||
765 | public String getFullyQualifiedName() { | ||
766 | return "queries.sameSuperClass"; | ||
767 | } | ||
768 | |||
769 | @Override | ||
770 | public List<String> getParameterNames() { | ||
771 | return Arrays.asList("c","s1","s2"); | ||
772 | } | ||
773 | |||
774 | @Override | ||
775 | public List<PParameter> getParameters() { | ||
776 | return parameters; | ||
777 | } | ||
778 | |||
779 | @Override | ||
780 | public Set<PBody> doGetContainedBodies() { | ||
781 | setEvaluationHints(new QueryEvaluationHint(null, QueryEvaluationHint.BackendRequirement.UNSPECIFIED)); | ||
782 | Set<PBody> bodies = new LinkedHashSet<>(); | ||
783 | { | ||
784 | PBody body = new PBody(this); | ||
785 | PVariable var_c = body.getOrCreateVariableByName("c"); | ||
786 | PVariable var_s1 = body.getOrCreateVariableByName("s1"); | ||
787 | PVariable var_s2 = body.getOrCreateVariableByName("s2"); | ||
788 | new TypeConstraint(body, Tuples.flatTupleOf(var_c), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.eclipse.org/emf/2002/Ecore", "EClass"))); | ||
789 | new TypeConstraint(body, Tuples.flatTupleOf(var_s1), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.eclipse.org/emf/2002/Ecore", "EClass"))); | ||
790 | new TypeConstraint(body, Tuples.flatTupleOf(var_s2), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.eclipse.org/emf/2002/Ecore", "EClass"))); | ||
791 | body.setSymbolicParameters(Arrays.<ExportedParameter>asList( | ||
792 | new ExportedParameter(body, var_c, parameter_c), | ||
793 | new ExportedParameter(body, var_s1, parameter_s1), | ||
794 | new ExportedParameter(body, var_s2, parameter_s2) | ||
795 | )); | ||
796 | // EClass.eSuperTypes(c, s1) | ||
797 | new TypeConstraint(body, Tuples.flatTupleOf(var_c), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.eclipse.org/emf/2002/Ecore", "EClass"))); | ||
798 | PVariable var__virtual_0_ = body.getOrCreateVariableByName(".virtual{0}"); | ||
799 | new TypeConstraint(body, Tuples.flatTupleOf(var_c, var__virtual_0_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.eclipse.org/emf/2002/Ecore", "EClass", "eSuperTypes"))); | ||
800 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_0_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.eclipse.org/emf/2002/Ecore", "EClass"))); | ||
801 | new Equality(body, var__virtual_0_, var_s1); | ||
802 | // EClass.eSuperTypes(c, s2) | ||
803 | new TypeConstraint(body, Tuples.flatTupleOf(var_c), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.eclipse.org/emf/2002/Ecore", "EClass"))); | ||
804 | PVariable var__virtual_1_ = body.getOrCreateVariableByName(".virtual{1}"); | ||
805 | new TypeConstraint(body, Tuples.flatTupleOf(var_c, var__virtual_1_), new EStructuralFeatureInstancesKey(getFeatureLiteral("http://www.eclipse.org/emf/2002/Ecore", "EClass", "eSuperTypes"))); | ||
806 | new TypeConstraint(body, Tuples.flatTupleOf(var__virtual_1_), new EClassTransitiveInstancesKey((EClass)getClassifierLiteral("http://www.eclipse.org/emf/2002/Ecore", "EClass"))); | ||
807 | new Equality(body, var__virtual_1_, var_s2); | ||
808 | // s1 == s2 | ||
809 | new Equality(body, var_s1, var_s2); | ||
810 | bodies.add(body); | ||
811 | } | ||
812 | { | ||
813 | PAnnotation annotation = new PAnnotation("Constraint"); | ||
814 | annotation.addAttribute("severity", "error"); | ||
815 | annotation.addAttribute("message", "error"); | ||
816 | annotation.addAttribute("key", Arrays.asList(new Object[] { | ||
817 | new ParameterReference("c") | ||
818 | })); | ||
819 | addAnnotation(annotation); | ||
820 | } | ||
821 | return bodies; | ||
822 | } | ||
823 | } | ||
824 | } | ||
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/src/ca/mcgill/ecse/socialnetwork/runner/Main.java b/Metrics/Metrics-Calculation/SocialNetwork_plugin/src/ca/mcgill/ecse/socialnetwork/runner/Main.java index 261f32cc..9b426200 100644 --- a/Metrics/Metrics-Calculation/SocialNetwork_plugin/src/ca/mcgill/ecse/socialnetwork/runner/Main.java +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/src/ca/mcgill/ecse/socialnetwork/runner/Main.java | |||
@@ -11,6 +11,7 @@ import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.KSDistan | |||
11 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.EMFGraph; | 11 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.EMFGraph; |
12 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io.CsvFileWriter; | 12 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io.CsvFileWriter; |
13 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io.GraphReader; | 13 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io.GraphReader; |
14 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io.RepMetricsReader; | ||
14 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MetricSampleGroup; | 15 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MetricSampleGroup; |
15 | import hu.bme.mit.inf.dslreasoner.application.execution.StandaloneScriptExecutor; | 16 | import hu.bme.mit.inf.dslreasoner.application.execution.StandaloneScriptExecutor; |
16 | import hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.validation.ViolationCheck; | 17 | import hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.validation.ViolationCheck; |
@@ -24,8 +25,8 @@ public class Main { | |||
24 | return message; | 25 | return message; |
25 | } | 26 | } |
26 | 27 | ||
27 | private static String configFolder = "yakinduum/config15/"; | 28 | private static String configFolder = "yakinduum/config22/"; |
28 | private static String configFileName = configFolder + "info_new_metric.csv"; | 29 | private static String configFileName = configFolder + "info_old_metric.csv"; |
29 | private static String aggregateViolationMeasureFileName = configFolder + "aggregateInfo.csv"; | 30 | private static String aggregateViolationMeasureFileName = configFolder + "aggregateInfo.csv"; |
30 | private static String fileReadFolder = "output/Viatra_100/"; | 31 | private static String fileReadFolder = "output/Viatra_100/"; |
31 | 32 | ||
@@ -33,29 +34,30 @@ public class Main { | |||
33 | 34 | ||
34 | 35 | ||
35 | long begin = System.currentTimeMillis(); | 36 | long begin = System.currentTimeMillis(); |
36 | String message = runWithPath("yakinduGeneration.vsconfig"); | 37 | String message = runWithPath("ecore.vsconfig"); |
37 | long elapsed = System.currentTimeMillis() - begin; | 38 | long elapsed = System.currentTimeMillis() - begin; |
38 | 39 | ||
39 | if(message != null) { | 40 | if(message != null) { |
41 | System.out.println(message); | ||
40 | return; | 42 | return; |
41 | } | 43 | } |
42 | ArrayList<ArrayList<String>> output = new ArrayList<ArrayList<String>>(); | 44 | // ArrayList<ArrayList<String>> output = new ArrayList<ArrayList<String>>(); |
43 | String time = formatTime(elapsed); | 45 | // String time = formatTime(elapsed); |
44 | ArrayList<String> infoOutput = new ArrayList<String>(); | 46 | // ArrayList<String> infoOutput = new ArrayList<String>(); |
45 | infoOutput.add(time); | 47 | // infoOutput.add(time); |
46 | output.add(infoOutput); | 48 | // output.add(infoOutput); |
47 | System.out.println(time); | 49 | // System.out.println(time); |
48 | CsvFileWriter.write(output, configFileName); | 50 | // CsvFileWriter.write(output, configFileName); |
49 | 51 | // | |
50 | 52 | // | |
51 | output = new ArrayList<ArrayList<String>>(); | 53 | // output = new ArrayList<ArrayList<String>>(); |
52 | output.add(prepareInfo()); | 54 | // output.add(prepareInfo()); |
53 | CsvFileWriter.append(output, configFileName); | 55 | // CsvFileWriter.append(output, configFileName); |
54 | 56 | // | |
55 | for(int i = 0; i < 50; i++) { | 57 | // for(int i = 0; i < 50; i++) { |
56 | generateModel(i+1); | 58 | // generateModel(i+1); |
57 | } | 59 | // } |
58 | //aggregateViolationMeasure(50); | 60 | // aggregateViolationMeasure(50); |
59 | System.out.println("Finished"); | 61 | System.out.println("Finished"); |
60 | } | 62 | } |
61 | 63 | ||
@@ -86,7 +88,7 @@ public class Main { | |||
86 | ArrayList<String> infoOutput = new ArrayList<String>(); | 88 | ArrayList<String> infoOutput = new ArrayList<String>(); |
87 | infoOutput.add(run+ ""); | 89 | infoOutput.add(run+ ""); |
88 | 90 | ||
89 | YakinduumModel model = new YakinduumModel("output/Viatra_100/run"+run+"/"+ filename); | 91 | YakinduumModel model = new YakinduumModel(fileReadFolder+"/run"+run+"/"+ filename); |
90 | 92 | ||
91 | //parse map of violation counts to two list and add them to the result list | 93 | //parse map of violation counts to two list and add them to the result list |
92 | Map<String, Integer> map = ViolationCheck.violationMaps(model.yakinduum); | 94 | Map<String, Integer> map = ViolationCheck.violationMaps(model.yakinduum); |
@@ -110,7 +112,7 @@ public class Main { | |||
110 | ArrayList<String> violationNames = null; | 112 | ArrayList<String> violationNames = null; |
111 | for(int run = 1; run < size+1; run++) { | 113 | for(int run = 1; run < size+1; run++) { |
112 | String filename = run+"_1.xmi"; | 114 | String filename = run+"_1.xmi"; |
113 | YakinduumModel model = new YakinduumModel("output/Viatra_100/run"+run+"/"+ filename); | 115 | YakinduumModel model = new YakinduumModel(fileReadFolder+"/run"+run+"/"+ filename); |
114 | 116 | ||
115 | Map<String, Integer> map = ViolationCheck.violationMaps(model.yakinduum); | 117 | Map<String, Integer> map = ViolationCheck.violationMaps(model.yakinduum); |
116 | if(run == 1) { | 118 | if(run == 1) { |
@@ -143,11 +145,11 @@ public class Main { | |||
143 | public static ArrayList<String> calculateMetric(int run) { | 145 | public static ArrayList<String> calculateMetric(int run) { |
144 | //read model and metric | 146 | //read model and metric |
145 | ArrayList<String> output = new ArrayList<String>(); | 147 | ArrayList<String> output = new ArrayList<String>(); |
146 | GraphReader reader = new GraphReader(YakindummPackage.eINSTANCE); | 148 | GraphReader reader = new GraphReader(YakindummPackage.eINSTANCE, ".xmi"); |
147 | EMFGraph graph = reader.readModel(fileReadFolder+"/run"+run, run + "_1.xmi"); | 149 | EMFGraph graph = reader.readModel(fileReadFolder+"/run"+run, run + "_1.xmi"); |
148 | 150 | MetricSampleGroup metrics = RepMetricsReader.read(Domain.Yakinduum); | |
149 | //KS distance | 151 | //KS distance |
150 | KSDistance ks = new KSDistance(Domain.Yakinduum); | 152 | KSDistance ks = new KSDistance(metrics); |
151 | 153 | ||
152 | //calculate and put metric data to output array | 154 | //calculate and put metric data to output array |
153 | MetricSampleGroup samples = graph.evaluateAllMetricsToSamples(); | 155 | MetricSampleGroup samples = graph.evaluateAllMetricsToSamples(); |
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/yakinduGeneration.vsconfig b/Metrics/Metrics-Calculation/SocialNetwork_plugin/yakinduGeneration.vsconfig index 14e1a3f7..d2414e87 100644 --- a/Metrics/Metrics-Calculation/SocialNetwork_plugin/yakinduGeneration.vsconfig +++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/yakinduGeneration.vsconfig | |||
@@ -9,11 +9,11 @@ generate { | |||
9 | solver = ViatraSolver | 9 | solver = ViatraSolver |
10 | 10 | ||
11 | scope = { | 11 | scope = { |
12 | #node = 100 | 12 | #node = 1 |
13 | } | 13 | } |
14 | 14 | ||
15 | number = 1 | 15 | number = 1 |
16 | runs = 50 | 16 | runs = 1 |
17 | config = { | 17 | config = { |
18 | log-level = none | 18 | log-level = none |
19 | } | 19 | } |