|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectedu.umd.cs.findbugs.ba.InnerClassAccessMap
public class InnerClassAccessMap
Singleton class to 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.
InnerClassAccess
Nested Class Summary | |
---|---|
private static class |
InnerClassAccessMap.InstructionCallback
Callback to scan an access method to determine what field it accesses, and whether the field is loaded or stored. |
private static class |
InnerClassAccessMap.LookupFailure
|
Field Summary | |
---|---|
private java.util.Map<java.lang.String,java.util.Map<java.lang.String,InnerClassAccess>> |
classToAccessMap
Map of class names to maps of method names to InnerClassAccess objects representing access methods. |
private static boolean |
DEBUG
|
private static java.util.Map<java.lang.String,InnerClassAccess> |
emptyMap
|
private static InnerClassAccessMap |
instance
The single instance. |
Constructor Summary | |
---|---|
private |
InnerClassAccessMap()
Constructor. |
Method Summary | |
---|---|
void |
clearCache()
Clear the cache. |
private java.util.Map<java.lang.String,InnerClassAccess> |
getAccessMapForClass(java.lang.String className)
Return a map of inner-class member access method names to the fields that they access for given class name. |
private static int |
getIndex(byte[] instructionList,
int index)
Get an unsigned 16 bit constant pool index from a byte array. |
InnerClassAccess |
getInnerClassAccess(org.apache.bcel.generic.INVOKESTATIC inv,
org.apache.bcel.generic.ConstantPoolGen cpg)
Get the inner class access object for given invokestatic instruction. |
InnerClassAccess |
getInnerClassAccess(java.lang.String className,
java.lang.String methodName)
Get the InnerClassAccess in given class with the given method name. |
static InnerClassAccessMap |
instance()
Get the single instance. |
private static int |
toInt(byte b)
Convert byte to unsigned int. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private static final boolean DEBUG
private java.util.Map<java.lang.String,java.util.Map<java.lang.String,InnerClassAccess>> classToAccessMap
private static InnerClassAccessMap instance
private static final java.util.Map<java.lang.String,InnerClassAccess> emptyMap
Constructor Detail |
---|
private InnerClassAccessMap()
Method Detail |
---|
public static InnerClassAccessMap instance()
public InnerClassAccess getInnerClassAccess(java.lang.String className, java.lang.String methodName) throws java.lang.ClassNotFoundException
className
- the name of the classmethodName
- the name of the access method
java.lang.ClassNotFoundException
public InnerClassAccess getInnerClassAccess(org.apache.bcel.generic.INVOKESTATIC inv, org.apache.bcel.generic.ConstantPoolGen cpg) throws java.lang.ClassNotFoundException
inv
- the invokestatic instructioncpg
- the ConstantPoolGen for the method
java.lang.ClassNotFoundException
public void clearCache()
private static int toInt(byte b)
private static int getIndex(byte[] instructionList, int index)
private java.util.Map<java.lang.String,InnerClassAccess> getAccessMapForClass(java.lang.String className) throws java.lang.ClassNotFoundException
className
- the name of the class
java.lang.ClassNotFoundException
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |