public abstract class CallerContext
extends java.lang.Object
| Modifier and Type | Class and Description | 
|---|---|
static interface  | 
CallerContext.Constants
Constants for use with CallerContext. 
 | 
static class  | 
CallerContext.InputOptions
Input options for use with CallerContext. 
 | 
static class  | 
CallerContext.Output
Output data from CallerContext. 
 | 
| Constructor and Description | 
|---|
CallerContext()  | 
| Modifier and Type | Method and Description | 
|---|---|
static CallerContext | 
createContext(JavaProvider provider,
             JavaClass callingClass)
Deprecated. 
 
Not supported 
 | 
static CallerContext | 
createContext(SourceElement sourceScope)
In case it isn't clear, the source scope can be any SourceElement
 that is attached to a valid SourceFile tree. 
 | 
static CallerContext | 
createContext(SourceElement sourceScope,
             boolean forgiving)
In case it isn't clear, the source scope can be any SourceElement
 that is attached to a valid SourceFile tree. 
 | 
abstract SourceElement | 
getSourceScope()  | 
abstract boolean | 
isCompatibleMethodReference(SourceElement scope,
                           JavaHasType lhs,
                           java.util.List<JavaType> typeArguments,
                           java.lang.String methodName,
                           JavaType functionalInterface)
Determines if a method reference composed of lhs::methodName is
 assignment compatible with the functionalInterface type in
 the given scope context. 
 | 
abstract CallerContext.Output | 
listMethods(JavaHasType lhs,
           java.lang.String name,
           JavaType[] tArguments,
           CallerContext.InputOptions options)
List all matching methods that are both visible and accessible in
 this caller context. 
 | 
abstract CallerContext.Output | 
listNames(JavaHasType lhs,
         CallerContext.InputOptions options)
List all elements that are both visible and accessible in this
 caller context. 
 | 
abstract CallerContext.Output | 
listNames(JavaPackage lhs,
         CallerContext.InputOptions options)
List all member package and member type elements that are both
 visible and accessible in this caller context. 
 | 
abstract JavaHasType | 
resolveAmbiguousName(JavaHasType lhs,
                    java.lang.String name)
Looks up the given AmbiguousName with a lhs value in the given
 scope. 
 | 
abstract JavaHasType | 
resolveAmbiguousName(java.lang.String name)
Looks up the given AmbiguousName in the given scope. 
 | 
JavaMethod | 
resolveConstructor(JavaType target,
                  JavaType[] argumentTypes)
Deprecated. 
 
Use resolveConstructor( JavaType, JavaType[], JavaHasType[], JavaType[] ) instead 
 | 
abstract JavaMethod | 
resolveConstructor(JavaType target,
                  JavaType[] typeArguments,
                  JavaHasType[] arguments,
                  JavaType[] argumentTypes)
Looks up a constructor on the target class. 
 | 
abstract JavaHasType | 
resolveExpressionName(JavaHasType lhs,
                     java.lang.String name)
Looks up the given ExpressionName with a lhs value in the given
 scope. 
 | 
abstract JavaHasType | 
resolveExpressionName(java.lang.String name)
Looks up the given ExpressionName in the given scope. 
 | 
JavaMethod | 
resolveMethod(JavaHasType lhs,
             java.lang.String name,
             JavaType[] argumentTypes)
Deprecated. 
 
Use resolveMethod( JavaHasType, String, JavaType[], JavaHasType[], JavaType[] ) instead 
 | 
abstract JavaMethod | 
resolveMethod(JavaHasType lhs,
             java.lang.String name,
             JavaType[] typeArguments,
             JavaHasType[] arguments,
             JavaType[] argumentTypes)
Looks up a method. 
 | 
JavaMethod | 
resolveMethod(JavaHasType lhs,
             java.lang.String name,
             JavaType[] typeArguments,
             JavaType[] argumentTypes)
Deprecated. 
 
Use resolveMethod( JavaHasType, String, JavaType[], JavaHasType[], JavaType[] ) instead 
 | 
abstract JavaType | 
resolveTypeName(JavaHasType lhs,
               java.lang.String name)
Looks up the given TypeName with a lhs value in the given
 scope. 
 | 
abstract JavaType | 
resolveTypeName(java.lang.String name)
Looks up the given TypeName in the given scope. 
 | 
