Property definitions

nitc $ BadConceptonController :: defaultinit
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