Package edu.umd.cs.findbugs.ba
Class InnerClassAccessMap
java.lang.Object
edu.umd.cs.findbugs.ba.InnerClassAccessMap
Determine which methods are accessors used by inner classes to access fields
in their enclosing classes. This has been tested with javac from the Sun JDK
1.4.x, but will probably not work with other source to bytecode compilers.
The instance of InnerClassAccessMap should be retrieved from the AnalysisContext.
- Author:
- David Hovemeyer
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionvoid
Clear the cache.static InnerClassAccessMap
create()
Create an instance.getInnerClassAccess
(String className, String methodName) Get the InnerClassAccess in given class with the given method name.getInnerClassAccess
(org.apache.bcel.generic.INVOKESTATIC inv, org.apache.bcel.generic.ConstantPoolGen cpg) Get the inner class access object for given invokestatic instruction.
-
Method Details
-
create
Create an instance.- Returns:
- a new instance of InnerClassAccessMap
-
getInnerClassAccess
public InnerClassAccess getInnerClassAccess(String className, String methodName) throws ClassNotFoundException Get the InnerClassAccess in given class with the given method name.- Parameters:
className
- the name of the classmethodName
- the name of the access method- Returns:
- the InnerClassAccess object for the method, or null if the method doesn't seem to be an inner class access
- Throws:
ClassNotFoundException
-
getInnerClassAccess
public InnerClassAccess getInnerClassAccess(org.apache.bcel.generic.INVOKESTATIC inv, org.apache.bcel.generic.ConstantPoolGen cpg) throws ClassNotFoundException Get the inner class access object for given invokestatic instruction. Returns null if the called method is not an inner class access.- Parameters:
inv
- the invokestatic instructioncpg
- the ConstantPoolGen for the method- Returns:
- the InnerClassAccess, or null if the call is not an inner class access
- Throws:
ClassNotFoundException
-
clearCache
public void clearCache()Clear the cache.
-