/** * BSD-style license; for more info see http://pmd.sourceforge.net/license.html */ /* Generated By:JJTree: Do not edit this line. ASTLocalVariableDeclaration.java */ package net.sourceforge.pmd.lang.java.ast; import net.sourceforge.pmd.Rule; public class ASTLocalVariableDeclaration extends AbstractJavaAccessNode implements Dimensionable, CanSuppressWarnings { public ASTLocalVariableDeclaration(int id) { super(id); } public ASTLocalVariableDeclaration(JavaParser p, int id) { super(p, id); } /** * Accept the visitor. * */ @Override public Object jjtAccept(JavaParserVisitor visitor, Object data) { return visitor.visit(this, data); } public boolean hasSuppressWarningsAnnotationFor(Rule rule) { for (int i = 0; i < jjtGetNumChildren(); i++) { if (jjtGetChild(i) instanceof ASTAnnotation) { ASTAnnotation a = (ASTAnnotation) jjtGetChild(i); if (a.suppresses(rule)) { return true; } } } return false; } public boolean isArray() { return checkType() + checkDecl() > 0; } public int getArrayDepth() { return checkType() + checkDecl(); } public ASTType getTypeNode() { for (int i = 0; i < jjtGetNumChildren(); i++) { if (jjtGetChild(i) instanceof ASTType) { return (ASTType) jjtGetChild(i); } } throw new IllegalStateException("ASTType not found"); } private int checkType() { return getTypeNode().getArrayDepth(); } private ASTVariableDeclaratorId getDecl() { return (ASTVariableDeclaratorId) jjtGetChild(jjtGetNumChildren() - 1).jjtGetChild(0); } private int checkDecl() { return getDecl().getArrayDepth(); } /** * Gets the variable name of this field. This method searches the first * VariableDeclartorId node and returns it's image or <code>null</code> if * the child node is not found. * * @return a String representing the name of the variable */ public String getVariableName() { ASTVariableDeclaratorId decl = getFirstDescendantOfType(ASTVariableDeclaratorId.class); if (decl != null) { return decl.getImage(); } return null; } }