/**
* BSD-style license; for more info see http://pmd.sourceforge.net/license.html
*/
package net.sourceforge.pmd.lang.java.dfa;
import net.sourceforge.pmd.lang.DataFlowHandler;
import net.sourceforge.pmd.lang.java.ast.ASTCompilationUnit;
import net.sourceforge.pmd.lang.java.ast.ASTConstructorDeclaration;
import net.sourceforge.pmd.lang.java.ast.ASTMethodDeclaration;
import net.sourceforge.pmd.lang.java.ast.JavaParserVisitorAdapter;
/**
* TODO What about initializers? This only processes methods and
* constructors.
*
* @author raik
*/
public class DataFlowFacade extends JavaParserVisitorAdapter {
private StatementAndBraceFinder sbf;
private VariableAccessVisitor vav;
public void initializeWith(DataFlowHandler dataFlowHandler, ASTCompilationUnit node) {
sbf = new StatementAndBraceFinder(dataFlowHandler);
vav = new VariableAccessVisitor();
node.jjtAccept(this, null);
}
public Object visit(ASTMethodDeclaration node, Object data) {
sbf.buildDataFlowFor(node);
vav.compute(node);
return data;
}
public Object visit(ASTConstructorDeclaration node, Object data) {
sbf.buildDataFlowFor(node);
vav.compute(node);
return data;
}
}