From: Alexandre Terrasa Date: Mon, 4 Jul 2016 23:22:45 +0000 (-0400) Subject: metrics: add metric about abstract class inheritance X-Git-Url: http://nitlanguage.org metrics: add metric about abstract class inheritance Signed-off-by: Alexandre Terrasa --- 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