package jdepend.statistics.domain; import java.util.HashMap; import java.util.List; import java.util.Map; import jdepend.core.score.ScoreFacade; import jdepend.core.score.ScoreInfo; import jdepend.framework.exception.JDependException; import jdepend.model.result.AnalysisResult; public class ScoreCollection { private static ScoreCollection inst = new ScoreCollection(); private List<ScoreInfo> scoreInfos; private Map<String, AnalysisResult> results = new HashMap<String, AnalysisResult>(); private ScoreCollection() { } public static ScoreCollection getInstance() { return inst; } public synchronized List<ScoreInfo> getScoreInfos() throws JDependException { if (scoreInfos == null) { scoreInfos = ScoreFacade.getScoreList(); } return scoreInfos; } public synchronized AnalysisResult getTheResult(ScoreInfo scoreInfo) throws JDependException { if (!results.containsKey(scoreInfo.id)) { results.put(scoreInfo.id, ScoreFacade.getTheResult(scoreInfo)); } return results.get(scoreInfo.id); } public synchronized void clear() { scoreInfos = null; results = new HashMap<String, AnalysisResult>(); } }