package jdepend.util.analyzer.element; import java.util.ArrayList; import java.util.Collection; import java.util.List; import jdepend.model.JavaClassUnit; import jdepend.model.result.AnalysisResult; import jdepend.util.analyzer.element.layer.JavaClassType; import jdepend.util.analyzer.framework.AbstractAnalyzer; import jdepend.util.analyzer.framework.Analyzer; import jdepend.util.analyzer.framework.AnalyzerException; public class ServiceHaveState extends AbstractAnalyzer { /** * */ private static final long serialVersionUID = -4998893503475931338L; private String endWith; private String ServiceSuperClassName; public ServiceHaveState() { super("Service中存在属性", Analyzer.AntiPattern, "Service中存在属性"); this.setType(AntiPattern); } protected void doExecute(AnalysisResult result) throws AnalyzerException { List<String> supers = new ArrayList<String>(); supers.add(ServiceSuperClassName); JavaClassType serviceClassType = new JavaClassType("Service", supers, this.endWith); Collection<JavaClassUnit> javaClasses = result.getClasses(); serviceClassType.setJavaClasses(javaClasses); int totalService = 0; int printService = 0; for (JavaClassUnit javaClass : javaClasses) { if (serviceClassType.isMember(javaClass.getJavaClass())) { totalService++; if (javaClass.getJavaClass().isState()) { this.print(javaClass.getName() + "\n"); printService++; } } } this.print("\n"); this.print("TotalServices : " + totalService); this.print("PrintServices : " + printService); this.print("\n"); } public String getEndWith() { return endWith; } public void setEndWith(String endWith) { this.endWith = endWith; } public String getServiceSuperClassName() { return ServiceSuperClassName; } public void setServiceSuperClassName(String serviceSuperClassName) { ServiceSuperClassName = serviceSuperClassName; } }