com.ibm.wala.ipa.callgraph.propagation.rta
Class DefaultRTAInterpreter

java.lang.Object
  extended by com.ibm.wala.ipa.callgraph.propagation.rta.DefaultRTAInterpreter
All Implemented Interfaces:
RTAContextInterpreter
Direct Known Subclasses:
DefaultSSAInterpreter

public class DefaultRTAInterpreter
extends java.lang.Object
implements RTAContextInterpreter

Basic analysis; context-insensitive


Constructor Summary
DefaultRTAInterpreter(AnalysisOptions options, WarningSet warnings)
           
 
Method Summary
 WarningSet getWarnings()
           
 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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DefaultRTAInterpreter

public DefaultRTAInterpreter(AnalysisOptions options,
                             WarningSet warnings)
Parameters:
options - governing analysis options
warnings - an object to track analysis warnings
Method Detail

iterateNewSites

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

iterateCallSites

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

iterateFieldsRead

public java.util.Iterator iterateFieldsRead(CGNode node)
Specified by:
iterateFieldsRead in interface RTAContextInterpreter
Returns:
iterator of FieldReference

iterateFieldsWritten

public java.util.Iterator iterateFieldsWritten(CGNode node)
Specified by:
iterateFieldsWritten in interface RTAContextInterpreter
Returns:
iterator of FieldReference

understands

public boolean understands(CGNode node)
Description copied from interface: RTAContextInterpreter
Does this object understand the given method? The caller had better check this before inquiring on other properties.

Specified by:
understands in interface RTAContextInterpreter

recordFactoryType

public boolean recordFactoryType(CGNode node,
                                 IClass klass)
Description copied from interface: RTAContextInterpreter
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?

Specified by:
recordFactoryType in interface RTAContextInterpreter
Returns:
true iff a NEW type was recorded, false if the type was previously recorded.

setWarnings

public void setWarnings(WarningSet newWarnings)
Description copied from interface: RTAContextInterpreter
Bind this object to a new object to track warnings

Specified by:
setWarnings in interface RTAContextInterpreter

getWarnings

public WarningSet getWarnings()