class BadConceptonController
var model: Model
var filter: ModelFilter
# Code smell list
var bad_conception_elements = new Array[BadConceptionFinder]
# Print all collected code smell sort in decroissant order
fun print_all do
for bad_conception in self.sort do
bad_conception.print_collected_data
end
end
# Print the n top element
fun print_top(number: Int) do
for bad_conception in self.get_numbers_of_elements(number) do
bad_conception.print_collected_data
end
end
# Collect method take Array of mclassdef to find the code smells for every class
fun collect(mclassdefs: Array[MClassDef],phase: CodeSmellsMetricsPhase) do
for mclassdef in mclassdefs do
var bad_conception_class = new BadConceptionFinder(mclassdef, phase, model, filter)
bad_conception_class.collect
bad_conception_elements.add(bad_conception_class)
end
end
# Sort the bad_conception_elements array
fun sort: Array[BadConceptionFinder]
do
var res = bad_conception_elements
var sorter = new BadConceptionComparator
sorter.sort(res)
return res
end
# Return an array with n elements
fun get_numbers_of_elements(number : Int) : Array[BadConceptionFinder]do
var return_values = new Array[BadConceptionFinder]
var list = self.sort
var min = number
if list.length <= number*2 then min = list.length
for i in [0..min[ do
var t = list[list.length-i-1]
return_values.add(t)
end
return return_values
end
end
src/metrics/codesmells_metrics.nit:63,1--116,3