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 ActionHaveState extends AbstractAnalyzer {
/**
*
*/
private static final long serialVersionUID = 3255663101350530353L;
private String endWith;
private String ActionSuperClassName;
public ActionHaveState() {
super("Action中存在属性", Analyzer.AntiPattern, "Action中存在属性");
this.setType(AntiPattern);
}
protected void doExecute(AnalysisResult result) throws AnalyzerException {
List<String> supers = new ArrayList<String>();
supers.add(ActionSuperClassName);
JavaClassType actionClassType = new JavaClassType("Action", supers, this.endWith);
Collection<JavaClassUnit> javaClasses = result.getClasses();
actionClassType.setJavaClasses(javaClasses);
int totalAction = 0;
int printAction = 0;
for (JavaClassUnit javaClass : javaClasses) {
if (actionClassType.isMember(javaClass.getJavaClass())) {
totalAction++;
if (javaClass.getJavaClass().isState()) {
this.print(javaClass.getName() + "\n");
printAction++;
}
}
}
this.print("\n");
this.print("TotalActions : " + totalAction);
this.print("PrintActions: " + printAction);
this.print("\n");
}
public String getEndWith() {
return endWith;
}
public void setEndWith(String endWith) {
this.endWith = endWith;
}
public String getActionSuperClassName() {
return ActionSuperClassName;
}
public void setActionSuperClassName(String actionSuperClassName) {
ActionSuperClassName = actionSuperClassName;
}
}