blob: 101076e9c1c68d7bcb16871bb4ee140afb2efaf7 [file] [log] [blame]
package org.eclipse.emf.refactor.smells.configuration.core;
import java.util.LinkedList;
import org.eclipse.emf.refactor.smells.core.ModelSmell;
/**
* Helper class for the property page providing a sorted list of the installed smells to be used
* <br>- by the pages table.
*
* @author Matthias Burhenne
*
*/
public class SortedModelSmellList {
private LinkedList<LinkedList<ModelSmell>> smellList;
public SortedModelSmellList(LinkedList<ModelSmell> rawSmellList) {
smellList = new LinkedList<LinkedList<ModelSmell>>();
for (int position = 0; position < rawSmellList.size(); position++) {
addSmellToList(rawSmellList.get(position));
}
}
public int getSize(){
return smellList.size();
}
public LinkedList<ModelSmell> get(int index){
return smellList.get(index);
}
public LinkedList<LinkedList<ModelSmell>> getModelSmellList() {
return smellList;
}
private void addSmellToList(ModelSmell smell) {
final String metamodel = smell.getMetamodel();
LinkedList<ModelSmell> list = getMetamodelList(metamodel);
if (list == null) {
list = new LinkedList<ModelSmell>();
smellList.add(list);
}
list.add(smell);
}
private LinkedList<ModelSmell> getMetamodelList(String metamodel) {
for (LinkedList<ModelSmell> list : smellList) {
if (list.get(0).getMetamodel().equals(metamodel))
return list;
}
return null;
}
}