Class ReflectiveInvocationInterpreter
java.lang.Object
com.ibm.wala.analysis.reflection.AbstractReflectionInterpreter
com.ibm.wala.analysis.reflection.ReflectiveInvocationInterpreter
- All Implemented Interfaces:
CHAContextInterpreter, RTAContextInterpreter, SSAContextInterpreter
An
SSAContextInterpreter specialized to interpret reflective invocations such as
Constructor.newInstance and Method.invoke on an IMethod constant.-
Nested Class Summary
-
Field Summary
FieldsFields inherited from class AbstractReflectionInterpreter
CONE_BOUND, DEBUG, indexLocal, options, typeIndexMap -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionintgetNumberOfStatements(CGNode node) iterateCallSites(CGNode node) iterateFieldsRead(CGNode node) iterateFieldsWritten(CGNode node) iterateNewSites(CGNode node) booleanrecordFactoryType(CGNode node, IClass klass) record that the "factory" method of a node should be interpreted to allocate a particular class.booleanunderstands(CGNode node) Does this object understand the given method? The caller had better check this before inquiring on other properties.Methods inherited from class AbstractReflectionInterpreter
getCallSiteForType, getExceptionsForType, getLocalForType, getNewSiteForType, typeRef2TypeAbstraction
-
Field Details
-
CTOR_NEW_INSTANCE
-
METHOD_INVOKE
-
-
Constructor Details
-
ReflectiveInvocationInterpreter
public ReflectiveInvocationInterpreter()
-
-
Method Details
-
getIR
-
getIRView
-
getNumberOfStatements
- Returns:
- the number of the statements in the IR, or -1 if it's an unmodelled native method.
- See Also:
-
understands
Description copied from interface:CHAContextInterpreterDoes this object understand the given method? The caller had better check this before inquiring on other properties.- See Also:
-
iterateNewSites
- Returns:
- an Iterator of the types that may be allocated by a given method in a given context.
- See Also:
-
iterateCallSites
- Returns:
- an Iterator of the call statements that may execute in a given method for a given context
- See Also:
-
recordFactoryType
Description copied from interface:RTAContextInterpreterrecord that the "factory" method of a node should be interpreted to allocate a particular class.TODO: this is a little ugly, is there a better place to move this?
- Returns:
- true iff a NEW type was recorded, false if the type was previously recorded.
-
iterateFieldsRead
- Returns:
- iterator of FieldReference
-
iterateFieldsWritten
- Returns:
- iterator of FieldReference
-
getCFG
-
getDU
-