package net.sourceforge.pmd.rules; import net.sourceforge.pmd.AbstractRule; import net.sourceforge.pmd.symboltable.NameOccurrence; import net.sourceforge.pmd.ast.ASTVariableDeclaratorId; import java.util.Iterator; public class SymbolTableExample extends AbstractRule { public Object visit(ASTVariableDeclaratorId node, Object data) { if (!node.getNameDeclaration().getImage().equals("x")) { return data; } System.out.println("Variable x is of type '" + node.getNameDeclaration().getTypeImage() + "'"); for (Iterator i = node.getUsages().iterator(); i.hasNext();) { NameOccurrence occurrence = (NameOccurrence)i.next(); System.out.println("The variable x is used at line " + occurrence.getLocation().getBeginLine()); } return data; } }