aboutsummaryrefslogtreecommitdiffstats
path: root/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/Graph.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/graph/Graph.xtend')
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/Graph.xtend71
1 files changed, 71 insertions, 0 deletions
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/Graph.xtend b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/Graph.xtend
new file mode 100644
index 00000000..6b400b0d
--- /dev/null
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/Graph.xtend
@@ -0,0 +1,71 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph
2
3import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric
4import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MetricSampleGroup
5import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MultiplexParticipationCoefficientMetric
6import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.NodeActivityMetric
7import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.OutDegreeMetric
8import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.TypedOutDegree
9import java.util.ArrayList
10import java.util.HashMap
11import java.util.List
12import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.NodeTypeMetric
13import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.EdgeTypeMetric
14
15abstract class Graph {
16
17 protected static val String META_MODEL_HEADER = "Meta Mode"
18 protected static val String NUM_NODE_HEADER = "Number Of Nodes";
19 protected static val String NUM_EDGE_TYPE_HEADER = "Number of Edge types";
20 protected static val String STATE_ID_HEADER = "State Id";
21
22 protected val statistic = new GraphStatistic();
23 protected var List<Metric> metrics;
24 protected var String name = "";
25 protected var String metaModel = "";
26
27 /**
28 * evaluate all metrics for this model
29 * return the result as a two dimentional list
30 */
31 def ArrayList<ArrayList<String>> evaluateAllMetrics(){
32 val result = new ArrayList<ArrayList<String>>();
33 setBasicInformation(result);
34
35 for(metric : this.metrics){
36 val datas = metric.evaluate(this.statistic);
37 for(row : datas){
38 result.add(new ArrayList<String>(row));
39 }
40 }
41 return result;
42 }
43
44 def MetricSampleGroup evaluateAllMetricsToSamples(){
45 var sample = new MetricSampleGroup();
46
47 for(metric : this.metrics){
48 if(metric instanceof MultiplexParticipationCoefficientMetric){
49 sample.mpcSamples = metric.evaluateSamples(this.statistic) as ArrayList<Double>;
50 }else if(metric instanceof NodeActivityMetric){
51 sample.naSamples = metric.evaluateSamples(this.statistic) as ArrayList<Double>;
52 }else if(metric instanceof OutDegreeMetric){
53 sample.outDegreeSamples = metric.evaluateSamples(this.statistic) as ArrayList<Double>;
54 }else if(metric instanceof TypedOutDegree){
55 sample.typedOutDegreeSamples = metric.evaluateSamples(this.statistic) as HashMap<String, List<Integer>>;
56 }else if(metric instanceof NodeTypeMetric){
57 sample.nodeTypeSamples = metric.evaluateSamples(this.statistic) as HashMap<String, Double>;
58 }else if (metric instanceof EdgeTypeMetric){
59 sample.edgeTypeSamples = metric.evaluateSamples(this.statistic) as HashMap<String, Double>;
60 }
61 }
62
63 return sample;
64 }
65
66 def void setBasicInformation(ArrayList<ArrayList<String>> result);
67
68 def GraphStatistic getStatistic();
69
70 def String getName();
71} \ No newline at end of file