@Deprecated public static CallerContext createContext(JavaProvider provider, JavaClass callingClass)
public static CallerContext createContext(SourceElement sourceScope, boolean forgiving)
sourceScope - Must be a parented SourceElement belonging to
                    a SourceFile with a valid JavaProvider cookie.forgiving - If true, all calls will try to return a non-null
                  result even if a compiler generates an error for it.java.lang.IllegalArgumentException - if sourceScope is nulljava.lang.IllegalStateException - if sourceScope has no owning SourceFile,
         or if that SourceFile has no JavaProviderpublic static CallerContext createContext(SourceElement sourceScope)
sourceScope - Must be a parented SourceElement belonging to
                    a SourceFile with a valid JavaProvider cookie.java.lang.IllegalArgumentException - if sourceScope is null, or sourceScope
         has no parent, or the SourceFile of sourceScope has no
         valid JavaProviderpublic abstract SourceElement getSourceScope()
public abstract JavaType resolveTypeName(java.lang.String name)
name - A namepublic abstract JavaType resolveTypeName(JavaHasType lhs, java.lang.String name)
lhs - The left-hand-side if this is a lhs.name expressionname - A namepublic abstract JavaHasType resolveExpressionName(java.lang.String name)
name - A namepublic abstract JavaHasType resolveExpressionName(JavaHasType lhs, java.lang.String name)
lhs - The left-hand-side if this is a lhs.name expressionname - A namepublic abstract JavaHasType resolveAmbiguousName(java.lang.String name)
name - A namepublic abstract JavaHasType resolveAmbiguousName(JavaHasType lhs, java.lang.String name)
lhs - The left-hand-side if this is a lhs.name expressionname - A name@Deprecated public final JavaMethod resolveMethod(JavaHasType lhs, java.lang.String name, JavaType[] argumentTypes)
lhs - The left hand side primary if it existsname - The name of the methodargumentTypes - The argument types; can use null for no argument types@Deprecated public final JavaMethod resolveMethod(JavaHasType lhs, java.lang.String name, JavaType[] typeArguments, JavaType[] argumentTypes)
lhs - The left hand side primary if it existsname - The name of the methodtypeArguments - The type arguments; can use null for no type argumentsargumentTypes - The argument types; can use null for no argument typespublic abstract JavaMethod resolveMethod(JavaHasType lhs, java.lang.String name, JavaType[] typeArguments, JavaHasType[] arguments, JavaType[] argumentTypes)
lhs - The left hand side primary if it existsname - The name of the methodtypeArguments - The type arguments; can use null for no type argumentsarguments - The argument expressions; can use null for no argument expressionsargumentTypes - The argument types; can use null for no argument types@Deprecated public final JavaMethod resolveConstructor(JavaType target, JavaType[] argumentTypes)
target - The targeet classargumentTypes - The argument types; can use null for no argument typespublic abstract JavaMethod resolveConstructor(JavaType target, JavaType[] typeArguments, JavaHasType[] arguments, JavaType[] argumentTypes)
target - The targeet classtypeArguments - The type arguments; can use null for no type argumentsarguments - The argument expressions; can use null for no argument expressionsargumentTypes - The argument types; can use null for no argument typespublic abstract CallerContext.Output listNames(JavaPackage lhs, CallerContext.InputOptions options)
lhs - Non-null indicates an explicit lhs.options - The options for this lookuppublic abstract CallerContext.Output listNames(JavaHasType lhs, CallerContext.InputOptions options)
lhs - Non-null indicates an explicit lhs.options - The options for this lookuppublic abstract CallerContext.Output listMethods(JavaHasType lhs, java.lang.String name, JavaType[] tArguments, CallerContext.InputOptions options)
lhs - Non-null indicates an explicit lhsname - Method name restriction.If non-null, the output will
             only include methods with a matching name. If null, no
             name restriction is applied. Use <init> to search for
             constructorstArguments - Null indicates no type argumentsoptions - The options for this lookuppublic abstract boolean isCompatibleMethodReference(SourceElement scope, JavaHasType lhs, java.util.List<JavaType> typeArguments, java.lang.String methodName, JavaType functionalInterface)
scope - The scope where the method reference occurslhs - A JavaHasTypetypeArguments - The type arguments of the method, if any,
 use null or an empty List for no type argumentsmethodName - A method name; use "new" if this should be
 a reference to a constructorfunctionalInterface - A functional interface type