diff options
author | 20001LastOrder <boqi.chen@mail.mcgill.ca> | 2020-11-15 21:56:45 -0500 |
---|---|---|
committer | 20001LastOrder <boqi.chen@mail.mcgill.ca> | 2020-11-15 21:56:45 -0500 |
commit | 1cfc2e98ffbba1dc2a489ad415c81264b76d8c14 (patch) | |
tree | b342c3541a5728b775564d8a0f5c6e6d93784694 /Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation | |
parent | fix node type distance measure (diff) | |
download | VIATRA-Generator-Realistic-Generation-SURE.tar.gz VIATRA-Generator-Realistic-Generation-SURE.tar.zst VIATRA-Generator-Realistic-Generation-SURE.zip |
code for paperRealistic-Generation-SURE
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.xtend | 24 |
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 | |||
5 | import ecore.Ecore | 5 | import ecore.Ecore |
6 | import hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.Patterns | 6 | import hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.Patterns |
7 | import java.util.ArrayList | 7 | import java.util.ArrayList |
8 | import java.util.List | ||
8 | import org.eclipse.emf.ecore.EObject | 9 | import org.eclipse.emf.ecore.EObject |
9 | import org.eclipse.viatra.addon.validation.core.api.IConstraintSpecification | 10 | import org.eclipse.viatra.addon.validation.core.api.IConstraintSpecification |
11 | import queries.Github | ||
10 | 12 | ||
11 | class ViolationCheck { | 13 | class 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); |