Class DelegatingRTAContextInterpreter
- java.lang.Object
-
- com.ibm.wala.ipa.callgraph.propagation.rta.DelegatingRTAContextInterpreter
-
- All Implemented Interfaces:
CHAContextInterpreter,RTAContextInterpreter
- Direct Known Subclasses:
DelegatingSSAContextInterpreter
public class DelegatingRTAContextInterpreter extends Object implements RTAContextInterpreter
A context interpreter that first checks with A, then defaults to B.
-
-
Constructor Summary
Constructors Constructor Description DelegatingRTAContextInterpreter(RTAContextInterpreter A, RTAContextInterpreter B)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Iterator<CallSiteReference>iterateCallSites(CGNode node)Iterator<FieldReference>iterateFieldsRead(CGNode node)Iterator<FieldReference>iterateFieldsWritten(CGNode node)Iterator<NewSiteReference>iterateNewSites(CGNode node)booleanrecordFactoryType(CGNode node, IClass klass)record that the "factory" method of a node should be interpreted to allocate a particular class.StringtoString()booleanunderstands(CGNode node)Does this object understand the given method? The caller had better check this before inquiring on other properties.
-
-
-
Constructor Detail
-
DelegatingRTAContextInterpreter
public DelegatingRTAContextInterpreter(RTAContextInterpreter A, RTAContextInterpreter B)
-
-
Method Detail
-
understands
public boolean understands(CGNode node)
Description copied from interface:CHAContextInterpreterDoes this object understand the given method? The caller had better check this before inquiring on other properties.- Specified by:
understandsin interfaceCHAContextInterpreter
-
iterateNewSites
public Iterator<NewSiteReference> iterateNewSites(CGNode node)
- Specified by:
iterateNewSitesin interfaceRTAContextInterpreter- Returns:
- an Iterator of the types that may be allocated by a given method in a given context.
-
iterateCallSites
public Iterator<CallSiteReference> iterateCallSites(CGNode node)
- Specified by:
iterateCallSitesin interfaceCHAContextInterpreter- Returns:
- an Iterator of the call statements that may execute in a given method for a given context
-
iterateFieldsRead
public Iterator<FieldReference> iterateFieldsRead(CGNode node)
- Specified by:
iterateFieldsReadin interfaceRTAContextInterpreter- Returns:
- iterator of FieldReference
-
iterateFieldsWritten
public Iterator<FieldReference> iterateFieldsWritten(CGNode node)
- Specified by:
iterateFieldsWrittenin interfaceRTAContextInterpreter- Returns:
- iterator of FieldReference
-
recordFactoryType
public boolean recordFactoryType(CGNode node, IClass klass)
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?- Specified by:
recordFactoryTypein interfaceRTAContextInterpreter- Returns:
- true iff a NEW type was recorded, false if the type was previously recorded.
-
-