01 package net.sourceforge.pmd.util.designer;
02
03 import java.util.ArrayList;
04 import java.util.List;
05
06 import net.sourceforge.pmd.lang.java.ast.ASTCompilationUnit;
07 import net.sourceforge.pmd.lang.java.ast.ASTConstructorDeclaration;
08 import net.sourceforge.pmd.lang.java.ast.ASTMethodDeclaration;
09 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 }
|