net.sourceforge.pmd.lang.ecmascript.ast

## Class AbstractEcmascriptNode<T extends org.mozilla.javascript.ast.AstNode>

- java.lang.Object
- - net.sourceforge.pmd.lang.ast.AbstractNode
  - - net.sourceforge.pmd.lang.ecmascript.ast.AbstractEcmascriptNode<T>

All Implemented Interfaces:
  Node, EcmascriptNode<T>

Direct Known Subclasses:
  AbstractInfixEcmascriptNode, ASTArrayComprehension, ASTArrayComprehensionLoop, ASTArrayLiteral, ASTAstRoot, ASTBlock, ASTBreakStatement, ASTCatchClause, ASTComment, ASTConditionalExpression, ASTContinueStatement, ASTDoLoop, ASTElementGet, ASTEmptyExpression, ASTExpressionStatement, ASTForInLoop, ASTForLoop, ASTFunctionCall, ASTFunctionNode, ASTIfStatement, ASTKeywordLiteral, ASTLabel, ASTLabeledStatement, ASTLetNode, ASTName, ASTNewExpression, ASTNumberLiteral, ASTObjectLiteral, ASTParenthesizedExpression, ASTRegExpLiteral, ASTReturnStatement, ASTScope, ASTStringLiteral, ASTSwitchCase, ASTSwitchStatement, ASTThrowStatement, ASTTryStatement, ASTUnaryExpression, ASTVariableDeclaration, ASTVariableInitializer, ASTWhileLoop, ASTWithStatement, ASTXmlExpression, ASTXmlString

    public abstract class AbstractEcmascriptNode<T extends org.mozilla.javascript.ast.AstNode>
    extends AbstractNode
    implements EcmascriptNode<T>

### Field Summary

Fields
`protected T` `node`

### Fields inherited from class net.sourceforge.pmd.lang.ast.AbstractNode

`beginColumn, beginLine, children, endColumn, endLine, id, parent`

### Constructor Summary

Constructors
Constructor and Description
`AbstractEcmascriptNode(T node)`

### Method Summary

Methods
`Object` `childrenAccept(EcmascriptParserVisitor visitor, Object data)` Accept the visitor
`String` `getJsDoc()` Get the JsDoc associated with the given node.
`T` `getNode()` Get the underlying Rhino AST node.
`boolean` `hasSideEffects()`
`Object` `jjtAccept(EcmascriptParserVisitor visitor, Object data)` Accept the visitor
`String` `toString()` Subclasses should implement this method to return a name usable with XPathRule for evaluating Element Names.

### Methods inherited from class net.sourceforge.pmd.lang.ast.AbstractNode

`appendElement, findChildNodesWithXPath, findChildrenOfType, findDescendantsOfType, findDescendantsOfType, getAsDocument, getBeginColumn, getBeginLine, getDataFlowNode, getEndColumn, getEndLine, getFirstChildOfType, getFirstDescendantOfType, getFirstParentOfType, getImage, getNthParent, getParentsOfType, getUserData, hasDecendantOfAnyType, hasDescendantMatchingXPath, hasDescendantOfType, hasImageEqualTo, isFindBoundary, isSingleLine, jjtAddChild, jjtClose, jjtGetChild, jjtGetId, jjtGetNumChildren, jjtGetParent, jjtOpen, jjtSetParent, setDataFlowNode, setImage, setUserData, testingOnly__setBeginColumn, testingOnly__setBeginLine, testingOnly__setEndColumn, testingOnly__setEndLine`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface net.sourceforge.pmd.lang.ast.Node

`findChildNodesWithXPath, findChildrenOfType, findDescendantsOfType, findDescendantsOfType, getAsDocument, getBeginColumn, getBeginLine, getDataFlowNode, getEndColumn, getEndLine, getFirstChildOfType, getFirstDescendantOfType, getFirstParentOfType, getImage, getNthParent, getParentsOfType, getUserData, hasDescendantMatchingXPath, hasDescendantOfType, hasImageEqualTo, isFindBoundary, jjtAddChild, jjtClose, jjtGetChild, jjtGetId, jjtGetNumChildren, jjtGetParent, jjtOpen, jjtSetParent, setDataFlowNode, setImage, setUserData`

### Field Detail

#### node

    protected final T extends org.mozilla.javascript.ast.AstNode node

### Constructor Detail

#### AbstractEcmascriptNode

    public AbstractEcmascriptNode(T node)

### Method Detail

#### jjtAccept

    public Object jjtAccept(EcmascriptParserVisitor visitor,
                   Object data)

Accept the visitor. *

Specified by:
  `jjtAccept` in interface `EcmascriptNode<T extends org.mozilla.javascript.ast.AstNode>`

#### childrenAccept

    public Object childrenAccept(EcmascriptParserVisitor visitor,
                        Object data)

Accept the visitor. *

Specified by:
  `childrenAccept` in interface `EcmascriptNode<T extends org.mozilla.javascript.ast.AstNode>`

#### getNode

    public T getNode()

Description copied from interface: `EcmascriptNode`
Get the underlying Rhino AST node.

Specified by:
  `getNode` in interface `EcmascriptNode<T extends org.mozilla.javascript.ast.AstNode>`

#### getJsDoc

    public String getJsDoc()

Description copied from interface: `EcmascriptNode`
Get the JsDoc associated with the given node. If there is no JsDoc on this node, it may be associated with a parent node, on more representative of the entire expression containing this node.

Specified by:
  `getJsDoc` in interface `EcmascriptNode<T extends org.mozilla.javascript.ast.AstNode>`
Returns:
  The JsDoc comment for the node, may be `null`.

#### hasSideEffects

    public boolean hasSideEffects()

Specified by:
  `hasSideEffects` in interface `EcmascriptNode<T extends org.mozilla.javascript.ast.AstNode>`

#### toString

    public String toString()

Description copied from class: `AbstractNode`
Subclasses should implement this method to return a name usable with XPathRule for evaluating Element Names.

Specified by:
  `toString` in class `AbstractNode`