Class ASTReceiverParameter
- java.lang.Object
-
- net.sourceforge.pmd.lang.ast.impl.AbstractNode<B,N>
-
- net.sourceforge.pmd.lang.ast.impl.javacc.AbstractJjtreeNode<net.sourceforge.pmd.lang.java.ast.AbstractJavaNode,JavaNode>
-
- net.sourceforge.pmd.lang.java.ast.ASTReceiverParameter
-
- All Implemented Interfaces:
net.sourceforge.pmd.lang.ast.impl.GenericNode<JavaNode>,net.sourceforge.pmd.lang.ast.impl.javacc.JjtreeNode<JavaNode>,net.sourceforge.pmd.lang.ast.Node,net.sourceforge.pmd.lang.ast.TextAvailableNode,JavaNode,net.sourceforge.pmd.reporting.Reportable
public final class ASTReceiverParameter extends net.sourceforge.pmd.lang.ast.impl.javacc.AbstractJjtreeNode<net.sourceforge.pmd.lang.java.ast.AbstractJavaNode,JavaNode>
Receiver parameter. A receiver parameter is syntactically part of a formal parameter list, though it does not declare a variable or affect the arity of the method in any way. Its only purpose is to annotate the type of the object on which the method call is issued. It was introduced with Java 8.For example:
class Foo { abstract void foo(@Bar Foo this); }Receiver parameters are only allowed on two types of declarations:
- Instance method declarations of a class or interface (not annotation) type
- Constructor declaration of a non-static inner class. It then has the type of the enclosing instance.
ReceiverParameter ::=
ClassType(<IDENTIFIER> ".")? "this"
-
-
Field Summary
Fields Modifier and Type Field Description protected JSymbolTablesymbolTable
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <P,R>
RacceptVisitor(net.sourceforge.pmd.lang.ast.AstVisitor<? super P,? extends R> visitor, P data)protected <P,R>
RacceptVisitor(JavaVisitor<? super P,? extends R> visitor, P data)protected voidaddChild(net.sourceforge.pmd.lang.java.ast.AbstractJavaNode child, int index)protected voidenlargeLeft(net.sourceforge.pmd.lang.ast.impl.javacc.JavaccToken child)@NonNull ASTClassTypegetReceiverType()Returns the type of the receiver parameter (egFooinFoo this.@NonNull ASTCompilationUnitgetRoot()@NonNull JSymbolTablegetSymbolTable()Returns the symbol table for the program point represented by this node.TypeSystemgetTypeSystem()Returns the type system with which this node was created.StringgetXPathNodeName()protected voidinsertChild(net.sourceforge.pmd.lang.java.ast.AbstractJavaNode child, int index)voidjjtClose()protected voidremoveChildAtIndex(int childIndex)protected voidsetChild(net.sourceforge.pmd.lang.java.ast.AbstractJavaNode child, int index)protected voidsetFirstToken(net.sourceforge.pmd.lang.ast.impl.javacc.JavaccToken token)protected voidsetImage(String image)protected voidsetLastToken(net.sourceforge.pmd.lang.ast.impl.javacc.JavaccToken token)-
Methods inherited from class net.sourceforge.pmd.lang.ast.impl.javacc.AbstractJjtreeNode
compareLocation, fitTokensToChildren, getFirstToken, getImage, getLastToken, getTextRegion, jjtOpen, toString
-
Methods inherited from class net.sourceforge.pmd.lang.ast.impl.AbstractNode
children, firstChild, getChild, getIndexInParent, getNumChildren, getParent, getUserMap, remove, setParent
-
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.impl.GenericNode
ancestors, ancestorsOrSelf, asStream, children, descendants, descendantsOrSelf, getChild, getFirstChild, getLastChild, getNextSibling, getParent, getPreviousSibling
-
Methods inherited from interface net.sourceforge.pmd.lang.java.ast.JavaNode
getEnclosingType
-
Methods inherited from interface net.sourceforge.pmd.lang.ast.impl.javacc.JjtreeNode
getFirstToken, getLastToken, tokens
-
Methods inherited from interface net.sourceforge.pmd.lang.ast.Node
ancestors, children, compareLocation, descendants, firstChild, getAstInfo, getBeginColumn, getBeginLine, getEndColumn, getEndLine, getImage, getIndexInParent, getLanguageVersion, getNumChildren, getReportLocation, getTextDocument, getUserMap, getXPathAttributesIterator, hasImageEqualTo, isFindBoundary
-
-
-
-
Field Detail
-
symbolTable
protected JSymbolTable symbolTable
-
-
Method Detail
-
acceptVisitor
protected <P,R> R acceptVisitor(JavaVisitor<? super P,? extends R> visitor, P data)
-
getReceiverType
public @NonNull ASTClassType getReceiverType()
Returns the type of the receiver parameter (egFooinFoo this. In an instance method, that type must be the class or interface in which the method is declared, and the name of the receiver parameter must bethis.In an inner class's constructor, the type of the receiver parameter must be the class or interface which is the immediately enclosing type declaration of the inner class, call it C, and the name of the parameter must be
Identifier.thiswhereIdentifieris the simple name of C.
-
jjtClose
public void jjtClose()
- Overrides:
jjtClosein classnet.sourceforge.pmd.lang.ast.impl.javacc.AbstractJjtreeNode<net.sourceforge.pmd.lang.java.ast.AbstractJavaNode,JavaNode>
-
acceptVisitor
public final <P,R> R acceptVisitor(net.sourceforge.pmd.lang.ast.AstVisitor<? super P,? extends R> visitor, P data)- Specified by:
acceptVisitorin interfacenet.sourceforge.pmd.lang.ast.Node
-
addChild
protected void addChild(net.sourceforge.pmd.lang.java.ast.AbstractJavaNode child, int index)- Overrides:
addChildin classnet.sourceforge.pmd.lang.ast.impl.javacc.AbstractJjtreeNode<net.sourceforge.pmd.lang.java.ast.AbstractJavaNode,JavaNode>
-
insertChild
protected void insertChild(net.sourceforge.pmd.lang.java.ast.AbstractJavaNode child, int index)- Overrides:
insertChildin classnet.sourceforge.pmd.lang.ast.impl.javacc.AbstractJjtreeNode<net.sourceforge.pmd.lang.java.ast.AbstractJavaNode,JavaNode>
-
removeChildAtIndex
protected void removeChildAtIndex(int childIndex)
- Overrides:
removeChildAtIndexin classnet.sourceforge.pmd.lang.ast.impl.AbstractNode<net.sourceforge.pmd.lang.java.ast.AbstractJavaNode,JavaNode>
-
setImage
protected void setImage(String image)
- Overrides:
setImagein classnet.sourceforge.pmd.lang.ast.impl.javacc.AbstractJjtreeNode<net.sourceforge.pmd.lang.java.ast.AbstractJavaNode,JavaNode>
-
setFirstToken
protected void setFirstToken(net.sourceforge.pmd.lang.ast.impl.javacc.JavaccToken token)
- Overrides:
setFirstTokenin classnet.sourceforge.pmd.lang.ast.impl.javacc.AbstractJjtreeNode<net.sourceforge.pmd.lang.java.ast.AbstractJavaNode,JavaNode>
-
setLastToken
protected void setLastToken(net.sourceforge.pmd.lang.ast.impl.javacc.JavaccToken token)
- Overrides:
setLastTokenin classnet.sourceforge.pmd.lang.ast.impl.javacc.AbstractJjtreeNode<net.sourceforge.pmd.lang.java.ast.AbstractJavaNode,JavaNode>
-
enlargeLeft
protected void enlargeLeft(net.sourceforge.pmd.lang.ast.impl.javacc.JavaccToken child)
- Overrides:
enlargeLeftin classnet.sourceforge.pmd.lang.ast.impl.javacc.AbstractJjtreeNode<net.sourceforge.pmd.lang.java.ast.AbstractJavaNode,JavaNode>
-
setChild
protected void setChild(net.sourceforge.pmd.lang.java.ast.AbstractJavaNode child, int index)- Overrides:
setChildin classnet.sourceforge.pmd.lang.ast.impl.AbstractNode<net.sourceforge.pmd.lang.java.ast.AbstractJavaNode,JavaNode>
-
getSymbolTable
public @NonNull JSymbolTable getSymbolTable()
Description copied from interface:JavaNodeReturns the symbol table for the program point represented by this node.- Specified by:
getSymbolTablein interfaceJavaNode
-
getTypeSystem
public TypeSystem getTypeSystem()
Description copied from interface:JavaNodeReturns the type system with which this node was created. This is the object responsible for representing types in the compilation unit.- Specified by:
getTypeSystemin interfaceJavaNode
-
getRoot
public final @NonNull ASTCompilationUnit getRoot()
-
getXPathNodeName
public final String getXPathNodeName()
- Specified by:
getXPathNodeNamein interfacenet.sourceforge.pmd.lang.ast.Node
-
-