aboutsummaryrefslogtreecommitdiffstats
path: root/Metrics/Metrics-Calculation/RealisticRunner/queries/ecore.vql
diff options
context:
space:
mode:
authorLibravatar 20001LastOrder <boqi.chen@mail.mcgill.ca>2020-11-15 21:56:45 -0500
committerLibravatar 20001LastOrder <boqi.chen@mail.mcgill.ca>2020-11-15 21:56:45 -0500
commit1cfc2e98ffbba1dc2a489ad415c81264b76d8c14 (patch)
treeb342c3541a5728b775564d8a0f5c6e6d93784694 /Metrics/Metrics-Calculation/RealisticRunner/queries/ecore.vql
parentfix node type distance measure (diff)
downloadVIATRA-Generator-1cfc2e98ffbba1dc2a489ad415c81264b76d8c14.tar.gz
VIATRA-Generator-1cfc2e98ffbba1dc2a489ad415c81264b76d8c14.tar.zst
VIATRA-Generator-1cfc2e98ffbba1dc2a489ad415c81264b76d8c14.zip
Diffstat (limited to 'Metrics/Metrics-Calculation/RealisticRunner/queries/ecore.vql')
-rw-r--r--Metrics/Metrics-Calculation/RealisticRunner/queries/ecore.vql33
1 files changed, 33 insertions, 0 deletions
diff --git a/Metrics/Metrics-Calculation/RealisticRunner/queries/ecore.vql b/Metrics/Metrics-Calculation/RealisticRunner/queries/ecore.vql
new file mode 100644
index 00000000..9ddb64c9
--- /dev/null
+++ b/Metrics/Metrics-Calculation/RealisticRunner/queries/ecore.vql
@@ -0,0 +1,33 @@
1package queries
2
3import epackage "http://www.eclipse.org/emf/2002/Ecore"
4
5pattern directSupertype(a: EClass, b:EClass) {
6 EClass.eSuperTypes(a,b);
7}
8
9@Constraint(key={a}, severity="error", message="error")
10pattern loopInInheritence(a: EClass) {
11 find directSupertype+(a,a);
12}
13
14pattern opposite(a:EReference, b: EReference) {
15 EReference.eOpposite(a,b);
16}
17@Constraint(key={a}, severity="error", message="error")
18pattern oppositeDifferentClass(a:EReference) {
19 EReference.eOpposite(a,b);
20 EReference.eContainingClass(a,aContaining);
21 EReference.eType(b,bTarget);
22 aContaining != bTarget;
23}
24
25@Constraint(key={a}, severity="error", message="error")
26pattern nonSymmetricOpposite(a:EReference, b:EReference) {
27 find opposite(a,b);
28 neg find opposite(b,a);
29}
30
31pattern superTypes(c1:EClass, c2:EClass){
32 EClass.eSuperTypes(c1,c2);
33}