/** * BSD-style license; for more info see http://pmd.sourceforge.net/license.html */ package net.sourceforge.pmd.symboltable; import net.sourceforge.pmd.ast.ASTFormalParameter; import net.sourceforge.pmd.ast.ASTVariableDeclaratorId; import net.sourceforge.pmd.ast.AccessNode; public class VariableNameDeclaration extends AbstractNameDeclaration implements NameDeclaration { public VariableNameDeclaration(ASTVariableDeclaratorId node) { super(node); } public Scope getScope() { return node.getScope().getEnclosingClassScope(); } public boolean isArray() { return ((ASTVariableDeclaratorId)node).getTypeNode().isArray(); } public boolean isExceptionBlockParameter() { return ((ASTVariableDeclaratorId) node).isExceptionBlockParameter(); } public AccessNode getAccessNodeParent() { if (node.jjtGetParent() instanceof ASTFormalParameter) { return (AccessNode)node.jjtGetParent(); } return (AccessNode) node.jjtGetParent().jjtGetParent(); } public ASTVariableDeclaratorId getDeclaratorId() { return (ASTVariableDeclaratorId) node; } public boolean equals(Object o) { VariableNameDeclaration n = (VariableNameDeclaration) o; return n.node.getImage().equals(node.getImage()); } public int hashCode() { return node.getImage().hashCode(); } public String toString() { return "Variable symbol " + node.getImage() + " line " + node.getBeginLine(); } }