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

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

There is a newer version: 7.7.0
Show 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.Nullable;

import net.sourceforge.pmd.lang.java.types.JMethodSig;
import net.sourceforge.pmd.lang.java.types.OverloadSelectionResult;

/**
 * Groups {@linkplain ASTMethodCall method} and {@linkplain ASTConstructorCall constructor call},
 * together, as well as {@linkplain ASTExplicitConstructorInvocation explicit constructor invocation statements},
 * and {@linkplain ASTEnumConstant enum constant declarations}.
 * Those last two are included, because they are special syntax
 * to call a constructor.
 *
 * 

The arguments of the invocation are said to be in an "invocation context", * which influences what conversions they are subject to. It also * means the type of the arguments may depend on the resolution * of the {@linkplain #getMethodType() compile-time declaration} * of this node. */ public interface InvocationNode extends TypeNode, MethodUsage { /** * Returns the node representing the list of arguments * passed to the invocation. Can be null if this is an * {@link ASTEnumConstant}. */ @Nullable ASTArgumentList getArguments(); /** * Returns the explicit type arguments if they exist. */ @Nullable ASTTypeArguments getExplicitTypeArguments(); /** * Gets the type of the method or constructor that is called by * this node. See {@link OverloadSelectionResult#getMethodType()}. */ default JMethodSig getMethodType() { return getOverloadSelectionInfo().getMethodType(); } /** * Returns information about the overload selection for this call. * Be aware, that selection might have failed ({@link OverloadSelectionResult#isFailed()}). */ OverloadSelectionResult getOverloadSelectionInfo(); }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy