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.xtend61
1 files changed, 61 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..cf4aedba
--- /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,61 @@
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 java.util.ArrayList
6import java.util.List
7import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MultiplexParticipationCoefficientMetric
8import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.NodeActivityMetric
9import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.OutDegreeMetric
10
11abstract class Graph {
12
13 protected static val String META_MODEL_HEADER = "Meta Mode"
14 protected static val String NUM_NODE_HEADER = "Number Of Nodes";
15 protected static val String NUM_EDGE_TYPE_HEADER = "Number of Edge types";
16 protected static val String STATE_ID_HEADER = "State Id";
17
18 protected val statistic = new GraphStatistic();
19 protected var List<Metric> metrics;
20 protected var String name = "";
21 protected var String metaModel = "";
22
23 /**
24 * evaluate all metrics for this model
25 * return the result as a two dimentional list
26 */
27 def ArrayList<ArrayList<String>> evaluateAllMetrics(){
28 val result = new ArrayList<ArrayList<String>>();
29 setBasicInformation(result);
30
31 for(metric : this.metrics){
32 val datas = metric.evaluate(this.statistic);
33 for(row : datas){
34 result.add(new ArrayList<String>(row));
35 }
36 }
37 return result;
38 }
39
40 def MetricSampleGroup evaluateAllMetricsToSamples(){
41 var sample = new MetricSampleGroup();
42
43 for(metric : this.metrics){
44 if(metric instanceof MultiplexParticipationCoefficientMetric){
45 sample.mpcSamples = metric.evaluateSamples(this.statistic);
46 }else if(metric instanceof NodeActivityMetric){
47 sample.naSamples = metric.evaluateSamples(this.statistic);
48 }else if(metric instanceof OutDegreeMetric){
49 sample.outDegreeSamples = metric.evaluateSamples(this.statistic);
50 }
51 }
52
53 return sample;
54 }
55
56 def void setBasicInformation(ArrayList<ArrayList<String>> result);
57
58 def GraphStatistic getStatistic();
59
60 def String getName();
61} \ No newline at end of file