KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > test > net > sourceforge > pmd > dfa > GeneralFiddlingTest


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 JavaDoc;
12 import java.util.List JavaDoc;
13
14 public class GeneralFiddlingTest extends ParserTst {
15
16     public void test1() throws Throwable JavaDoc {
17         ASTCompilationUnit acu = buildDFA(TEST1);
18         ASTMethodDeclarator meth = (ASTMethodDeclarator) acu.findChildrenOfType(ASTMethodDeclarator.class).get(0);
19         IDataFlowNode n = meth.getDataFlowNode();
20         List JavaDoc f = n.getFlow();
21         for (Iterator JavaDoc i = f.iterator(); i.hasNext();) {
22             DataFlowNode dfan = (DataFlowNode) i.next();
23             System.out.println(dfan);
24             List JavaDoc va = dfan.getVariableAccess();
25             for (Iterator JavaDoc 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 JavaDoc 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 }
41
Popular Tags