aboutsummaryrefslogtreecommitdiffstats
path: root/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/EcoreMetricDistance.xtend
diff options
context:
space:
mode:
Diffstat (limited to 'Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/EcoreMetricDistance.xtend')
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/EcoreMetricDistance.xtend44
1 files changed, 44 insertions, 0 deletions
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 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app
2
3import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.KSDistance
4import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.EMFGraph
5import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io.RepMetricsReader
6import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric
7import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MetricSampleGroup
8import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MultiplexParticipationCoefficientMetric
9import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.NodeActivityMetric
10import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.NodeTypeMetric
11import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.OutDegreeMetric
12import java.util.ArrayList
13import org.eclipse.emf.ecore.EObject
14
15class 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