All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.sourceforge.pmd.lang.java.ast.ASTMethodCall Maven / Gradle / Ivy

The newest version!
/**
 * BSD-style license; for more info see http://pmd.sourceforge.net/license.html
 */

package net.sourceforge.pmd.lang.java.ast;

import org.checkerframework.checker.nullness.qual.NonNull;
import org.checkerframework.checker.nullness.qual.Nullable;

/**
 * A method invocation expression. This node represents both qualified (with a left-hand side)
 * and unqualified invocation expressions.
 *
 * 
 *
 *
 * MethodCall ::=  <IDENTIFIER> {@link ASTArgumentList ArgumentList}
 *              |  {@link ASTExpression Expression} "." {@link ASTTypeArguments TypeArguments}? <IDENTIFIER> {@link ASTArgumentList ArgumentList}
 *
 * 
*/ public final class ASTMethodCall extends AbstractInvocationExpr implements QualifiableExpression { ASTMethodCall(int id) { super(id); } @Override public void jjtClose() { super.jjtClose(); // we need to set the name. if (getMethodName() != null || getChild(0) instanceof ASTSuperExpression) { return; } // Otherwise, the method call was parsed as an ambiguous name followed by arguments // The LHS stays ambiguous // the cast serves as an assert ASTAmbiguousName fstChild = (ASTAmbiguousName) getChild(0); fstChild.shrinkOrDeleteInParentSetImage(); assert getMethodName() != null; } @Override public @NonNull String getMethodName() { return super.getImage(); } @Override @NonNull public ASTArgumentList getArguments() { return (ASTArgumentList) getChild(getNumChildren() - 1); } @Override @Nullable public ASTTypeArguments getExplicitTypeArguments() { return firstChild(ASTTypeArguments.class); } @Override protected R acceptVisitor(JavaVisitor visitor, P data) { return visitor.visit(this, data); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy