aboutsummaryrefslogtreecommitdiffstats
path: root/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation
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/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation
parentfix node type distance measure (diff)
downloadVIATRA-Generator-Realistic-Generation-SURE.tar.gz
VIATRA-Generator-Realistic-Generation-SURE.tar.zst
VIATRA-Generator-Realistic-Generation-SURE.zip
Diffstat (limited to 'Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation')
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/ViolationCheck.xtend24
1 files changed, 15 insertions, 9 deletions
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/ViolationCheck.xtend b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/ViolationCheck.xtend
index 5e660111..e5feae2b 100644
--- a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/ViolationCheck.xtend
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/ViolationCheck.xtend
@@ -5,25 +5,32 @@ import com.google.common.reflect.ClassPath
5import ecore.Ecore 5import ecore.Ecore
6import hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.Patterns 6import hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.Patterns
7import java.util.ArrayList 7import java.util.ArrayList
8import java.util.List
8import org.eclipse.emf.ecore.EObject 9import org.eclipse.emf.ecore.EObject
9import org.eclipse.viatra.addon.validation.core.api.IConstraintSpecification 10import org.eclipse.viatra.addon.validation.core.api.IConstraintSpecification
11import queries.Github
10 12
11class ViolationCheck { 13class ViolationCheck {
12 /** 14 /**
13 * Return the total number of violations 15 * Return the total number of violations
14 */ 16 */
15 def static int calculateViolationCounts(EObject root, Domain d) { 17 var List<IConstraintSpecification> constraints;
16 var packageName = ''; 18
19 new(Domain d) {
20 var packageName = '';
17 if (d == Domain.Yakindumm) { 21 if (d == Domain.Yakindumm) {
18 packageName = 'constraints.yakindumm'; 22 packageName = 'constraints.yakindumm';
19 } else if (d == Domain.Ecore) { 23 } else if (d == Domain.Ecore) {
20 packageName = 'constraints.ecore'; 24 packageName = 'constraints.ecore';
21 } else if (d == Domain.Github) { 25 } else if (d == Domain.Github) {
22 return -1; 26 packageName = 'constraints.github'
23 } 27 }
24 28
25 var constriants = loadConstraints(packageName); 29 constraints = loadConstraints(packageName);
26 var collections = new ConstraintCollection(constriants, Ecore.instance); 30 }
31
32 def int calculateViolationCounts(EObject root) {
33 var collections = new ConstraintCollection(constraints, Ecore.instance);
27 collections.addModel(root); 34 collections.addModel(root);
28 var results = collections.calculateViolations(); 35 var results = collections.calculateViolations();
29 if (results.size > 0) { 36 if (results.size > 0) {
@@ -36,9 +43,8 @@ class ViolationCheck {
36 /** 43 /**
37 * return a map contain the count for each type of violation 44 * return a map contain the count for each type of violation
38 */ 45 */
39 def static violationMaps(EObject root) { 46 def violationMaps(EObject root) {
40 var constriants = loadConstraints('hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu'); 47 var collections = new ConstraintCollection(constraints, Ecore.instance);
41 var collections = new ConstraintCollection(constriants, Patterns.instance);
42 collections.addModel(root); 48 collections.addModel(root);
43 var results = collections.calculateViolationMaps(); 49 var results = collections.calculateViolationMaps();
44 if (results.size > 0) { 50 if (results.size > 0) {
@@ -48,7 +54,7 @@ class ViolationCheck {
48 } 54 }
49 } 55 }
50 56
51 def static loadConstraints(String packageName) { 57 def loadConstraints(String packageName) {
52 val constraints = new ArrayList<IConstraintSpecification>(); 58 val constraints = new ArrayList<IConstraintSpecification>();
53 59
54 val classPath = ClassPath.from(ClassLoader.systemClassLoader); 60 val classPath = ClassPath.from(ClassLoader.systemClassLoader);