Clover coverage report - PMD - 3.7
Coverage timestamp: Wed May 31 2006 09:25:59 EDT
file stats: LOC: 41   Methods: 1
NCLOC: 27   Classes: 1
 
 Source file Conditionals Statements Methods TOTAL
OccurrenceFinder.java 100% 100% 100% 100%
coverage
 1    package net.sourceforge.pmd.symboltable;
 2   
 3    import net.sourceforge.pmd.ast.ASTPrimaryExpression;
 4    import net.sourceforge.pmd.ast.JavaParserVisitorAdapter;
 5   
 6    import java.util.Iterator;
 7    import java.util.List;
 8   
 9    public class OccurrenceFinder extends JavaParserVisitorAdapter {
 10   
 11  2940 public Object visit(ASTPrimaryExpression node, Object data) {
 12  2940 NameFinder nameFinder = new NameFinder(node);
 13   
 14    // Maybe do some sort of State pattern thingy for when NameDeclaration
 15    // is null/not null?
 16  2940 NameDeclaration decl = null;
 17   
 18  2940 List names = nameFinder.getNames();
 19  2940 for (Iterator i = names.iterator(); i.hasNext();) {
 20  1915 NameOccurrence occ = (NameOccurrence) i.next();
 21  1915 Search search = new Search(occ);
 22  1915 if (decl == null) {
 23    // doing the first name lookup
 24  1483 search.execute();
 25  1483 decl = search.getResult();
 26  1483 if (decl == null) {
 27    // we can't find it, so just give up
 28    // when we decide to do full symbol resolution
 29    // force this to either find a symbol or throw a SymbolNotFoundException
 30  441 break;
 31    }
 32    } else {
 33    // now we've got a scope we're starting with, so work from there
 34  432 search.execute(decl.getScope());
 35  432 decl = search.getResult();
 36    }
 37    }
 38  2940 return super.visit(node, data);
 39    }
 40   
 41    }