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

java.lang.Object
  extended by com.ibm.wala.ipa.callgraph.propagation.rta.ContextInsensitiveRTAInterpreter
All Implemented Interfaces:
RTAContextInterpreter, SSAContextInterpreter, CFGProvider
Direct Known Subclasses:
ContextInsensitiveSSAInterpreter

public abstract class ContextInsensitiveRTAInterpreter
extends java.lang.Object
implements RTAContextInterpreter, SSAContextInterpreter

Default implementation of MethodContextInterpreter for context-insensitive analysis


Constructor Summary
ContextInsensitiveRTAInterpreter()
           
 
Method Summary
 java.util.Iterator<CallSiteReference> iterateCallSites(CGNode node, WarningSet warnings)
           
 java.util.Iterator iterateFieldsRead(CGNode node, WarningSet warnings)
           
 java.util.Iterator iterateFieldsWritten(CGNode node, WarningSet warnings)
           
 java.util.Iterator<NewSiteReference> iterateNewSites(CGNode node, WarningSet warnings)
           
 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
 
Methods inherited from interface com.ibm.wala.ipa.callgraph.propagation.SSAContextInterpreter
getDU, getIR, getNumberOfStatements
 
Methods inherited from interface com.ibm.wala.ipa.cfg.CFGProvider
getCFG
 

Constructor Detail

ContextInsensitiveRTAInterpreter

public ContextInsensitiveRTAInterpreter()
Method Detail

iterateNewSites

public java.util.Iterator<NewSiteReference> iterateNewSites(CGNode node,
                                                            WarningSet warnings)
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,
                                                              WarningSet warnings)
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,
                                            WarningSet warnings)
Specified by:
iterateFieldsRead in interface RTAContextInterpreter
Returns:
iterator of FieldReference

iterateFieldsWritten

public java.util.Iterator iterateFieldsWritten(CGNode node,
                                               WarningSet warnings)
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