public class CloneInterpreter extends java.lang.Object implements SSAContextInterpreter
TODO: The current implementation does not model CloneNotSupportedExceptions
| Modifier and Type | Field and Description |
|---|---|
static MethodReference |
CLONE
Comment for
CLONE |
static Atom |
cloneAtom
Comment for
cloneAtom |
| Constructor and Description |
|---|
CloneInterpreter() |
| Modifier and Type | Method and Description |
|---|---|
java.util.Set<TypeReference> |
getCaughtExceptions(CGNode node) |
ControlFlowGraph<SSAInstruction,ISSABasicBlock> |
getCFG(CGNode N) |
DefUse |
getDU(CGNode node) |
IR |
getIR(CGNode node) |
IRView |
getIRView(CGNode node) |
int |
getNumberOfStatements(CGNode node) |
boolean |
hasObjectArrayLoad(CGNode node) |
boolean |
hasObjectArrayStore(CGNode node) |
java.util.Iterator<CallSiteReference> |
iterateCallSites(CGNode node) |
java.util.Iterator<TypeReference> |
iterateCastTypes(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 Atom cloneAtom
cloneAtompublic static final MethodReference CLONE
CLONEpublic 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 java.util.Set<TypeReference> getCaughtExceptions(CGNode node)
public boolean hasObjectArrayLoad(CGNode node)
public boolean hasObjectArrayStore(CGNode node)
public java.util.Iterator<TypeReference> iterateCastTypes(CGNode node)
public ControlFlowGraph<SSAInstruction,ISSABasicBlock> getCFG(CGNode N)
getCFG in interface SSAContextInterpreterpublic DefUse getDU(CGNode node)
getDU in interface SSAContextInterpreter