/** * BSD-style license; for more info see http://pmd.sourceforge.net/license.html */ package net.sourceforge.pmd.lang.ecmascript.ast; import org.mozilla.javascript.ast.Name; public class ASTName extends AbstractEcmascriptNode<Name> { public ASTName(Name name) { super(name); super.setImage(name.getIdentifier()); } /** * Accept the visitor. */ @Override public Object jjtAccept(EcmascriptParserVisitor visitor, Object data) { return visitor.visit(this, data); } public String getIdentifier() { return node.getIdentifier(); } public boolean isLocalName() { return node.isLocalName(); } public boolean isGlobalName() { return !node.isLocalName(); } /** * Returns whether this name node is the name of a function declaration. * * @return <code>true</code> if name of a function declaration, * <code>false</code> otherwise. */ public boolean isFunctionNodeName() { return jjtGetParent() instanceof ASTFunctionNode && ((ASTFunctionNode) jjtGetParent()).getFunctionName() == this; } /** * Returns whether this name node is the name of a function declaration * parameter. * * @return <code>true</code> if name of a function declaration parameter, * <code>false</code> otherwise. */ public boolean isFunctionNodeParameter() { if (jjtGetParent() instanceof ASTFunctionNode) { ASTFunctionNode functionNode = (ASTFunctionNode) jjtGetParent(); for (int i = 0; i < functionNode.getNumParams(); i++) { if (functionNode.getParam(i) == this) { return true; } } } return false; } /** * Returns whether this name node is the name of a function call. * * @return <code>true</code> if name of a function call, <code>false</code> * otherwise. */ public boolean isFunctionCallName() { return jjtGetParent() instanceof ASTFunctionCall && ((ASTFunctionCall) jjtGetParent()).getTarget() == this; } /** * Returns whether this name node is the name of a variable declaration. * * @return <code>true</code> if name of a variable declaration, * <code>false</code> otherwise. */ public boolean isVariableDeclaration() { return jjtGetParent() instanceof ASTVariableInitializer && ((ASTVariableInitializer) jjtGetParent()).getTarget() == this; } }