package jdepend.model.area;
import java.util.ArrayList;
import java.util.Collection;
import jdepend.model.Component;
import jdepend.model.profile.model.AreaComponentProfile;
import jdepend.model.result.AnalysisResult;
/**
* 按人工指定的组件层次创建组件区域
*
* @author user
*
*/
public class AreaCreatorWithComponentLayer extends AbstractAreaCreator {
@Override
public String getName() {
return AreaComponentProfile.AccordingComponentLayer;
}
@Override
public Collection<AreaComponentInfo> calCoverCount(AnalysisResult result) {
Collection<AreaComponentInfo> areaComponents = new ArrayList<AreaComponentInfo>();
String name;
AreaComponentInfo componentInfo;
for (Component component : result.getComponents()) {
if (component.isDefinedComponentLevel()) {
name = Component.layerDesc(component.getLayer());
componentInfo = getTheAreaComponentInfo(areaComponents, name);
if (componentInfo == null) {
componentInfo = new AreaComponentInfo();
componentInfo.setLayer(component.getLayer());
componentInfo.setName(name);
areaComponents.add(componentInfo);
}
componentInfo.getComponents().add(component);
}
}
return areaComponents;
}
}