diff options
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.xtend | 61 |
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 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph | ||
2 | |||
3 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric | ||
4 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MetricSampleGroup | ||
5 | import java.util.ArrayList | ||
6 | import java.util.List | ||
7 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MultiplexParticipationCoefficientMetric | ||
8 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.NodeActivityMetric | ||
9 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.OutDegreeMetric | ||
10 | |||
11 | abstract 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 | ||