package jdepend.util.todolist;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import jdepend.framework.log.LogUtil;
import jdepend.model.result.AnalysisResult;
/**
* todolist组件对外门面
*
* @author user
*
*/
public class TODOListIdentifyerFacade {
private List<TODOItem> list;
private List<TODOIdentifyer> identifyers;
public TODOListIdentifyerFacade() {
identifyers = new ArrayList<TODOIdentifyer>();
identifyers.add(new MoveJavaClassTODOIdentifyer());
identifyers.add(new UniteComponentTODOIdentifyer());
identifyers.add(new SplitComponentTODOIdentifyer());
identifyers.add(new AdjustAbstractTODOIdentifyer());
}
public List<TODOItem> identify(AnalysisResult result) throws TODOListException {
list = new ArrayList<TODOItem>();
TODOIdentifyInfo info = new TODOIdentifyInfo(result);
for (TODOIdentifyer identifyer : identifyers) {
long start = System.currentTimeMillis();
list.addAll(identifyer.identify(info));
LogUtil.getInstance(TODOListIdentifyerFacade.class).systemLog(
identifyer.getClass().getName() + " [" + (System.currentTimeMillis() - start) + "]");
}
// 按Order排序
Collections.sort(list);
return list;
}
public void registIdentifyer(TODOIdentifyer identifyer) {
this.identifyers.add(identifyer);
}
}