package jdepend.util.todolist; import java.util.ArrayList; import java.util.List; import jdepend.framework.exception.JDependException; import jdepend.framework.log.BusiLogUtil; import jdepend.framework.log.Operation; import jdepend.framework.util.MetricsFormat; import jdepend.model.Relation; import jdepend.util.refactor.RefactorToolFactory; public final class UniteComponentTODOItem extends TODOItem { private Relation relation; public UniteComponentTODOItem(Relation relation) { super(); this.relation = relation; } @Override public List<Object> execute() throws JDependException { List<String> components = new ArrayList<String>(); components.add(relation.getCurrent().getName()); components.add(relation.getDepend().getName()); String newComponent = relation.getCurrent().getName() + "|" + relation.getDepend().getName(); int clayer = relation.getCurrent().getComponent().getLayer(); int dlayer = relation.getDepend().getComponent().getLayer(); int layer = Math.min(clayer, dlayer); RefactorToolFactory.createTool().uniteComponent(newComponent, layer, components); // 记录日志 BusiLogUtil.getInstance().businessLog(Operation.uniteComponent); return null; } public Relation getRelation() { return relation; } @Override public List<Object> getInfo() { StringBuilder info = new StringBuilder(); info.append("组件["); info.append(this.relation.getCurrent().getName()); info.append("]将与组件["); info.append(this.relation.getDepend().getName()); info.append("]合并,其关系耦合值为:"); info.append(MetricsFormat.toFormattedMetrics(this.relation.getIntensity())); info.append("\n"); List<Object> infos = new ArrayList<Object>(); infos.add(info); return infos; } }