public class Resolver extends Object
Constructor and Description |
---|
Resolver(ProcessingEnvironment env) |
Modifier and Type | Method and Description |
---|---|
protected Object |
buildMethodContext()
Build an instance of
Resolve$MethodResolutionContext . |
Element |
findClass(String name,
TreePath path)
Finds the class literal with name
name . |
@Nullable com.sun.tools.javac.code.Symbol.ClassSymbol |
findClassInPackage(String name,
com.sun.tools.javac.code.Symbol.PackageSymbol pck,
TreePath path)
Finds the class with name
name in a given package. |
@Nullable VariableElement |
findField(String name,
TypeMirror type,
TreePath path)
Finds the field with name
name in a given type. |
@Nullable VariableElement |
findLocalVariableOrParameterOrField(String name,
TreePath path)
Finds the local variable with name
name in the given scope. |
Element |
findMethod(String methodName,
TypeMirror receiverType,
TreePath path,
List<TypeMirror> argumentTypes)
Finds the method element for a given name and list of expected parameter types.
|
@Nullable com.sun.tools.javac.code.Symbol.PackageSymbol |
findPackage(String name,
TreePath path)
Finds the package with name
name . |
com.sun.tools.javac.comp.Env<com.sun.tools.javac.comp.AttrContext> |
getEnvForPath(TreePath path)
Determine the environment for the given path.
|
public Resolver(ProcessingEnvironment env)
public com.sun.tools.javac.comp.Env<com.sun.tools.javac.comp.AttrContext> getEnvForPath(TreePath path)
path
- the tree path to the local scopepublic @Nullable com.sun.tools.javac.code.Symbol.PackageSymbol findPackage(String name, TreePath path)
name
.name
- the name of the packagepath
- the tree path to the local scopePackageSymbol
for the package if it is found, null
otherwisepublic @Nullable VariableElement findField(String name, TypeMirror type, TreePath path)
name
in a given type.
The method adheres to all the rules of Java's scoping (while also considering the imports) for name resolution.
name
- the name of the fieldtype
- the type of the receiver (i.e., the type in which to look for the field).path
- the tree path to the local scopenull
otherwisepublic @Nullable VariableElement findLocalVariableOrParameterOrField(String name, TreePath path)
name
in the given scope.name
- the name of the local variablepath
- the tree path to the local scopenull
otherwisepublic Element findClass(String name, TreePath path)
name
.
The method adheres to all the rules of Java's scoping (while also considering the imports) for name resolution.
name
- the name of the classpath
- the tree path to the local scopepublic @Nullable com.sun.tools.javac.code.Symbol.ClassSymbol findClassInPackage(String name, com.sun.tools.javac.code.Symbol.PackageSymbol pck, TreePath path)
name
in a given package.name
- the name of the classpck
- the PackageSymbol for the packagepath
- the tree path to the local scopeClassSymbol
for the class if it is found, null
otherwisepublic Element findMethod(String methodName, TypeMirror receiverType, TreePath path, List<TypeMirror> argumentTypes)
The method adheres to all the rules of Java's scoping (while also considering the imports) for name resolution.
methodName
- name of the method to findreceiverType
- type of the receiver of the methodpath
- tree pathprotected Object buildMethodContext() throws ClassNotFoundException, InstantiationException, IllegalAccessException, InvocationTargetException, NoSuchFieldException
Resolve$MethodResolutionContext
.