public class JavaLangClassContextInterpreter extends java.lang.Object implements SSAContextInterpreter
SSAContextInterpreter specialized to interpret methods on java.lang.Class in a JavaTypeContext which represents the point-type of the class object created by the call.
Currently supported methods:
| Modifier and Type | Field and Description |
|---|---|
static MethodReference |
GET_CONSTRUCTOR |
static MethodReference |
GET_CONSTRUCTORS |
static MethodReference |
GET_DECLARED_CONSTRUCTOR |
static MethodReference |
GET_DECLARED_CONSTRUCTORS |
static MethodReference |
GET_DECLARED_METHOD |
static MethodReference |
GET_DECLARED_METHODS |
static MethodReference |
GET_METHOD |
static MethodReference |
GET_METHODS |
| Constructor and Description |
|---|
JavaLangClassContextInterpreter() |
| Modifier and Type | Method and Description |
|---|---|
ControlFlowGraph<SSAInstruction,ISSABasicBlock> |
getCFG(CGNode N) |
DefUse |
getDU(CGNode node) |
IR |
getIR(CGNode node) |
IRView |
getIRView(CGNode node) |
int |
getNumberOfStatements(CGNode node) |
java.util.Iterator<CallSiteReference> |
iterateCallSites(CGNode node) |
java.util.Iterator<FieldReference> |
iterateFieldsRead(CGNode node) |
java.util.Iterator<FieldReference> |
iterateFieldsWritten(CGNode node) |
java.util.Iterator<NewSiteReference> |
iterateNewSites(CGNode node) |
boolean |
recordFactoryType(CGNode node,
IClass klass)
record that the "factory" method of a node should be interpreted to allocate a particular
class.
|
boolean |
understands(CGNode node)
Does this object understand the given method? The caller had better check this before inquiring
on other properties.
|
public static final MethodReference GET_CONSTRUCTOR
public static final MethodReference GET_CONSTRUCTORS
public static final MethodReference GET_METHOD
public static final MethodReference GET_METHODS
public static final MethodReference GET_DECLARED_CONSTRUCTOR
public static final MethodReference GET_DECLARED_CONSTRUCTORS
public static final MethodReference GET_DECLARED_METHOD
public static final MethodReference GET_DECLARED_METHODS
public IR getIR(CGNode node)
getIR in interface SSAContextInterpreterpublic IRView getIRView(CGNode node)
getIRView in interface SSAContextInterpreterpublic int getNumberOfStatements(CGNode node)
getNumberOfStatements in interface SSAContextInterpreterpublic boolean understands(CGNode node)
CHAContextInterpreterunderstands in interface CHAContextInterpreterpublic java.util.Iterator<NewSiteReference> iterateNewSites(CGNode node)
iterateNewSites in interface CHAContextInterpreteriterateNewSites in interface RTAContextInterpreterpublic java.util.Iterator<CallSiteReference> iterateCallSites(CGNode node)
iterateCallSites in interface CHAContextInterpreterpublic boolean recordFactoryType(CGNode node, IClass klass)
RTAContextInterpreterTODO: this is a little ugly, is there a better place to move this?
recordFactoryType in interface RTAContextInterpreterpublic java.util.Iterator<FieldReference> iterateFieldsRead(CGNode node)
iterateFieldsRead in interface RTAContextInterpreterpublic java.util.Iterator<FieldReference> iterateFieldsWritten(CGNode node)
iterateFieldsWritten in interface RTAContextInterpreterpublic ControlFlowGraph<SSAInstruction,ISSABasicBlock> getCFG(CGNode N)
getCFG in interface SSAContextInterpreterpublic DefUse getDU(CGNode node)
getDU in interface SSAContextInterpreter