com.ibm.wala.ipa.callgraph.propagation
Interface PointerKeyFactory

All Known Subinterfaces:
AstPointerKeyFactory, ExtendedHeapModel, HeapModel
All Known Implementing Classes:
AstCFAPointerKeys, AstJavaCFABuilder, AstJavaSSAPropagationCallGraphBuilder, AstJavaZeroOneContainerCFABuilder, AstJavaZeroXCFABuilder, AstSSAPropagationCallGraphBuilder, CFABuilder, CFAPointerKeys, DelegatingAstPointerKeys, DelegatingExtendedHeapModel, JSCFABuilder, JSSSAPropagationCallGraphBuilder, JSZeroXCFABuilder, nCFABuilder, OneCFABuilder, SSAPropagationCallGraphBuilder, TypeBasedHeapModel, ZeroContainerCFABuilder, ZeroOneContainerCFABuilder, ZeroXCFABuilder

public interface PointerKeyFactory

An object that abstracts how to model pointers in the heap.


Method Summary
 FilteredPointerKey getFilteredPointerKeyForLocal(CGNode node, int valueNumber, FilteredPointerKey.TypeFilter filter)
           
 PointerKey getPointerKeyForArrayContents(InstanceKey I)
          TODO: expand this API to differentiate between different array indices
 PointerKey getPointerKeyForExceptionalReturnValue(CGNode node)
           
 PointerKey getPointerKeyForInstanceField(InstanceKey I, IField field)
           
 PointerKey getPointerKeyForLocal(CGNode node, int valueNumber)
           
 PointerKey getPointerKeyForReturnValue(CGNode node)
           
 PointerKey getPointerKeyForStaticField(IField f)
           
 

Method Detail

getPointerKeyForLocal

PointerKey getPointerKeyForLocal(CGNode node,
                                 int valueNumber)
Parameters:
node -
valueNumber -
Returns:
the PointerKey that acts as a representative for the class of pointers that includes the local variable identified by the value number parameter.

getFilteredPointerKeyForLocal

FilteredPointerKey getFilteredPointerKeyForLocal(CGNode node,
                                                 int valueNumber,
                                                 FilteredPointerKey.TypeFilter filter)
Returns:
the PointerKey that acts as a representative for the class of pointers that includes the local variable identified by the value number parameter.

getPointerKeyForReturnValue

PointerKey getPointerKeyForReturnValue(CGNode node)
Parameters:
node -
Returns:
the PointerKey that acts as a representative for the class of pointers that includes the return value for a node

getPointerKeyForExceptionalReturnValue

PointerKey getPointerKeyForExceptionalReturnValue(CGNode node)
Returns:
the PointerKey that acts as a representative for the class of pointers that includes the exceptional return value

getPointerKeyForStaticField

PointerKey getPointerKeyForStaticField(IField f)
Returns:
the PointerKey that acts as a representative for the class of pointers that includes the contents of the static field

getPointerKeyForInstanceField

PointerKey getPointerKeyForInstanceField(InstanceKey I,
                                         IField field)
Returns:
the PointerKey that acts as a representation for the class of pointers that includes the given instance field.

getPointerKeyForArrayContents

PointerKey getPointerKeyForArrayContents(InstanceKey I)
TODO: expand this API to differentiate between different array indices

Parameters:
I - an InstanceKey representing an abstract array
Returns:
the PointerKey that acts as a representation for the class of pointers that includes the given array contents.