Class ASTConstructorCall
- 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.ASTConstructorCall
-
- All Implemented Interfaces:
GenericNode<JavaNode>,JjtreeNode<JavaNode>,Node,TextAvailableNode,ASTExpression,ASTMemberValue,ASTPrimaryExpression,ASTSwitchArrowRHS,InvocationNode,JavaNode,MethodUsage,QualifiableExpression,TypeNode,Reportable
public final class ASTConstructorCall extends AbstractJjtreeNode<net.sourceforge.pmd.lang.java.ast.AbstractJavaNode,JavaNode> implements ASTPrimaryExpression, QualifiableExpression, InvocationNode
A class instance creation expression. Represents both qualified and unqualified instance creation. May declare an anonymous class body.ConstructorCall ::= UnqualifiedAlloc |Expression"." UnqualifiedAlloc UnqualifiedAlloc ::= "new"TypeArguments?ClassTypeArgumentListAnonymousClassDeclaration?
-
-
Field Summary
Fields Modifier and Type Field Description protected JSymbolTablesymbolTable-
Fields inherited from class net.sourceforge.pmd.lang.ast.impl.javacc.AbstractJjtreeNode
id
-
Fields inherited from interface net.sourceforge.pmd.lang.ast.Node
COORDS_COMPARATOR
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <P,R>
RacceptVisitor(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 @Nullable ObjectbuildConstValue()@Nullable ASTAnonymousClassDeclarationgetAnonymousClassDeclaration()@NonNull ASTArgumentListgetArguments()Returns the node representing the list of arguments passed to the invocation.@Nullable ObjectgetConstValue()Returns the constant value of this node, if this is a constant expression.@Nullable ASTTypeArgumentsgetExplicitTypeArguments()Returns the explicit type arguments if they exist.OverloadSelectionResultgetOverloadSelectionInfo()Returns information about the overload selection for this call.intgetParenthesisDepth()Returns the number of parenthesis levels around this expression.@Nullable ASTExpressiongetQualifier()Returns the outer instance expression, if this is a qualified constructor call.@NonNull ASTCompilationUnitgetRoot()@NonNull JSymbolTablegetSymbolTable()Returns the symbol table for the program point represented by this node.@NonNull JTypeMirrorgetTypeMirror()Returns the compile-time type of this node.@NonNull JTypeMirrorgetTypeMirror(TypingContext context)ASTClassTypegetTypeNode()Returns the type 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)booleanisAnonymousClass()Returns true if this expression defines a body, which is compiled to an anonymous class.booleanisQualifiedInstanceCreation()Returns true if this expression begins with a primary expression.voidjjtClose()protected voidremoveChildAtIndex(int childIndex)protected voidsetChild(net.sourceforge.pmd.lang.java.ast.AbstractJavaNode child, int index)protected voidsetFirstToken(JavaccToken token)protected voidsetImage(String image)protected voidsetLastToken(JavaccToken token)booleanusesDiamondTypeArgs()Returns true if type arguments to the constructed instance's type are inferred.-
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.java.ast.ASTExpression
getConstValue, getConversionContext, getParenthesisDepth, isCompileTimeConstant, isExpression, isParenthesized
-
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.InvocationNode
getMethodType, getOverloadSelectionInfo
-
Methods inherited from interface net.sourceforge.pmd.lang.java.ast.JavaNode
getEnclosingType, getRoot, getSymbolTable, getTypeSystem
-
Methods inherited from interface net.sourceforge.pmd.lang.ast.impl.javacc.JjtreeNode
getFirstToken, getLastToken, tokens
-
Methods inherited from interface net.sourceforge.pmd.lang.java.ast.MethodUsage
getMethodName
-
Methods inherited from interface net.sourceforge.pmd.lang.ast.Node
acceptVisitor, ancestors, children, compareLocation, descendants, firstChild, getAstInfo, getBeginColumn, getBeginLine, getEndColumn, getEndLine, getImage, getIndexInParent, getLanguageVersion, getNumChildren, getReportLocation, getTextDocument, getUserMap, getXPathAttributesIterator, getXPathNodeName, hasImageEqualTo, isFindBoundary
-
Methods inherited from interface net.sourceforge.pmd.lang.ast.TextAvailableNode
getOriginalText, getText, getTextRegion
-
Methods inherited from interface net.sourceforge.pmd.lang.java.ast.TypeNode
getTypeMirror, getTypeMirror
-
-
-
-
Field Detail
-
symbolTable
protected JSymbolTable symbolTable
-
-
Method Detail
-
acceptVisitor
protected <P,R> R acceptVisitor(JavaVisitor<? super P,? extends R> visitor, P data)
-
isQualifiedInstanceCreation
public boolean isQualifiedInstanceCreation()
Returns true if this expression begins with a primary expression. Such an expression creates an instance of inner member classes and their anonymous subclasses. For example,new Outer().new Inner()evaluates to an instance of the Inner class, which is nested inside the new instance of Outer.
-
getQualifier
public @Nullable ASTExpression getQualifier()
Returns the outer instance expression, if this is a qualified constructor call. Otherwise returns null. This can never be a type expression, and is never ambiguous.- Specified by:
getQualifierin interfaceQualifiableExpression
-
getExplicitTypeArguments
public @Nullable ASTTypeArguments getExplicitTypeArguments()
Description copied from interface:InvocationNodeReturns the explicit type arguments if they exist.- Specified by:
getExplicitTypeArgumentsin interfaceInvocationNode
-
getArguments
public @NonNull ASTArgumentList getArguments()
Description copied from interface:InvocationNodeReturns the node representing the list of arguments passed to the invocation. Can be null if this is anASTEnumConstant.- Specified by:
getArgumentsin interfaceInvocationNode
-
usesDiamondTypeArgs
public boolean usesDiamondTypeArgs()
Returns true if type arguments to the constructed instance's type are inferred.
-
getTypeNode
public ASTClassType getTypeNode()
Returns the type node.
-
isAnonymousClass
public boolean isAnonymousClass()
Returns true if this expression defines a body, which is compiled to an anonymous class. Otherwise, this method returns false.
-
getAnonymousClassDeclaration
public @Nullable ASTAnonymousClassDeclaration getAnonymousClassDeclaration()
-
getOverloadSelectionInfo
public OverloadSelectionResult getOverloadSelectionInfo()
Description copied from interface:InvocationNodeReturns information about the overload selection for this call. Be aware, that selection might have failed (OverloadSelectionResult.isFailed()).- Specified by:
getOverloadSelectionInfoin interfaceInvocationNode
-
getParenthesisDepth
public int getParenthesisDepth()
Description copied from interface:ASTExpressionReturns the number of parenthesis levels around this expression. If this method returns 0, then no parentheses are present.E.g. the expression
(a + b)is parsed as an AdditiveExpression whose parenthesisDepth is 1, and in((a + b))it's 2.This is to avoid the parentheses interfering with analysis. Parentheses already influence parsing by breaking the natural precedence of operators. It would mostly hide false positives to make a ParenthesizedExpr node, because it would make semantically equivalent nodes have a very different representation.
On the other hand, when a rule explicitly cares about parentheses, then this attribute may be used to find out whether parentheses were mentioned, so no information is lost.
- Specified by:
getParenthesisDepthin interfaceASTExpression
-
getConstValue
public @Nullable Object getConstValue()
Description copied from interface:ASTMemberValueReturns the constant value of this node, if this is a constant expression. Otherwise, or if some references couldn't be resolved, returns null. Note thatnullis not a constant value, so this method's returning null is not a problem. Note that annotations are not given a constant value by this implementation.- Specified by:
getConstValuein interfaceASTExpression- Specified by:
getConstValuein interfaceASTMemberValue
-
buildConstValue
protected @Nullable Object buildConstValue()
-
getTypeMirror
public @NonNull JTypeMirror getTypeMirror()
Description copied from interface:TypeNodeReturns the compile-time type of this node. For example, for a string literal, returns the type mirror forString, for a method call, returns the return type of the call, etc.This method ignores conversions applied to the value of the node because of its context. For example, in
1 + "", the numeric literal will have typeint, but it is converted toStringby the surrounding concatenation expression. Similarly, inCollections.singletonList(1), theASTNumericLiteralnode has typeint, but the type of the method formal isInteger, and boxing is applied at runtime. Possibly, an API will be added to expose this information.- Specified by:
getTypeMirrorin interfaceTypeNode- Returns:
- The type mirror. Never returns null; if the type is unresolved, returns
TypeSystem.UNKNOWN.
-
getTypeMirror
public @NonNull JTypeMirror getTypeMirror(TypingContext context)
- Specified by:
getTypeMirrorin interfaceTypeNode
-
jjtClose
public void jjtClose()
- Overrides:
jjtClosein classAbstractJjtreeNode<net.sourceforge.pmd.lang.java.ast.AbstractJavaNode,JavaNode>
-
acceptVisitor
public final <P,R> R acceptVisitor(AstVisitor<? super P,? extends R> visitor, P data)
- Specified by:
acceptVisitorin interfaceNode
-
addChild
protected void addChild(net.sourceforge.pmd.lang.java.ast.AbstractJavaNode child, int index)- Overrides:
addChildin classAbstractJjtreeNode<net.sourceforge.pmd.lang.java.ast.AbstractJavaNode,JavaNode>
-
insertChild
protected void insertChild(net.sourceforge.pmd.lang.java.ast.AbstractJavaNode child, int index)- Overrides:
insertChildin classAbstractJjtreeNode<net.sourceforge.pmd.lang.java.ast.AbstractJavaNode,JavaNode>
-
removeChildAtIndex
protected void removeChildAtIndex(int childIndex)
- Overrides:
removeChildAtIndexin classAbstractNode<net.sourceforge.pmd.lang.java.ast.AbstractJavaNode,JavaNode>
-
setImage
protected void setImage(String image)
- Overrides:
setImagein classAbstractJjtreeNode<net.sourceforge.pmd.lang.java.ast.AbstractJavaNode,JavaNode>
-
setFirstToken
protected void setFirstToken(JavaccToken token)
- Overrides:
setFirstTokenin classAbstractJjtreeNode<net.sourceforge.pmd.lang.java.ast.AbstractJavaNode,JavaNode>
-
setLastToken
protected void setLastToken(JavaccToken token)
- Overrides:
setLastTokenin classAbstractJjtreeNode<net.sourceforge.pmd.lang.java.ast.AbstractJavaNode,JavaNode>
-
setChild
protected void setChild(net.sourceforge.pmd.lang.java.ast.AbstractJavaNode child, int index)- Overrides:
setChildin classAbstractNode<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 interfaceNode
-
-