Merge: src/model/model_index: model index uses BKTree
[nit.git] / src / metrics / mmodules_metrics.nit
index 1e9d190..b740912 100644 (file)
@@ -37,21 +37,20 @@ private class MModulesMetricsPhase
                out.mkdir
 
                var model = toolcontext.modelbuilder.model
-               var model_view = model.private_view
 
                print toolcontext.format_h1("\n# MModules metrics")
 
                var metrics = new MetricSet
-               metrics.register(new MNOA(mainmodule, model_view))
-               metrics.register(new MNOP(mainmodule, model_view))
-               metrics.register(new MNOC(mainmodule, model_view))
-               metrics.register(new MNOD(mainmodule, model_view))
-               metrics.register(new MDIT(mainmodule, model_view))
-               metrics.register(new MNBI(mainmodule, model_view))
-               metrics.register(new MNBR(mainmodule, model_view))
-               metrics.register(new MNBCC(mainmodule, model_view))
-               metrics.register(new MNBAC(mainmodule, model_view))
-               metrics.register(new MNBIC(mainmodule, model_view))
+               metrics.register(new MNOA(model, mainmodule))
+               metrics.register(new MNOP(model, mainmodule))
+               metrics.register(new MNOC(model, mainmodule))
+               metrics.register(new MNOD(model, mainmodule))
+               metrics.register(new MDIT(model, mainmodule))
+               metrics.register(new MNBI(model, mainmodule))
+               metrics.register(new MNBR(model, mainmodule))
+               metrics.register(new MNBCC(model, mainmodule))
+               metrics.register(new MNBAC(model, mainmodule))
+               metrics.register(new MNBIC(model, mainmodule))
 
                var mmodules = new HashSet[MModule]
                for mpackage in model.mpackages do
@@ -85,11 +84,14 @@ abstract class MModuleMetric
        super Metric
        redef type ELM: MModule
 
-       # Main module used for linearization
+       # Model view used to collect and filter entities
+       var model: Model
+
+       # Mainmodule used for linearization
        var mainmodule: MModule
 
-       # Model view used to collect and filter entities
-       var model_view: ModelView
+       # Filter to apply on model if any
+       var filter: nullable ModelFilter
 end
 
 # Module Metric: Number of Ancestors
@@ -174,7 +176,7 @@ class MNBD
        redef fun collect(mmodules) do
                for mmodule in mmodules do
                        values[mmodule] = 0
-                       for a in mmodule.collect_ancestors(model_view) do
+                       for a in mmodule.collect_ancestors(mainmodule, filter) do
                                values[mmodule] += a.intro_mclasses.length
                        end
                end