Property definitions

nitc $ MDUI :: defaultinit
# Module metric: proportion of MClasses Defined Using Inheritance
#
# Count MClasses that have another parents than Object
class MDUI
	super MModuleMetric
	super FloatMetric
	redef fun name do return "mdui"
	redef fun desc do return "proportion of mclass defined using inheritance (has other parent than Object)"

	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
end
src/metrics/inheritance_metrics.nit:106,1--128,3