X-Git-Url: http://nitlanguage.org diff --git a/src/metrics/mclasses_metrics.nit b/src/metrics/mclasses_metrics.nit index 2f8b9ef..2404a38 100644 --- a/src/metrics/mclasses_metrics.nit +++ b/src/metrics/mclasses_metrics.nit @@ -37,24 +37,24 @@ private class MClassesMetricsPhase out.mkdir var model = toolcontext.modelbuilder.model - var model_view = new ModelView(model, mainmodule) + var filter = new ModelFilter(private_visibility) print toolcontext.format_h1("\n# MClasses metrics") var metrics = new MetricSet - metrics.register(new CNOA(model_view)) - metrics.register(new CNOP(model_view)) - metrics.register(new CNOC(model_view)) - metrics.register(new CNOD(model_view)) - metrics.register(new CDIT(model_view)) - metrics.register(new CNBP(model_view)) - metrics.register(new CNBA(model_view)) - metrics.register(new CNBI(model_view)) - metrics.register(new CNBM(model_view)) - metrics.register(new CNBV(model_view)) - metrics.register(new CNBIP(model_view)) - metrics.register(new CNBRP(model_view)) - metrics.register(new CNBHP(model_view)) + metrics.register(new CNOA(model, mainmodule, filter)) + metrics.register(new CNOP(model, mainmodule, filter)) + metrics.register(new CNOC(model, mainmodule, filter)) + metrics.register(new CNOD(model, mainmodule, filter)) + metrics.register(new CDIT(model, mainmodule, filter)) + metrics.register(new CNBP(model, mainmodule, filter)) + metrics.register(new CNBA(model, mainmodule, filter)) + metrics.register(new CNBI(model, mainmodule, filter)) + metrics.register(new CNBM(model, mainmodule, filter)) + metrics.register(new CNBV(model, mainmodule, filter)) + metrics.register(new CNBIP(model, mainmodule, filter)) + metrics.register(new CNBRP(model, mainmodule, filter)) + metrics.register(new CNBHP(model, mainmodule, filter)) var mclasses = new HashSet[MClass] for mpackage in model.mpackages do @@ -92,8 +92,14 @@ abstract class MClassMetric super Metric redef type ELM: MClass - # Model view used to collect and filter entities - var model_view: ModelView + # Model used to collect and filter entities + var model: Model + + # Mainmodule for class linearization + var mainmodule: MModule + + # Filter to apply + var filter: nullable ModelFilter end # Class Metric: Number of Ancestors @@ -105,7 +111,7 @@ class CNOA redef fun collect(mclasses) do for mclass in mclasses do - values[mclass] = mclass.in_hierarchy(model_view.mainmodule).greaters.length - 1 + values[mclass] = mclass.in_hierarchy(mainmodule).greaters.length - 1 end end end @@ -119,7 +125,7 @@ class CNOP redef fun collect(mclasses) do for mclass in mclasses do - values[mclass] = mclass.in_hierarchy(model_view.mainmodule).direct_greaters.length + values[mclass] = mclass.in_hierarchy(mainmodule).direct_greaters.length end end end @@ -133,7 +139,7 @@ class CNOC redef fun collect(mclasses) do for mclass in mclasses do - values[mclass] = mclass.in_hierarchy(model_view.mainmodule).direct_smallers.length + values[mclass] = mclass.in_hierarchy(mainmodule).direct_smallers.length end end end @@ -147,7 +153,7 @@ class CNOD redef fun collect(mclasses) do for mclass in mclasses do - values[mclass] = mclass.in_hierarchy(model_view.mainmodule).smallers.length - 1 + values[mclass] = mclass.in_hierarchy(mainmodule).smallers.length - 1 end end end @@ -161,7 +167,7 @@ class CDIT redef fun collect(mclasses) do for mclass in mclasses do - values[mclass] = mclass.in_hierarchy(model_view.mainmodule).depth + values[mclass] = mclass.in_hierarchy(mainmodule).depth end end end @@ -175,7 +181,7 @@ class CNBP redef fun collect(mclasses) do for mclass in mclasses do - values[mclass] = mclass.collect_accessible_mproperties(model_view).length + values[mclass] = mclass.collect_accessible_mproperties(mainmodule, filter).length end end end @@ -189,7 +195,7 @@ class CNBA redef fun collect(mclasses) do for mclass in mclasses do - values[mclass] = mclass.collect_accessible_mattributes(model_view).length + values[mclass] = mclass.collect_accessible_mattributes(mainmodule, filter).length end end end @@ -203,7 +209,7 @@ class CNBM redef fun collect(mclasses) do for mclass in mclasses do - values[mclass] = mclass.collect_accessible_mmethods(model_view).length + values[mclass] = mclass.collect_accessible_mmethods(mainmodule, filter).length end end end @@ -217,7 +223,7 @@ class CNBI redef fun collect(mclasses) do for mclass in mclasses do - values[mclass] = mclass.collect_accessible_inits(model_view).length + values[mclass] = mclass.collect_accessible_inits(mainmodule, filter).length end end end @@ -231,7 +237,7 @@ class CNBV redef fun collect(mclasses) do for mclass in mclasses do - values[mclass] = mclass.collect_accessible_vts(model_view).length + values[mclass] = mclass.collect_accessible_vts(mainmodule, filter).length end end end @@ -245,7 +251,7 @@ class CNBIP redef fun collect(mclasses) do for mclass in mclasses do - values[mclass] = mclass.collect_intro_mproperties(model_view).length + values[mclass] = mclass.collect_intro_mproperties(filter).length end end end @@ -259,7 +265,7 @@ class CNBRP redef fun collect(mclasses) do for mclass in mclasses do - values[mclass] = mclass.collect_redef_mproperties(model_view).length + values[mclass] = mclass.collect_redef_mproperties(filter).length end end end @@ -273,7 +279,7 @@ class CNBHP redef fun collect(mclasses) do for mclass in mclasses do - values[mclass] = mclass.collect_inherited_mproperties(model_view).length + values[mclass] = mclass.collect_inherited_mproperties(mainmodule, filter).length end end end @@ -287,7 +293,7 @@ class CNBLP redef fun collect(mclasses) do for mclass in mclasses do - values[mclass] = mclass.collect_local_mproperties(model_view).length + values[mclass] = mclass.collect_local_mproperties(filter).length end end end