package jdepend.model; import java.util.ArrayList; import java.util.List; import jdepend.framework.exception.JDependException; import jdepend.framework.log.LogUtil; import jdepend.model.result.AnalysisResult; import jdepend.model.result.AnalysisResultListener; /** * 执行结果内存管理器 * * 当命令执行完成后,其内存结果将存于本管理器中。 * * 该管理器为单例 * * @author <b>Abner</b> * */ public final class JDependUnitMgr { private AnalysisResult result; private static JDependUnitMgr mgr = new JDependUnitMgr(); private List<AnalysisResultListener> listeners = new ArrayList<AnalysisResultListener>(); private JDependUnitMgr() { } public static JDependUnitMgr getInstance() { return mgr; } public List<Component> getComponents() { if (result == null) { return new ArrayList<Component>(); } else { return result.getComponents(); } } public void clear() { this.result = null; } public void setExecuteResult(AnalysisResult result) { this.setResult(result); result.setExecuteResult(true); for (AnalysisResultListener listener : this.listeners) { try { listener.onExecuted(result); } catch (JDependException e) { e.printStackTrace(); LogUtil.getInstance(JDependUnitMgr.class).systemError(e.getMessage()); } } } public void setResult(AnalysisResult result) { this.result = result; } public AnalysisResult getResult() { return result; } public void addAnalysisResultListener(AnalysisResultListener listener) { if (!this.listeners.contains(listener)) { this.listeners.add(listener); } } public void deleteAnalysisResultListener(AnalysisResultListener listener) { this.listeners.remove(listener); } public void clearAnalysisResultListener() { this.listeners = new ArrayList<AnalysisResultListener>(); } }