class NoAbstractImplementation
super BadConception
var bad_methods = new Array[MMethodDef]
redef fun name do return "LONGMETH"
redef fun desc do return "No Implemented abstract property"
redef fun collect(mclassdef, model_builder): Bool do
if not mclassdef.mclass.is_abstract and not mclassdef.mclass.is_interface then
if mclassdef.collect_abstract_methods(filter).not_empty then
bad_methods.add_all(mclassdef.collect_not_define_properties(filter))
end
end
self.score_rate
return bad_methods.not_empty
end
redef fun print_result do
print phase.toolcontext.format_h2("{desc}:")
if self.bad_methods.not_empty then
print " Affected method(s):"
for method in self.bad_methods do
print " -{method.name}"
end
end
end
redef fun score_rate do
if self.bad_methods.not_empty then
self.score = self.bad_methods.length.to_f / phase.average_number_of_method
end
end
end
src/metrics/codesmells_metrics.nit:341,1--374,3