package jdepend.knowledge.domainanalysis.impl;
import jdepend.framework.exception.JDependException;
import jdepend.knowledge.architectpattern.ArchitectPatternMgr;
import jdepend.knowledge.architectpattern.ArchitectPatternResult;
import jdepend.knowledge.domainanalysis.AbstractDomainAnalysis;
import jdepend.knowledge.domainanalysis.AdviseInfo;
import jdepend.knowledge.domainanalysis.ExpertException;
import jdepend.knowledge.domainanalysis.StructureCategory;
import jdepend.model.result.AnalysisResult;
public final class ArchitectPatternDomainAnalysis extends AbstractDomainAnalysis {
/**
*
*/
private static final long serialVersionUID = -5627444730583565640L;
public ArchitectPatternDomainAnalysis() {
super("架构模式识别分析器", "用于识别目标系统的整体结构模式");
}
@Override
protected AdviseInfo doAdvise(String name, AnalysisResult result) throws ExpertException {
ArchitectPatternResult apResult;
try {
apResult = ArchitectPatternMgr.getInstance().identify(result);
} catch (JDependException e) {
throw new ExpertException(e);
}
String desc = apResult.getResult();
if (desc != null) {
return new AdviseInfo(desc);
} else {
return null;
}
}
@Override
public StructureCategory getStructureCategory() {
return StructureCategory.ArchitectPatternDomainAnalysis;
}
}