diff options
Diffstat (limited to 'Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/NodeTypeMetric.java')
-rw-r--r-- | Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/NodeTypeMetric.java | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/NodeTypeMetric.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/NodeTypeMetric.java new file mode 100644 index 00000000..75c2cfef --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/NodeTypeMetric.java | |||
@@ -0,0 +1,54 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics; | ||
2 | |||
3 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.GraphStatistic; | ||
4 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric; | ||
5 | import java.util.ArrayList; | ||
6 | import java.util.HashMap; | ||
7 | import java.util.List; | ||
8 | import java.util.Map; | ||
9 | import java.util.Set; | ||
10 | import org.eclipse.emf.ecore.EObject; | ||
11 | import org.eclipse.xtext.xbase.lib.CollectionLiterals; | ||
12 | import org.eclipse.xtext.xbase.lib.Conversions; | ||
13 | |||
14 | @SuppressWarnings("all") | ||
15 | public class NodeTypeMetric extends Metric { | ||
16 | @Override | ||
17 | public String[][] evaluate(final GraphStatistic g) { | ||
18 | Object _evaluateSamples = this.evaluateSamples(g); | ||
19 | HashMap<String, Double> map = ((HashMap<String, Double>) _evaluateSamples); | ||
20 | ArrayList<String[]> output = new ArrayList<String[]>(); | ||
21 | output.add(((String[])Conversions.unwrapArray(CollectionLiterals.<String>newArrayList("Node Type"), String.class))); | ||
22 | Set<String> keys = map.keySet(); | ||
23 | ArrayList<String> values = CollectionLiterals.<String>newArrayList(); | ||
24 | for (final String key : keys) { | ||
25 | Double _get = map.get(key); | ||
26 | String _plus = (_get + ""); | ||
27 | values.add(_plus); | ||
28 | } | ||
29 | final Set<String> _converted_keys = (Set<String>)keys; | ||
30 | output.add(((String[])Conversions.unwrapArray(_converted_keys, String.class))); | ||
31 | final ArrayList<String> _converted_values = (ArrayList<String>)values; | ||
32 | output.add(((String[])Conversions.unwrapArray(_converted_values, String.class))); | ||
33 | return ((String[][])Conversions.unwrapArray(output, String[].class)); | ||
34 | } | ||
35 | |||
36 | @Override | ||
37 | public Object evaluateSamples(final GraphStatistic g) { | ||
38 | HashMap<String, Double> map = new HashMap<String, Double>(); | ||
39 | List<EObject> nodes = g.getAllNodes(); | ||
40 | int _size = nodes.size(); | ||
41 | double single = (1.0 / _size); | ||
42 | Map<EObject, Set<String>> nodeToType = g.getNodeToTypesMap(); | ||
43 | for (final EObject node : nodes) { | ||
44 | Set<String> _get = nodeToType.get(node); | ||
45 | for (final String cl : _get) { | ||
46 | { | ||
47 | Double value = map.getOrDefault(cl, Double.valueOf(0.0)); | ||
48 | map.put(cl, Double.valueOf(((value).doubleValue() + single))); | ||
49 | } | ||
50 | } | ||
51 | } | ||
52 | return map; | ||
53 | } | ||
54 | } | ||