Class AbstractMethodLikeDeclarationContext<T extends Node & NodeWithParameters<T> & NodeWithTypeParameters<T>>

java.lang.Object
com.github.javaparser.symbolsolver.javaparsermodel.contexts.AbstractJavaParserContext<T>
com.github.javaparser.symbolsolver.javaparsermodel.contexts.AbstractMethodLikeDeclarationContext<T>
All Implemented Interfaces:
Context
Direct Known Subclasses:
ConstructorContext, MethodContext

public abstract class AbstractMethodLikeDeclarationContext<T extends Node & NodeWithParameters<T> & NodeWithTypeParameters<T>> extends AbstractJavaParserContext<T>
  • Constructor Details

    • AbstractMethodLikeDeclarationContext

      public AbstractMethodLikeDeclarationContext(T wrappedNode, TypeSolver typeSolver)
  • Method Details

    • solveSymbol

      public final SymbolReference<? extends ResolvedValueDeclaration> solveSymbol(String name)
      Description copied from interface: Context
      Used where a symbol is being used (e.g. solving x when used as an argument doubleThis(x), or calculation return x * 2;).
      Parameters:
      name - the variable / reference / identifier used.
      Returns:
      // FIXME: Better documentation on how this is different to solveSymbolAsValue()
    • solveGenericType

      public final Optional<ResolvedType> solveGenericType(String name)
      Description copied from interface: Context
      Default to no generics available in this context, delegating solving to the parent context. Contexts which have generics available to it will override this method. For example class and method declarations, and method calls.
      Parameters:
      name - For example, solving T within class Foo<T> {} or
      Returns:
      The resolved generic type, if found.
    • solveSymbolAsValue

      public final Optional<Value> solveSymbolAsValue(String name)
      Description copied from interface: Context
      Used where a symbol is being used (e.g. solving x when used as an argument doubleThis(x), or calculation return x * 2;).
      Parameters:
      name - the variable / reference / identifier used.
      Returns:
      // FIXME: Better documentation on how this is different to solveSymbol()
    • solveType

      public final SymbolReference<ResolvedTypeDeclaration> solveType(String name, List<ResolvedType> typeArguments)
      Description copied from interface: Context
      Method used to solve a name with an expected list of type arguments.
      This method differs from Context.solveType(String) by taking the type arguments in consideration. For example, lets imagine that we have a project containing the following classes:
      • com/example/Alpha.java
      • com/example/Beta.java
      Where Alpha creates a inner interface called CustomInterface and Beta implements Alpha.CustomInterface and also declares a inner interface called CustomInterface with type arguments. Using this method we can specify which type arguments we are expecting and will be resolved with the type matching that declaration.
      Parameters:
      name - The name to be solved.
      typeArguments - The list of expected type arguments.
      Returns:
      The declaration associated with the given type name.
    • solveMethod

      public final SymbolReference<ResolvedMethodDeclaration> solveMethod(String name, List<ResolvedType> argumentsTypes, boolean staticOnly)
      Description copied from interface: Context
      We find the method declaration which is the best match for the given name and list of typeParametersValues.