redef fun collect(mclasses) do
for mclass in mclasses do
values[mclass] = mclass.in_hierarchy(mainmodule).direct_greaters.length
end
end
src/metrics/mclasses_metrics.nit:126,2--130,4
redef fun collect(mclasses) do
for mclass in mclasses do
values[mclass] = mclass.in_hierarchy(mainmodule).direct_smallers.length
end
end
src/metrics/mclasses_metrics.nit:140,2--144,4
redef fun collect(mmodules) do
for mmodule in mmodules do
var totc = mmodule.collect_intro_mclassdefs(filter).length
totc += mmodule.collect_redef_mclassdefs(filter).length
var ditc = mmodule.in_importation.depth
values[mmodule] = totc.to_f / (ditc + 1).to_f
end
end
src/metrics/mendel_metrics.nit:157,2--164,4
redef fun collect(mclasses) do
var cbms = new CBMS(model, mainmodule, filter)
for mclass in mclasses do
# compute branch mean size
var parents = mclass.in_hierarchy(mainmodule).direct_greaters
if parents.length > 0 then
cbms.clear
cbms.collect(new HashSet[MClass].from(parents))
# compute class novelty index
var locc = mclass.collect_accessible_mproperties(mainmodule, filter).length
values[mclass] = locc.to_f / cbms.avg
else
values[mclass] = 0.0
end
end
end
src/metrics/mendel_metrics.nit:175,2--190,4
redef fun collect(mmodules) do
var mbms = new MBMS(model, mainmodule, filter)
for mmodule in mmodules do
# compute branch mean size
var parents = mmodule.in_importation.direct_greaters
if parents.length > 0 then
mbms.clear
mbms.collect(new HashSet[MModule].from(parents))
# compute module novelty index
var locc = mmodule.collect_intro_mclassdefs(filter).length
locc += mmodule.collect_redef_mclassdefs(filter).length
values[mmodule] = locc.to_f / mbms.avg
else
values[mmodule] = 0.0
end
end
end
src/metrics/mendel_metrics.nit:201,2--217,4
redef fun collect(mmodules) do
var mnvi = new MNVI(model, mainmodule, filter)
mnvi.collect(mmodules)
for mmodule in mmodules do
var locc = mmodule.collect_intro_mclassdefs(filter).length
locc += mmodule.collect_redef_mclassdefs(filter).length
values[mmodule] = mnvi.values[mmodule] * locc.to_f
end
end
src/metrics/mendel_metrics.nit:246,2--254,4
redef fun collect(mmodules) do
for mmodule in mmodules do
var count = 0
for mclass in mmodule.intro_mclasses do
if mclass.in_hierarchy(mainmodule).greaters.length > 2 then count += 1
end
if mmodule.intro_mclasses.is_empty then
values[mmodule] = 0.0
else
values[mmodule] = count.to_f / mmodule.intro_mclasses.length.to_f
end
end
end
src/metrics/inheritance_metrics.nit:115,2--127,4
redef fun collect(mmodules) do
for mmodule in mmodules do
var count = 0
var nb = 0
for mclass in mmodule.intro_mclasses do
if mclass.kind == abstract_kind or mclass.kind == concrete_kind or mclass.kind == extern_kind then
if mclass.in_hierarchy(mainmodule).greaters.length > 2 then count += 1
end
nb += 1
end
if mmodule.intro_mclasses.is_empty then
values[mmodule] = 0.0
else
values[mmodule] = count.to_f / nb.to_f
end
end
end
src/metrics/inheritance_metrics.nit:139,2--155,4
redef fun collect(mmodules) do
for mmodule in mmodules do
var count = 0
var nb = 0
for mclass in mmodule.intro_mclasses do
if mclass.kind == interface_kind then
if mclass.in_hierarchy(mainmodule).greaters.length > 2 then count += 1
end
nb += 1
end
if mmodule.intro_mclasses.is_empty then
values[mmodule] = 0.0
else
values[mmodule] = count.to_f / nb.to_f
end
end
end
src/metrics/inheritance_metrics.nit:167,2--183,4
redef fun collect(mmodules) do
for mmodule in mmodules do
var count = 0
for mclass in mmodule.intro_mclasses do
if mclass.in_hierarchy(mainmodule).direct_smallers.length > 0 then count += 1
end
if mmodule.intro_mclasses.is_empty then
values[mmodule] = 0.0
else
values[mmodule] = count.to_f / mmodule.intro_mclasses.length.to_f
end
end
end
src/metrics/inheritance_metrics.nit:195,2--207,4
redef fun collect(mmodules) do
for mmodule in mmodules do
var count = 0
var nb = 0
for mclass in mmodule.intro_mclasses do
if mclass.kind == abstract_kind or mclass.kind == concrete_kind or mclass.kind == extern_kind then
if mclass.in_hierarchy(mainmodule).direct_smallers.length > 0 then count += 1
end
nb += 1
end
if mmodule.intro_mclasses.is_empty then
values[mmodule] = 0.0
else
values[mmodule] = count.to_f / nb.to_f
end
end
end
src/metrics/inheritance_metrics.nit:219,2--235,4
redef fun collect(mmodules) do
for mmodule in mmodules do
var count = 0
var nb = 0
for mclass in mmodule.intro_mclasses do
if mclass.kind == interface_kind then
if mclass.in_hierarchy(mainmodule).direct_smallers.length > 0 then count += 1
end
nb += 1
end
if mmodule.intro_mclasses.is_empty then
values[mmodule] = 0.0
else
values[mmodule] = count.to_f / nb.to_f
end
end
end
src/metrics/inheritance_metrics.nit:247,2--263,4
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 or parent.kind == concrete_kind or parent.kind == extern_kind then
count += 1
end
end
values[mclass] = count
end
end
src/metrics/inheritance_metrics.nit:275,2--286,4
redef fun collect(mclasses) do
for mclass in mclasses do
var count = 0
for parent in mclass.in_hierarchy(mainmodule).direct_greaters do
if parent == mclass then continue
if parent.kind == abstract_kind or parent.kind == concrete_kind or parent.kind == extern_kind then
count += 1
end
end
values[mclass] = count
end
end
src/metrics/inheritance_metrics.nit:298,2--309,4
redef fun collect(mclasses) do
for mclass in mclasses do
var count = 0
for parent in mclass.in_hierarchy(mainmodule).direct_smallers do
if parent == mclass then continue
if parent.kind == abstract_kind or parent.kind == concrete_kind or parent.kind == extern_kind then
count += 1
end
end
values[mclass] = count
end
end
src/metrics/inheritance_metrics.nit:321,2--332,4
redef fun collect(mclasses) do
for mclass in mclasses do
var count = 0
for parent in mclass.in_hierarchy(mainmodule).smallers do
if parent == mclass then continue
if parent.kind == abstract_kind or parent.kind == concrete_kind or parent.kind == extern_kind then
count += 1
end
end
values[mclass] = count
end
end
src/metrics/inheritance_metrics.nit:344,2--355,4
redef fun collect(mclasses) do
for mclass in mclasses do
var count = 0
for parent in mclass.in_hierarchy(mainmodule).direct_greaters do
if parent == mclass then continue
if parent.kind == interface_kind then
count += 1
end
end
values[mclass] = count
end
end
src/metrics/inheritance_metrics.nit:413,2--424,4
redef fun collect(mclasses) do
for mclass in mclasses do
var count = 0
for parent in mclass.in_hierarchy(mainmodule).direct_smallers do
if parent == mclass then continue
if parent.kind == interface_kind then
count += 1
end
end
values[mclass] = count
end
end
src/metrics/inheritance_metrics.nit:436,2--447,4
redef fun collect(mclasses) do
for mclass in mclasses do
var all = mclass.collect_accessible_mattributes(mainmodule, filter)
for mattr in all do
if mattr.is_nullable then values.inc(mclass)
end
end
end
src/metrics/nullables_metrics.nit:89,2--96,4
redef fun collect(mainmodules) do
for mainmodule in mainmodules do
var analysis = new MetricsRapidTypeAnalysis(modelbuilder, mainmodule)
analysis.run_analysis
values[mainmodule] = analysis.tnli.sum
end
end
src/metrics/rta_metrics.nit:140,2--146,4
redef fun collect(mainmodules) do
for mainmodule in mainmodules do
var analysis = new MetricsRapidTypeAnalysis(modelbuilder, mainmodule)
analysis.run_analysis
values[mainmodule] = analysis.live_types.length
end
end
src/metrics/rta_metrics.nit:156,2--162,4
redef fun collect(mainmodules) do
for mainmodule in mainmodules do
var analysis = new MetricsRapidTypeAnalysis(modelbuilder, mainmodule)
analysis.run_analysis
values[mainmodule] = analysis.live_cast_types.length
end
end
src/metrics/rta_metrics.nit:172,2--178,4
redef fun collect(mainmodules) do
for mainmodule in mainmodules do
var live = new HashSet[MClass]
var analysis = new MetricsRapidTypeAnalysis(modelbuilder, mainmodule)
analysis.run_analysis
for mtype in analysis.live_types do
live.add(mtype.mclass)
end
values[mainmodule] = live.length
end
end
src/metrics/rta_metrics.nit:188,2--198,4
redef fun collect(mainmodules) do
for mainmodule in mainmodules do
var analysis = new MetricsRapidTypeAnalysis(modelbuilder, mainmodule)
analysis.run_analysis
values[mainmodule] = analysis.live_methods.length
end
end
src/metrics/rta_metrics.nit:208,2--214,4
redef fun collect(mainmodules) do
for mainmodule in mainmodules do
var analysis = new MetricsRapidTypeAnalysis(modelbuilder, mainmodule)
analysis.run_analysis
values[mainmodule] = analysis.live_methoddefs.length
end
end
src/metrics/rta_metrics.nit:224,2--230,4
redef fun collect(mainmodules) do
for mainmodule in mainmodules do
var dead = 0
var analysis = new MetricsRapidTypeAnalysis(modelbuilder, mainmodule)
analysis.run_analysis
for mmethod in analysis.live_methods do
for mdef in mmethod.mpropdefs do
if analysis.live_methoddefs.has(mdef) or mdef.is_abstract then continue
dead += 1
end
end
values[mainmodule] = dead
end
end
src/metrics/rta_metrics.nit:240,2--253,4