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;
}
}