1 package net.sourceforge.pmd.util.designer; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 6 import net.sourceforge.pmd.lang.java.ast.ASTCompilationUnit; 7 import net.sourceforge.pmd.lang.java.ast.ASTConstructorDeclaration; 8 import net.sourceforge.pmd.lang.java.ast.ASTMethodDeclaration; 9 import net.sourceforge.pmd.lang.java.rule.AbstractJavaRule; 10 11 public class DFAGraphRule extends AbstractJavaRule { 12 13 private List<ASTMethodDeclaration> methods; 14 private List<ASTConstructorDeclaration> constructors; 15 16 public DFAGraphRule() { 17 super.setUsesDFA(); 18 } 19 20 public List<ASTMethodDeclaration> getMethods() { 21 return this.methods; 22 } 23 24 public List<ASTConstructorDeclaration> getConstructors() { 25 return this.constructors; 26 } 27 28 @Override 29 public Object visit(ASTMethodDeclaration node, Object data) { 30 methods.add(node); 31 return super.visit(node, data); 32 } 33 34 @Override 35 public Object visit(ASTConstructorDeclaration node, Object data) { 36 constructors.add(node); 37 return super.visit(node, data); 38 } 39 40 @Override 41 public Object visit(ASTCompilationUnit acu, Object data) { 42 methods = new ArrayList<ASTMethodDeclaration>(); 43 constructors = new ArrayList<ASTConstructorDeclaration>(); 44 return super.visit(acu, data); 45 } 46 }