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