com.ibm.wala.ipa.callgraph.propagation.rta
Interface RTAContextInterpreter

All Known Subinterfaces:
SSAContextInterpreter
All Known Implementing Classes:
AstContextInsensitiveSSAContextInterpreter, CloneInterpreter, CommandInterpreter, ContextInsensitiveRTAInterpreter, ContextInsensitiveSSAInterpreter, DefaultRTAInterpreter, DefaultSSAInterpreter, DelegatingRTAContextInterpreter, DelegatingSSAContextInterpreter, FactoryBypassInterpreter

public interface RTAContextInterpreter

This object will analyze a method in a context and return information needed for RTA.


Method Summary
 java.util.Iterator<CallSiteReference> iterateCallSites(CGNode node)
           
 java.util.Iterator iterateFieldsRead(CGNode node)
           
 java.util.Iterator 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 klass.
 void setWarnings(WarningSet newWarnings)
          Bind this object to a new object to track warnings
 boolean understands(CGNode node)
          Does this object understand the given method? The caller had better check this before inquiring on other properties.
 

Method Detail

understands

boolean understands(CGNode node)
Does this object understand the given method? The caller had better check this before inquiring on other properties.


iterateNewSites

java.util.Iterator<NewSiteReference> iterateNewSites(CGNode node)
Returns:
an Iterator of the types that may be allocated by a given method in a given context.

iterateCallSites

java.util.Iterator<CallSiteReference> iterateCallSites(CGNode node)
Returns:
an Iterator of the call statements that may execute in a given method for a given context

iterateFieldsRead

java.util.Iterator iterateFieldsRead(CGNode node)
Returns:
iterator of FieldReference

iterateFieldsWritten

java.util.Iterator iterateFieldsWritten(CGNode node)
Returns:
iterator of FieldReference

recordFactoryType

boolean recordFactoryType(CGNode node,
                          IClass klass)
record that the "factory" method of a node should be interpreted to allocate a particular klass. TODO: this is a little ugly, is there a better place to move this?

Parameters:
node -
klass -
Returns:
true iff a NEW type was recorded, false if the type was previously recorded.

setWarnings

void setWarnings(WarningSet newWarnings)
Bind this object to a new object to track warnings

Parameters:
newWarnings -