From 3249492dcee4bf1472c8baa76b1eb96e0fa47134 Mon Sep 17 00:00:00 2001 From: Alexandre Terrasa Date: Mon, 4 Jul 2016 19:22:45 -0400 Subject: [PATCH] metrics: add metric about abstract class inheritance Signed-off-by: Alexandre Terrasa --- src/metrics/inheritance_metrics.nit | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/metrics/inheritance_metrics.nit b/src/metrics/inheritance_metrics.nit index b00a40b..a9a4a6d 100644 --- a/src/metrics/inheritance_metrics.nit +++ b/src/metrics/inheritance_metrics.nit @@ -355,6 +355,29 @@ class CNODC end end +# MClass metric: Number of Abstract Class Ancestors +# +# Count only absrtract classes +class CNOAA + super MClassMetric + super IntMetric + redef fun name do return "cnoaa" + redef fun desc do return "number of abstract class ancestors" + + redef fun collect(mclasses) do + for mclass in mclasses do + var count = 0 + for parent in mclass.in_hierarchy(mainmodule).greaters do + if parent == mclass then continue + if parent.kind == abstract_kind then + count += 1 + end + end + values[mclass] = count + end + end +end + # MClass metric: Number of Interface Ancestors # # Count only interfaces -- 1.7.9.5