1 package test.net.sourceforge.pmd.dfa; 2 3 import net.sourceforge.pmd.PMD; 4 import net.sourceforge.pmd.ast.ASTCompilationUnit; 5 import net.sourceforge.pmd.ast.ASTMethodDeclarator; 6 import net.sourceforge.pmd.dfa.DataFlowNode; 7 import net.sourceforge.pmd.dfa.IDataFlowNode; 8 import net.sourceforge.pmd.dfa.variableaccess.VariableAccess; 9 import test.net.sourceforge.pmd.testframework.ParserTst; 10 11 import java.util.Iterator; 12 import java.util.List; 13 14 public class GeneralFiddlingTest extends ParserTst { 15 16 public void test1() throws Throwable { 17 ASTCompilationUnit acu = buildDFA(TEST1); 18 ASTMethodDeclarator meth = (ASTMethodDeclarator) acu.findChildrenOfType(ASTMethodDeclarator.class).get(0); 19 IDataFlowNode n = meth.getDataFlowNode(); 20 List f = n.getFlow(); 21 for (Iterator i = f.iterator(); i.hasNext();) { 22 DataFlowNode dfan = (DataFlowNode) i.next(); 23 System.out.println(dfan); 24 List va = dfan.getVariableAccess(); 25 for (Iterator j = va.iterator(); j.hasNext();) { 26 VariableAccess o = (VariableAccess) j.next(); 27 System.out.println(o); 28 } 29 } 30 } 31 32 private static final String TEST1 = 33 "class Foo {" + PMD.EOL + 34 " void bar() {" + PMD.EOL + 35 " int x = 2;" + PMD.EOL + 36 " foo(x);" + PMD.EOL + 37 " x = 3;" + PMD.EOL + 38 " }" + PMD.EOL + 39 "}"; 40 }