1
2
3
4 package net.sourceforge.pmd.dfa;
5
6 import net.sourceforge.pmd.ast.ASTCompilationUnit;
7 import net.sourceforge.pmd.ast.ASTConstructorDeclaration;
8 import net.sourceforge.pmd.ast.ASTMethodDeclaration;
9 import net.sourceforge.pmd.ast.JavaParserVisitorAdapter;
10 import net.sourceforge.pmd.dfa.variableaccess.VariableAccessVisitor;
11
12 /***
13 * @author raik
14 * <p/>
15 * TODO What about initializers? This only processes methods and constructors
16 */
17 public class DataFlowFacade extends JavaParserVisitorAdapter {
18
19 private StatementAndBraceFinder sbf;
20 private VariableAccessVisitor vav;
21
22 public void initializeWith(ASTCompilationUnit node) {
23 sbf = new StatementAndBraceFinder();
24 vav = new VariableAccessVisitor();
25 node.jjtAccept(this, null);
26 }
27
28 public Object visit(ASTMethodDeclaration node, Object data) {
29 sbf.buildDataFlowFor(node);
30 vav.compute(node);
31 return data;
32 }
33
34 public Object visit(ASTConstructorDeclaration node, Object data) {
35 sbf.buildDataFlowFor(node);
36 vav.compute(node);
37 return data;
38 }
39 }