public class IntentContextInterpreter extends Object implements com.ibm.wala.ipa.callgraph.propagation.SSAContextInterpreter
SSAContextInterpreter that redirects functions that start Android-Components.
The Starter-Functions (listed in IntentStarters) are replaced by a Model that emulates Android Lifecycle
based on their Target (Internal, External, ...): A wrapper around the single models is generated dynamically
(by the models themselves) to resemble the signature of the replaced function.
Methods are replacement by generating a adapted Intermediate Representation of this function on every
occurrence of a call to it.IntentContextSelector,
IntentStarters,
MicroModel,
ExternalModel| Constructor and Description |
|---|
IntentContextInterpreter(com.ibm.wala.ipa.cha.IClassHierarchy cha,
com.ibm.wala.ipa.callgraph.AnalysisOptions options,
com.ibm.wala.ipa.callgraph.IAnalysisCacheView cache) |
| Modifier and Type | Method and Description |
|---|---|
com.ibm.wala.cfg.ControlFlowGraph<com.ibm.wala.ssa.SSAInstruction,com.ibm.wala.ssa.ISSABasicBlock> |
getCFG(com.ibm.wala.ipa.callgraph.CGNode node) |
com.ibm.wala.ssa.DefUse |
getDU(com.ibm.wala.ipa.callgraph.CGNode node) |
com.ibm.wala.ssa.IR |
getIR(com.ibm.wala.ipa.callgraph.CGNode node)
Generates an adapted IR of the managed functions on each call.
|
com.ibm.wala.ssa.IRView |
getIRView(com.ibm.wala.ipa.callgraph.CGNode node) |
int |
getNumberOfStatements(com.ibm.wala.ipa.callgraph.CGNode node) |
Iterator<com.ibm.wala.classLoader.CallSiteReference> |
iterateCallSites(com.ibm.wala.ipa.callgraph.CGNode node) |
Iterator<com.ibm.wala.types.FieldReference> |
iterateFieldsRead(com.ibm.wala.ipa.callgraph.CGNode node) |
Iterator<com.ibm.wala.types.FieldReference> |
iterateFieldsWritten(com.ibm.wala.ipa.callgraph.CGNode node) |
Iterator<com.ibm.wala.classLoader.NewSiteReference> |
iterateNewSites(com.ibm.wala.ipa.callgraph.CGNode node) |
boolean |
recordFactoryType(com.ibm.wala.ipa.callgraph.CGNode node,
com.ibm.wala.classLoader.IClass klass) |
boolean |
understands(com.ibm.wala.ipa.callgraph.CGNode node)
If the function associated with the node is handled by this class.
|
public IntentContextInterpreter(com.ibm.wala.ipa.cha.IClassHierarchy cha,
com.ibm.wala.ipa.callgraph.AnalysisOptions options,
com.ibm.wala.ipa.callgraph.IAnalysisCacheView cache)
public com.ibm.wala.ssa.IR getIR(com.ibm.wala.ipa.callgraph.CGNode node)
getIR in interface com.ibm.wala.ipa.callgraph.propagation.SSAContextInterpreternode - The function to create the IR ofIllegalArgumentException - on a node of nullpublic com.ibm.wala.ssa.IRView getIRView(com.ibm.wala.ipa.callgraph.CGNode node)
getIRView in interface com.ibm.wala.ipa.callgraph.propagation.SSAContextInterpreterpublic boolean understands(com.ibm.wala.ipa.callgraph.CGNode node)
understands in interface com.ibm.wala.ipa.callgraph.cha.CHAContextInterpreterIllegalArgumentException - if the given node is nullpublic Iterator<com.ibm.wala.classLoader.NewSiteReference> iterateNewSites(com.ibm.wala.ipa.callgraph.CGNode node)
iterateNewSites in interface com.ibm.wala.ipa.callgraph.cha.CHAContextInterpreteriterateNewSites in interface com.ibm.wala.ipa.callgraph.propagation.rta.RTAContextInterpreterpublic Iterator<com.ibm.wala.classLoader.CallSiteReference> iterateCallSites(com.ibm.wala.ipa.callgraph.CGNode node)
iterateCallSites in interface com.ibm.wala.ipa.callgraph.cha.CHAContextInterpreterpublic com.ibm.wala.cfg.ControlFlowGraph<com.ibm.wala.ssa.SSAInstruction,com.ibm.wala.ssa.ISSABasicBlock> getCFG(com.ibm.wala.ipa.callgraph.CGNode node)
getCFG in interface com.ibm.wala.ipa.callgraph.propagation.SSAContextInterpreterpublic int getNumberOfStatements(com.ibm.wala.ipa.callgraph.CGNode node)
getNumberOfStatements in interface com.ibm.wala.ipa.callgraph.propagation.SSAContextInterpreterpublic com.ibm.wala.ssa.DefUse getDU(com.ibm.wala.ipa.callgraph.CGNode node)
getDU in interface com.ibm.wala.ipa.callgraph.propagation.SSAContextInterpreterpublic boolean recordFactoryType(com.ibm.wala.ipa.callgraph.CGNode node,
com.ibm.wala.classLoader.IClass klass)
recordFactoryType in interface com.ibm.wala.ipa.callgraph.propagation.rta.RTAContextInterpreterpublic Iterator<com.ibm.wala.types.FieldReference> iterateFieldsWritten(com.ibm.wala.ipa.callgraph.CGNode node)
iterateFieldsWritten in interface com.ibm.wala.ipa.callgraph.propagation.rta.RTAContextInterpreterpublic Iterator<com.ibm.wala.types.FieldReference> iterateFieldsRead(com.ibm.wala.ipa.callgraph.CGNode node)
iterateFieldsRead in interface com.ibm.wala.ipa.callgraph.propagation.rta.RTAContextInterpreterCopyright © 2019. All rights reserved.