01: /*
02: * Created on 10.07.2004
03: */
04: package net.sourceforge.pmd.dfa;
05:
06: import net.sourceforge.pmd.ast.ASTCompilationUnit;
07: import net.sourceforge.pmd.ast.ASTConstructorDeclaration;
08: import net.sourceforge.pmd.ast.ASTMethodDeclaration;
09: 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: }
|