diff options
Diffstat (limited to 'Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator')
14 files changed, 721 insertions, 24 deletions
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/.classpath b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/.classpath index c5fe8c25..7a7d359a 100644 --- a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/.classpath +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/.classpath | |||
@@ -7,6 +7,6 @@ | |||
7 | <classpathentry kind="src" path="constraints"/> | 7 | <classpathentry kind="src" path="constraints"/> |
8 | <classpathentry kind="lib" path="C:/Users/chenp/eclipse-workspace/VIATRA-Generator/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/lib/commons-math3-3.6.1.jar"/> | 8 | <classpathentry kind="lib" path="C:/Users/chenp/eclipse-workspace/VIATRA-Generator/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/lib/commons-math3-3.6.1.jar"/> |
9 | <classpathentry kind="lib" path="C:/Users/chenp/eclipse-workspace/VIATRA-Generator/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/lib/commons-math3-3.6.1-javadoc.jar"/> | 9 | <classpathentry kind="lib" path="C:/Users/chenp/eclipse-workspace/VIATRA-Generator/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/lib/commons-math3-3.6.1-javadoc.jar"/> |
10 | <classpathentry kind="lib" path="C:/Users/chenp/eclipse-workspace/VIATRA-Generator/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/lib/weka.jar"/> | 10 | <classpathentry kind="lib" path="C:/Users/chenp/eclipse-workspace/VIATRA-Generator/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/lib/weka.jar" sourcepath="/VIATRA-Generator/Solvers/Alloy-Solver/hu.bme.mit.inf.dlsreasoner.alloy.reasoner/lib/alloy4.2_2015-02-22.jar"/> |
11 | <classpathentry kind="output" path="bin"/> | 11 | <classpathentry kind="output" path="bin"/> |
12 | </classpath> | 12 | </classpath> |
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/constraints/constraints/github/ConsecutiveClosesWithoutReopenConstraint0.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/constraints/constraints/github/ConsecutiveClosesWithoutReopenConstraint0.java new file mode 100644 index 00000000..1c5e8b0a --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/constraints/constraints/github/ConsecutiveClosesWithoutReopenConstraint0.java | |||
@@ -0,0 +1,79 @@ | |||
1 | /** | ||
2 | Generated from platform:/resource/github-graph/queries/queries/github.vql | ||
3 | */ | ||
4 | package constraints.github; | ||
5 | |||
6 | import java.util.HashMap; | ||
7 | import java.util.HashSet; | ||
8 | import java.util.List; | ||
9 | import java.util.Map; | ||
10 | import java.util.Set; | ||
11 | import java.util.Arrays; | ||
12 | |||
13 | import org.eclipse.viatra.addon.validation.core.api.Severity; | ||
14 | import org.eclipse.viatra.addon.validation.core.api.IConstraintSpecification; | ||
15 | import org.eclipse.viatra.query.runtime.api.IPatternMatch; | ||
16 | import org.eclipse.viatra.query.runtime.api.IQuerySpecification; | ||
17 | import org.eclipse.viatra.query.runtime.api.ViatraQueryMatcher; | ||
18 | |||
19 | import queries.ConsecutiveClosesWithoutReopen; | ||
20 | |||
21 | public class ConsecutiveClosesWithoutReopenConstraint0 implements IConstraintSpecification { | ||
22 | |||
23 | private ConsecutiveClosesWithoutReopen querySpecification; | ||
24 | |||
25 | public ConsecutiveClosesWithoutReopenConstraint0() { | ||
26 | querySpecification = ConsecutiveClosesWithoutReopen.instance(); | ||
27 | } | ||
28 | |||
29 | @Override | ||
30 | public String getMessageFormat() { | ||
31 | return "error"; | ||
32 | } | ||
33 | |||
34 | |||
35 | @Override | ||
36 | public Map<String,Object> getKeyObjects(IPatternMatch signature) { | ||
37 | Map<String,Object> map = new HashMap<>(); | ||
38 | map.put("i",signature.get("i")); | ||
39 | return map; | ||
40 | } | ||
41 | |||
42 | @Override | ||
43 | public List<String> getKeyNames() { | ||
44 | List<String> keyNames = Arrays.asList( | ||
45 | "i" | ||
46 | ); | ||
47 | return keyNames; | ||
48 | } | ||
49 | |||
50 | @Override | ||
51 | public List<String> getPropertyNames() { | ||
52 | List<String> propertyNames = Arrays.asList( | ||
53 | ); | ||
54 | return propertyNames; | ||
55 | } | ||
56 | |||
57 | @Override | ||
58 | public Set<List<String>> getSymmetricPropertyNames() { | ||
59 | Set<List<String>> symmetricPropertyNamesSet = new HashSet<>(); | ||
60 | return symmetricPropertyNamesSet; | ||
61 | } | ||
62 | |||
63 | @Override | ||
64 | public Set<List<String>> getSymmetricKeyNames() { | ||
65 | Set<List<String>> symmetricKeyNamesSet = new HashSet<>(); | ||
66 | return symmetricKeyNamesSet; | ||
67 | } | ||
68 | |||
69 | @Override | ||
70 | public Severity getSeverity() { | ||
71 | return Severity.ERROR; | ||
72 | } | ||
73 | |||
74 | @Override | ||
75 | public IQuerySpecification<? extends ViatraQueryMatcher<? extends IPatternMatch>> getQuerySpecification() { | ||
76 | return querySpecification; | ||
77 | } | ||
78 | |||
79 | } | ||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/constraints/constraints/github/ConsecutiveReopensWithoutCloseConstraint0.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/constraints/constraints/github/ConsecutiveReopensWithoutCloseConstraint0.java new file mode 100644 index 00000000..fe0a0155 --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/constraints/constraints/github/ConsecutiveReopensWithoutCloseConstraint0.java | |||
@@ -0,0 +1,79 @@ | |||
1 | /** | ||
2 | Generated from platform:/resource/github-graph/queries/queries/github.vql | ||
3 | */ | ||
4 | package constraints.github; | ||
5 | |||
6 | import java.util.HashMap; | ||
7 | import java.util.HashSet; | ||
8 | import java.util.List; | ||
9 | import java.util.Map; | ||
10 | import java.util.Set; | ||
11 | import java.util.Arrays; | ||
12 | |||
13 | import org.eclipse.viatra.addon.validation.core.api.Severity; | ||
14 | import org.eclipse.viatra.addon.validation.core.api.IConstraintSpecification; | ||
15 | import org.eclipse.viatra.query.runtime.api.IPatternMatch; | ||
16 | import org.eclipse.viatra.query.runtime.api.IQuerySpecification; | ||
17 | import org.eclipse.viatra.query.runtime.api.ViatraQueryMatcher; | ||
18 | |||
19 | import queries.ConsecutiveReopensWithoutClose; | ||
20 | |||
21 | public class ConsecutiveReopensWithoutCloseConstraint0 implements IConstraintSpecification { | ||
22 | |||
23 | private ConsecutiveReopensWithoutClose querySpecification; | ||
24 | |||
25 | public ConsecutiveReopensWithoutCloseConstraint0() { | ||
26 | querySpecification = ConsecutiveReopensWithoutClose.instance(); | ||
27 | } | ||
28 | |||
29 | @Override | ||
30 | public String getMessageFormat() { | ||
31 | return "error"; | ||
32 | } | ||
33 | |||
34 | |||
35 | @Override | ||
36 | public Map<String,Object> getKeyObjects(IPatternMatch signature) { | ||
37 | Map<String,Object> map = new HashMap<>(); | ||
38 | map.put("i",signature.get("i")); | ||
39 | return map; | ||
40 | } | ||
41 | |||
42 | @Override | ||
43 | public List<String> getKeyNames() { | ||
44 | List<String> keyNames = Arrays.asList( | ||
45 | "i" | ||
46 | ); | ||
47 | return keyNames; | ||
48 | } | ||
49 | |||
50 | @Override | ||
51 | public List<String> getPropertyNames() { | ||
52 | List<String> propertyNames = Arrays.asList( | ||
53 | ); | ||
54 | return propertyNames; | ||
55 | } | ||
56 | |||
57 | @Override | ||
58 | public Set<List<String>> getSymmetricPropertyNames() { | ||
59 | Set<List<String>> symmetricPropertyNamesSet = new HashSet<>(); | ||
60 | return symmetricPropertyNamesSet; | ||
61 | } | ||
62 | |||
63 | @Override | ||
64 | public Set<List<String>> getSymmetricKeyNames() { | ||
65 | Set<List<String>> symmetricKeyNamesSet = new HashSet<>(); | ||
66 | return symmetricKeyNamesSet; | ||
67 | } | ||
68 | |||
69 | @Override | ||
70 | public Severity getSeverity() { | ||
71 | return Severity.ERROR; | ||
72 | } | ||
73 | |||
74 | @Override | ||
75 | public IQuerySpecification<? extends ViatraQueryMatcher<? extends IPatternMatch>> getQuerySpecification() { | ||
76 | return querySpecification; | ||
77 | } | ||
78 | |||
79 | } | ||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/constraints/constraints/github/ConsecutiveSubWithoutUnSubConstraint0.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/constraints/constraints/github/ConsecutiveSubWithoutUnSubConstraint0.java new file mode 100644 index 00000000..38713eb5 --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/constraints/constraints/github/ConsecutiveSubWithoutUnSubConstraint0.java | |||
@@ -0,0 +1,81 @@ | |||
1 | /** | ||
2 | Generated from platform:/resource/github-graph/queries/queries/github.vql | ||
3 | */ | ||
4 | package constraints.github; | ||
5 | |||
6 | //import java.util.HashMap; | ||
7 | //import java.util.HashSet; | ||
8 | //import java.util.List; | ||
9 | //import java.util.Map; | ||
10 | //import java.util.Set; | ||
11 | //import java.util.Arrays; | ||
12 | // | ||
13 | //import org.eclipse.viatra.addon.validation.core.api.Severity; | ||
14 | //import org.eclipse.viatra.addon.validation.core.api.IConstraintSpecification; | ||
15 | //import org.eclipse.viatra.query.runtime.api.IPatternMatch; | ||
16 | //import org.eclipse.viatra.query.runtime.api.IQuerySpecification; | ||
17 | //import org.eclipse.viatra.query.runtime.api.ViatraQueryMatcher; | ||
18 | // | ||
19 | //import queries.ConsecutiveSubWithoutUnSub; | ||
20 | |||
21 | public class ConsecutiveSubWithoutUnSubConstraint0 {//implements IConstraintSpecification { | ||
22 | |||
23 | // private ConsecutiveSubWithoutUnSub querySpecification; | ||
24 | // | ||
25 | // public ConsecutiveSubWithoutUnSubConstraint0() { | ||
26 | // querySpecification = ConsecutiveSubWithoutUnSub.instance(); | ||
27 | // } | ||
28 | // | ||
29 | // @Override | ||
30 | // public String getMessageFormat() { | ||
31 | // return "error"; | ||
32 | // } | ||
33 | // | ||
34 | // | ||
35 | // @Override | ||
36 | // public Map<String,Object> getKeyObjects(IPatternMatch signature) { | ||
37 | // Map<String,Object> map = new HashMap<>(); | ||
38 | // map.put("i",signature.get("i")); | ||
39 | // map.put("u",signature.get("u")); | ||
40 | // return map; | ||
41 | // } | ||
42 | // | ||
43 | // @Override | ||
44 | // public List<String> getKeyNames() { | ||
45 | // List<String> keyNames = Arrays.asList( | ||
46 | // "i", | ||
47 | // "u" | ||
48 | // ); | ||
49 | // return keyNames; | ||
50 | // } | ||
51 | // | ||
52 | // @Override | ||
53 | // public List<String> getPropertyNames() { | ||
54 | // List<String> propertyNames = Arrays.asList( | ||
55 | // ); | ||
56 | // return propertyNames; | ||
57 | // } | ||
58 | // | ||
59 | // @Override | ||
60 | // public Set<List<String>> getSymmetricPropertyNames() { | ||
61 | // Set<List<String>> symmetricPropertyNamesSet = new HashSet<>(); | ||
62 | // return symmetricPropertyNamesSet; | ||
63 | // } | ||
64 | // | ||
65 | // @Override | ||
66 | // public Set<List<String>> getSymmetricKeyNames() { | ||
67 | // Set<List<String>> symmetricKeyNamesSet = new HashSet<>(); | ||
68 | // return symmetricKeyNamesSet; | ||
69 | // } | ||
70 | // | ||
71 | // @Override | ||
72 | // public Severity getSeverity() { | ||
73 | // return Severity.ERROR; | ||
74 | // } | ||
75 | // | ||
76 | // @Override | ||
77 | // public IQuerySpecification<? extends ViatraQueryMatcher<? extends IPatternMatch>> getQuerySpecification() { | ||
78 | // return querySpecification; | ||
79 | // } | ||
80 | |||
81 | } | ||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/constraints/constraints/github/ConsecutiveUnSubWithoutSubConstraint0.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/constraints/constraints/github/ConsecutiveUnSubWithoutSubConstraint0.java new file mode 100644 index 00000000..c8eacf14 --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/constraints/constraints/github/ConsecutiveUnSubWithoutSubConstraint0.java | |||
@@ -0,0 +1,81 @@ | |||
1 | /** | ||
2 | Generated from platform:/resource/github-graph/queries/queries/github.vql | ||
3 | */ | ||
4 | package constraints.github; | ||
5 | |||
6 | import java.util.HashMap; | ||
7 | import java.util.HashSet; | ||
8 | import java.util.List; | ||
9 | import java.util.Map; | ||
10 | import java.util.Set; | ||
11 | import java.util.Arrays; | ||
12 | |||
13 | import org.eclipse.viatra.addon.validation.core.api.Severity; | ||
14 | import org.eclipse.viatra.addon.validation.core.api.IConstraintSpecification; | ||
15 | import org.eclipse.viatra.query.runtime.api.IPatternMatch; | ||
16 | import org.eclipse.viatra.query.runtime.api.IQuerySpecification; | ||
17 | import org.eclipse.viatra.query.runtime.api.ViatraQueryMatcher; | ||
18 | |||
19 | import queries.ConsecutiveUnSubWithoutSub; | ||
20 | |||
21 | public class ConsecutiveUnSubWithoutSubConstraint0 implements IConstraintSpecification { | ||
22 | |||
23 | private ConsecutiveUnSubWithoutSub querySpecification; | ||
24 | |||
25 | public ConsecutiveUnSubWithoutSubConstraint0() { | ||
26 | querySpecification = ConsecutiveUnSubWithoutSub.instance(); | ||
27 | } | ||
28 | |||
29 | @Override | ||
30 | public String getMessageFormat() { | ||
31 | return "error"; | ||
32 | } | ||
33 | |||
34 | |||
35 | @Override | ||
36 | public Map<String,Object> getKeyObjects(IPatternMatch signature) { | ||
37 | Map<String,Object> map = new HashMap<>(); | ||
38 | map.put("i",signature.get("i")); | ||
39 | map.put("u",signature.get("u")); | ||
40 | return map; | ||
41 | } | ||
42 | |||
43 | @Override | ||
44 | public List<String> getKeyNames() { | ||
45 | List<String> keyNames = Arrays.asList( | ||
46 | "i", | ||
47 | "u" | ||
48 | ); | ||
49 | return keyNames; | ||
50 | } | ||
51 | |||
52 | @Override | ||
53 | public List<String> getPropertyNames() { | ||
54 | List<String> propertyNames = Arrays.asList( | ||
55 | ); | ||
56 | return propertyNames; | ||
57 | } | ||
58 | |||
59 | @Override | ||
60 | public Set<List<String>> getSymmetricPropertyNames() { | ||
61 | Set<List<String>> symmetricPropertyNamesSet = new HashSet<>(); | ||
62 | return symmetricPropertyNamesSet; | ||
63 | } | ||
64 | |||
65 | @Override | ||
66 | public Set<List<String>> getSymmetricKeyNames() { | ||
67 | Set<List<String>> symmetricKeyNamesSet = new HashSet<>(); | ||
68 | return symmetricKeyNamesSet; | ||
69 | } | ||
70 | |||
71 | @Override | ||
72 | public Severity getSeverity() { | ||
73 | return Severity.ERROR; | ||
74 | } | ||
75 | |||
76 | @Override | ||
77 | public IQuerySpecification<? extends ViatraQueryMatcher<? extends IPatternMatch>> getQuerySpecification() { | ||
78 | return querySpecification; | ||
79 | } | ||
80 | |||
81 | } | ||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/constraints/constraints/github/LoopInParentConstraint0.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/constraints/constraints/github/LoopInParentConstraint0.java new file mode 100644 index 00000000..ec653a89 --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/constraints/constraints/github/LoopInParentConstraint0.java | |||
@@ -0,0 +1,79 @@ | |||
1 | /** | ||
2 | Generated from platform:/resource/github-graph/queries/queries/github.vql | ||
3 | */ | ||
4 | package constraints.github; | ||
5 | |||
6 | import java.util.HashMap; | ||
7 | import java.util.HashSet; | ||
8 | import java.util.List; | ||
9 | import java.util.Map; | ||
10 | import java.util.Set; | ||
11 | import java.util.Arrays; | ||
12 | |||
13 | import org.eclipse.viatra.addon.validation.core.api.Severity; | ||
14 | import org.eclipse.viatra.addon.validation.core.api.IConstraintSpecification; | ||
15 | import org.eclipse.viatra.query.runtime.api.IPatternMatch; | ||
16 | import org.eclipse.viatra.query.runtime.api.IQuerySpecification; | ||
17 | import org.eclipse.viatra.query.runtime.api.ViatraQueryMatcher; | ||
18 | |||
19 | import queries.LoopInParent; | ||
20 | |||
21 | public class LoopInParentConstraint0 implements IConstraintSpecification { | ||
22 | |||
23 | private LoopInParent querySpecification; | ||
24 | |||
25 | public LoopInParentConstraint0() { | ||
26 | querySpecification = LoopInParent.instance(); | ||
27 | } | ||
28 | |||
29 | @Override | ||
30 | public String getMessageFormat() { | ||
31 | return "error"; | ||
32 | } | ||
33 | |||
34 | |||
35 | @Override | ||
36 | public Map<String,Object> getKeyObjects(IPatternMatch signature) { | ||
37 | Map<String,Object> map = new HashMap<>(); | ||
38 | map.put("a",signature.get("a")); | ||
39 | return map; | ||
40 | } | ||
41 | |||
42 | @Override | ||
43 | public List<String> getKeyNames() { | ||
44 | List<String> keyNames = Arrays.asList( | ||
45 | "a" | ||
46 | ); | ||
47 | return keyNames; | ||
48 | } | ||
49 | |||
50 | @Override | ||
51 | public List<String> getPropertyNames() { | ||
52 | List<String> propertyNames = Arrays.asList( | ||
53 | ); | ||
54 | return propertyNames; | ||
55 | } | ||
56 | |||
57 | @Override | ||
58 | public Set<List<String>> getSymmetricPropertyNames() { | ||
59 | Set<List<String>> symmetricPropertyNamesSet = new HashSet<>(); | ||
60 | return symmetricPropertyNamesSet; | ||
61 | } | ||
62 | |||
63 | @Override | ||
64 | public Set<List<String>> getSymmetricKeyNames() { | ||
65 | Set<List<String>> symmetricKeyNamesSet = new HashSet<>(); | ||
66 | return symmetricKeyNamesSet; | ||
67 | } | ||
68 | |||
69 | @Override | ||
70 | public Severity getSeverity() { | ||
71 | return Severity.ERROR; | ||
72 | } | ||
73 | |||
74 | @Override | ||
75 | public IQuerySpecification<? extends ViatraQueryMatcher<? extends IPatternMatch>> getQuerySpecification() { | ||
76 | return querySpecification; | ||
77 | } | ||
78 | |||
79 | } | ||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/constraints/constraints/github/MergedIssueWithoutPrConstraint0.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/constraints/constraints/github/MergedIssueWithoutPrConstraint0.java new file mode 100644 index 00000000..4c7fba76 --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/constraints/constraints/github/MergedIssueWithoutPrConstraint0.java | |||
@@ -0,0 +1,79 @@ | |||
1 | /** | ||
2 | Generated from platform:/resource/github-graph/queries/queries/github.vql | ||
3 | */ | ||
4 | package constraints.github; | ||
5 | // | ||
6 | //import java.util.HashMap; | ||
7 | //import java.util.HashSet; | ||
8 | //import java.util.List; | ||
9 | //import java.util.Map; | ||
10 | //import java.util.Set; | ||
11 | //import java.util.Arrays; | ||
12 | // | ||
13 | //import org.eclipse.viatra.addon.validation.core.api.Severity; | ||
14 | //import org.eclipse.viatra.addon.validation.core.api.IConstraintSpecification; | ||
15 | //import org.eclipse.viatra.query.runtime.api.IPatternMatch; | ||
16 | //import org.eclipse.viatra.query.runtime.api.IQuerySpecification; | ||
17 | //import org.eclipse.viatra.query.runtime.api.ViatraQueryMatcher; | ||
18 | // | ||
19 | //import queries.MergedIssueWithoutPr; | ||
20 | |||
21 | public class MergedIssueWithoutPrConstraint0 {//implements IConstraintSpecification { | ||
22 | |||
23 | // private MergedIssueWithoutPr querySpecification; | ||
24 | // | ||
25 | // public MergedIssueWithoutPrConstraint0() { | ||
26 | // querySpecification = MergedIssueWithoutPr.instance(); | ||
27 | // } | ||
28 | // | ||
29 | // @Override | ||
30 | // public String getMessageFormat() { | ||
31 | // return "error"; | ||
32 | // } | ||
33 | // | ||
34 | // | ||
35 | // @Override | ||
36 | // public Map<String,Object> getKeyObjects(IPatternMatch signature) { | ||
37 | // Map<String,Object> map = new HashMap<>(); | ||
38 | // map.put("i",signature.get("i")); | ||
39 | // return map; | ||
40 | // } | ||
41 | // | ||
42 | // @Override | ||
43 | // public List<String> getKeyNames() { | ||
44 | // List<String> keyNames = Arrays.asList( | ||
45 | // "i" | ||
46 | // ); | ||
47 | // return keyNames; | ||
48 | // } | ||
49 | // | ||
50 | // @Override | ||
51 | // public List<String> getPropertyNames() { | ||
52 | // List<String> propertyNames = Arrays.asList( | ||
53 | // ); | ||
54 | // return propertyNames; | ||
55 | // } | ||
56 | // | ||
57 | // @Override | ||
58 | // public Set<List<String>> getSymmetricPropertyNames() { | ||
59 | // Set<List<String>> symmetricPropertyNamesSet = new HashSet<>(); | ||
60 | // return symmetricPropertyNamesSet; | ||
61 | // } | ||
62 | // | ||
63 | // @Override | ||
64 | // public Set<List<String>> getSymmetricKeyNames() { | ||
65 | // Set<List<String>> symmetricKeyNamesSet = new HashSet<>(); | ||
66 | // return symmetricKeyNamesSet; | ||
67 | // } | ||
68 | // | ||
69 | // @Override | ||
70 | // public Severity getSeverity() { | ||
71 | // return Severity.ERROR; | ||
72 | // } | ||
73 | // | ||
74 | // @Override | ||
75 | // public IQuerySpecification<? extends ViatraQueryMatcher<? extends IPatternMatch>> getQuerySpecification() { | ||
76 | // return querySpecification; | ||
77 | // } | ||
78 | |||
79 | } | ||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/constraints/constraints/github/NoCommitterConstraint0.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/constraints/constraints/github/NoCommitterConstraint0.java new file mode 100644 index 00000000..0c2d413f --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/constraints/constraints/github/NoCommitterConstraint0.java | |||
@@ -0,0 +1,79 @@ | |||
1 | ///** | ||
2 | //Generated from platform:/resource/github-graph/queries/queries/github.vql | ||
3 | //*/ | ||
4 | package constraints.github; | ||
5 | |||
6 | import java.util.HashMap; | ||
7 | import java.util.HashSet; | ||
8 | import java.util.List; | ||
9 | import java.util.Map; | ||
10 | import java.util.Set; | ||
11 | import java.util.Arrays; | ||
12 | |||
13 | import org.eclipse.viatra.addon.validation.core.api.Severity; | ||
14 | import org.eclipse.viatra.addon.validation.core.api.IConstraintSpecification; | ||
15 | import org.eclipse.viatra.query.runtime.api.IPatternMatch; | ||
16 | import org.eclipse.viatra.query.runtime.api.IQuerySpecification; | ||
17 | import org.eclipse.viatra.query.runtime.api.ViatraQueryMatcher; | ||
18 | |||
19 | import queries.NoCommitter; | ||
20 | |||
21 | public class NoCommitterConstraint0 implements IConstraintSpecification { | ||
22 | |||
23 | private NoCommitter querySpecification; | ||
24 | |||
25 | public NoCommitterConstraint0() { | ||
26 | querySpecification = NoCommitter.instance(); | ||
27 | } | ||
28 | |||
29 | @Override | ||
30 | public String getMessageFormat() { | ||
31 | return "error"; | ||
32 | } | ||
33 | |||
34 | |||
35 | @Override | ||
36 | public Map<String,Object> getKeyObjects(IPatternMatch signature) { | ||
37 | Map<String,Object> map = new HashMap<>(); | ||
38 | map.put("c",signature.get("c")); | ||
39 | return map; | ||
40 | } | ||
41 | |||
42 | @Override | ||
43 | public List<String> getKeyNames() { | ||
44 | List<String> keyNames = Arrays.asList( | ||
45 | "c" | ||
46 | ); | ||
47 | return keyNames; | ||
48 | } | ||
49 | |||
50 | @Override | ||
51 | public List<String> getPropertyNames() { | ||
52 | List<String> propertyNames = Arrays.asList( | ||
53 | ); | ||
54 | return propertyNames; | ||
55 | } | ||
56 | |||
57 | @Override | ||
58 | public Set<List<String>> getSymmetricPropertyNames() { | ||
59 | Set<List<String>> symmetricPropertyNamesSet = new HashSet<>(); | ||
60 | return symmetricPropertyNamesSet; | ||
61 | } | ||
62 | |||
63 | @Override | ||
64 | public Set<List<String>> getSymmetricKeyNames() { | ||
65 | Set<List<String>> symmetricKeyNamesSet = new HashSet<>(); | ||
66 | return symmetricKeyNamesSet; | ||
67 | } | ||
68 | |||
69 | @Override | ||
70 | public Severity getSeverity() { | ||
71 | return Severity.ERROR; | ||
72 | } | ||
73 | |||
74 | @Override | ||
75 | public IQuerySpecification<? extends ViatraQueryMatcher<? extends IPatternMatch>> getQuerySpecification() { | ||
76 | return querySpecification; | ||
77 | } | ||
78 | |||
79 | } | ||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/constraints/constraints/github/NoUserConstraint0.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/constraints/constraints/github/NoUserConstraint0.java new file mode 100644 index 00000000..331d0e64 --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/constraints/constraints/github/NoUserConstraint0.java | |||
@@ -0,0 +1,79 @@ | |||
1 | /** | ||
2 | Generated from platform:/resource/github-graph/queries/queries/github.vql | ||
3 | */ | ||
4 | package constraints.github; | ||
5 | |||
6 | import java.util.HashMap; | ||
7 | import java.util.HashSet; | ||
8 | import java.util.List; | ||
9 | import java.util.Map; | ||
10 | import java.util.Set; | ||
11 | import java.util.Arrays; | ||
12 | |||
13 | import org.eclipse.viatra.addon.validation.core.api.Severity; | ||
14 | import org.eclipse.viatra.addon.validation.core.api.IConstraintSpecification; | ||
15 | import org.eclipse.viatra.query.runtime.api.IPatternMatch; | ||
16 | import org.eclipse.viatra.query.runtime.api.IQuerySpecification; | ||
17 | import org.eclipse.viatra.query.runtime.api.ViatraQueryMatcher; | ||
18 | |||
19 | import queries.NoUser; | ||
20 | |||
21 | public class NoUserConstraint0 implements IConstraintSpecification { | ||
22 | |||
23 | private NoUser querySpecification; | ||
24 | |||
25 | public NoUserConstraint0() { | ||
26 | querySpecification = NoUser.instance(); | ||
27 | } | ||
28 | |||
29 | @Override | ||
30 | public String getMessageFormat() { | ||
31 | return "error"; | ||
32 | } | ||
33 | |||
34 | |||
35 | @Override | ||
36 | public Map<String,Object> getKeyObjects(IPatternMatch signature) { | ||
37 | Map<String,Object> map = new HashMap<>(); | ||
38 | map.put("e",signature.get("e")); | ||
39 | return map; | ||
40 | } | ||
41 | |||
42 | @Override | ||
43 | public List<String> getKeyNames() { | ||
44 | List<String> keyNames = Arrays.asList( | ||
45 | "e" | ||
46 | ); | ||
47 | return keyNames; | ||
48 | } | ||
49 | |||
50 | @Override | ||
51 | public List<String> getPropertyNames() { | ||
52 | List<String> propertyNames = Arrays.asList( | ||
53 | ); | ||
54 | return propertyNames; | ||
55 | } | ||
56 | |||
57 | @Override | ||
58 | public Set<List<String>> getSymmetricPropertyNames() { | ||
59 | Set<List<String>> symmetricPropertyNamesSet = new HashSet<>(); | ||
60 | return symmetricPropertyNamesSet; | ||
61 | } | ||
62 | |||
63 | @Override | ||
64 | public Set<List<String>> getSymmetricKeyNames() { | ||
65 | Set<List<String>> symmetricKeyNamesSet = new HashSet<>(); | ||
66 | return symmetricKeyNamesSet; | ||
67 | } | ||
68 | |||
69 | @Override | ||
70 | public Severity getSeverity() { | ||
71 | return Severity.ERROR; | ||
72 | } | ||
73 | |||
74 | @Override | ||
75 | public IQuerySpecification<? extends ViatraQueryMatcher<? extends IPatternMatch>> getQuerySpecification() { | ||
76 | return querySpecification; | ||
77 | } | ||
78 | |||
79 | } | ||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/EcoreMetricDistance.xtend b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/EcoreMetricDistance.xtend new file mode 100644 index 00000000..67bf14b4 --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/EcoreMetricDistance.xtend | |||
@@ -0,0 +1,44 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app | ||
2 | |||
3 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.KSDistance | ||
4 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.EMFGraph | ||
5 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io.RepMetricsReader | ||
6 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric | ||
7 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MetricSampleGroup | ||
8 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MultiplexParticipationCoefficientMetric | ||
9 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.NodeActivityMetric | ||
10 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.NodeTypeMetric | ||
11 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.OutDegreeMetric | ||
12 | import java.util.ArrayList | ||
13 | import org.eclipse.emf.ecore.EObject | ||
14 | |||
15 | class EcoreMetricDistance { | ||
16 | var KSDistance ks; | ||
17 | var MetricSampleGroup g; | ||
18 | |||
19 | |||
20 | new(Domain d){ | ||
21 | var metrics = RepMetricsReader.read(d); | ||
22 | this.g = metrics; | ||
23 | ks = new KSDistance(g); | ||
24 | } | ||
25 | |||
26 | def MetricDistanceGroup calculateMetricDistanceKS(EObject root){ | ||
27 | val metrics = new ArrayList<Metric>(); | ||
28 | metrics.add(new OutDegreeMetric()); | ||
29 | metrics.add(new NodeActivityMetric()); | ||
30 | metrics.add(new MultiplexParticipationCoefficientMetric()); | ||
31 | metrics.add(new NodeTypeMetric()); | ||
32 | val metricCalculator = new EMFGraph(); | ||
33 | metricCalculator.init(root, metrics, null); | ||
34 | var metricSamples = metricCalculator.evaluateAllMetricsToSamples(); | ||
35 | |||
36 | var mpc = ks.mpcDistance(metricSamples.mpcSamples); | ||
37 | var na = ks.naDistance(metricSamples.naSamples); | ||
38 | var outDegree = ks.outDegreeDistance(metricSamples.outDegreeSamples); | ||
39 | var nodeType = ks.nodeTypeDistance(metricSamples.nodeTypeSamples); | ||
40 | var distance = new MetricDistanceGroup(mpc, na, outDegree, nodeType); | ||
41 | distance.nodeTypeInfo = metricSamples.nodeTypeSamples; | ||
42 | return distance; | ||
43 | } | ||
44 | } \ No newline at end of file | ||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/Main.xtend b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/Main.xtend index 8d936a88..010e8f87 100644 --- a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/Main.xtend +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/Main.xtend | |||
@@ -12,17 +12,20 @@ import org.eclipse.emf.ecore.EcorePackage | |||
12 | import org.eclipse.viatra.query.runtime.rete.matcher.ReteEngine | 12 | import org.eclipse.viatra.query.runtime.rete.matcher.ReteEngine |
13 | import org.eclipse.emf.ecore.impl.EcorePackageImpl | 13 | import org.eclipse.emf.ecore.impl.EcorePackageImpl |
14 | import org.eclipse.emf.ecore.EReference | 14 | import org.eclipse.emf.ecore.EReference |
15 | import github.impl.GithubPackageImpl | ||
15 | 16 | ||
16 | //import yakindumm2.impl.Yakindumm2PackageImpl | 17 | //import yakindumm2.impl.Yakindumm2PackageImpl |
17 | 18 | ||
18 | class Main { | 19 | class Main { |
19 | var static Domain d = Domain.Ecore; | 20 | var static Domain d = Domain.Github; |
20 | val static String suffix = '.xmi' | 21 | val static String suffix = '.xmi' |
21 | val static String OUTPUT_FOLDER = "Inputs/random/ecore/"; | 22 | val static String OUTPUT_FOLDER = "Inputs/Github/Alloy/"; |
22 | val static String INPUT_FOLDER = "outputs/random/ecore/"; | 23 | val static String INPUT_FOLDER = "outputs/Github/Alloy/"; |
23 | val static int NUM_RUNS = 1; | 24 | val static int NUM_RUNS = 1; |
24 | var static validFiles = 0; | 25 | var static validFiles = 0; |
25 | var static totalFiles = 0; | 26 | var static totalFiles = 0; |
27 | var static ViolationCheck checker; | ||
28 | var static EPackage metamodel; | ||
26 | 29 | ||
27 | static class RWInformation{ | 30 | static class RWInformation{ |
28 | public var String inputFolder; | 31 | public var String inputFolder; |
@@ -38,7 +41,6 @@ class Main { | |||
38 | 41 | ||
39 | def static void main(String[] args){ | 42 | def static void main(String[] args){ |
40 | //init model | 43 | //init model |
41 | var EPackage metamodel; | ||
42 | //init viatra engine for the violation checker | 44 | //init viatra engine for the violation checker |
43 | ReteEngine.getClass(); | 45 | ReteEngine.getClass(); |
44 | 46 | ||
@@ -49,10 +51,10 @@ class Main { | |||
49 | EcorePackage.eINSTANCE.eClass; | 51 | EcorePackage.eINSTANCE.eClass; |
50 | metamodel = EcorePackageImpl.eINSTANCE; | 52 | metamodel = EcorePackageImpl.eINSTANCE; |
51 | }else if (d == Domain.Github){ | 53 | }else if (d == Domain.Github){ |
52 | //TODO: Initialize Github Package | 54 | metamodel = GithubPackageImpl.eINSTANCE; |
53 | } | 55 | } |
54 | 56 | ||
55 | 57 | checker = new ViolationCheck(d); | |
56 | println("Start Reading Models..."); | 58 | println("Start Reading Models..."); |
57 | var reader = new GraphReader(metamodel, suffix); | 59 | var reader = new GraphReader(metamodel, suffix); |
58 | 60 | ||
@@ -68,7 +70,7 @@ class Main { | |||
68 | val models = new ArrayList<EMFGraph>(); | 70 | val models = new ArrayList<EMFGraph>(); |
69 | models.addAll(reader.readModels(inputFolder + "run" + i)); | 71 | models.addAll(reader.readModels(inputFolder + "run" + i)); |
70 | for(model : models){ | 72 | for(model : models){ |
71 | calculateAndOutputMetrics(model, YakindummPackageImpl.eNAME, outputFolder+model.name+"_run_"+i+".csv"); | 73 | calculateAndOutputMetrics(model, metamodel.name, outputFolder+model.name+"_run_"+i+".csv"); |
72 | } | 74 | } |
73 | } | 75 | } |
74 | println("output results Ended for: " + outputFolder); | 76 | println("output results Ended for: " + outputFolder); |
@@ -90,7 +92,10 @@ class Main { | |||
90 | } | 92 | } |
91 | 93 | ||
92 | var outputs = model.evaluateAllMetrics(); | 94 | var outputs = model.evaluateAllMetrics(); |
93 | var violations = ViolationCheck.calculateViolationCounts(model.root, d); | 95 | var violations = checker.calculateViolationCounts(model.root); |
96 | var map = checker.violationMaps(model.root); | ||
97 | |||
98 | println(violations); | ||
94 | if (violations == 0) { | 99 | if (violations == 0) { |
95 | validFiles += 1; | 100 | validFiles += 1; |
96 | } | 101 | } |
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/EMFGraph.xtend b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/EMFGraph.xtend index 8fa29fe6..2baaa929 100644 --- a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/EMFGraph.xtend +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/EMFGraph.xtend | |||
@@ -13,10 +13,19 @@ class EMFGraph extends Graph{ | |||
13 | @Accessors(PUBLIC_GETTER) | 13 | @Accessors(PUBLIC_GETTER) |
14 | var EObject root; | 14 | var EObject root; |
15 | 15 | ||
16 | def void init (EObject root, List<Metric> metrics, String name, List<EReference> referenceTypes){ | 16 | def void init (EObject root, List<Metric> metrics, String name){ |
17 | val otherContents = root.eAllContents.toList(); | 17 | val otherContents = root.eAllContents.toList(); |
18 | val metaModel = root.eClass.EPackage; | ||
19 | val referenceTypes = new ArrayList<EReference>; | ||
18 | this.root = root; | 20 | this.root = root; |
19 | otherContents.add(root); | 21 | otherContents.add(root); |
22 | |||
23 | metaModel.eAllContents.forEach[ | ||
24 | if(it instanceof EReference){ | ||
25 | referenceTypes.add(it); | ||
26 | } | ||
27 | ] | ||
28 | |||
20 | init(otherContents, metrics, name, referenceTypes); | 29 | init(otherContents, metrics, name, referenceTypes); |
21 | } | 30 | } |
22 | 31 | ||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/GraphReader.xtend b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/GraphReader.xtend index 053e0da3..afa10259 100644 --- a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/GraphReader.xtend +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/GraphReader.xtend | |||
@@ -20,9 +20,6 @@ import org.eclipse.emf.ecore.resource.Resource | |||
20 | import org.eclipse.emf.ecore.resource.ResourceSet | 20 | import org.eclipse.emf.ecore.resource.ResourceSet |
21 | import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl | 21 | import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl |
22 | import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl | 22 | import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl |
23 | import org.eclipse.emf.ecore.EGenericType | ||
24 | import org.eclipse.emf.ecore.EStructuralFeature | ||
25 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.TypedClusteringCoefficientMetric | ||
26 | 23 | ||
27 | class GraphReader{ | 24 | class GraphReader{ |
28 | val ResourceSet resSet = new ResourceSetImpl(); | 25 | val ResourceSet resSet = new ResourceSetImpl(); |
@@ -64,7 +61,7 @@ class GraphReader{ | |||
64 | //add a list of metrics | 61 | //add a list of metrics |
65 | val g = new EMFGraph(); | 62 | val g = new EMFGraph(); |
66 | for(root : roots){ | 63 | for(root : roots){ |
67 | g.init(root, metrics, name.replaceFirst(suffix, ""), referenceTypes); | 64 | g.init(root, metrics, name.replaceFirst(suffix, "")); |
68 | } | 65 | } |
69 | 66 | ||
70 | count ++; | 67 | count ++; |
@@ -88,7 +85,7 @@ class GraphReader{ | |||
88 | //add a list of metrics | 85 | //add a list of metrics |
89 | val g = new EMFGraph(); | 86 | val g = new EMFGraph(); |
90 | for(root : roots){ | 87 | for(root : roots){ |
91 | g.init(root, metrics, filename.replaceFirst(suffix, ""), referenceTypes); | 88 | g.init(root, metrics, filename.replaceFirst(suffix, "")); |
92 | } | 89 | } |
93 | return g | 90 | return g |
94 | } | 91 | } |
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); |