com.ibm.wala.ipa.callgraph.propagation.cfa
Class DefaultPointerKeyFactory

java.lang.Object
  extended by com.ibm.wala.ipa.callgraph.propagation.cfa.DefaultPointerKeyFactory
All Implemented Interfaces:
PointerKeyFactory

public class DefaultPointerKeyFactory
extends java.lang.Object
implements PointerKeyFactory

Default implementation of PointerKeyFactory


Constructor Summary
DefaultPointerKeyFactory()
           
 
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)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DefaultPointerKeyFactory

public DefaultPointerKeyFactory()
Method Detail

getPointerKeyForLocal

public PointerKey getPointerKeyForLocal(CGNode node,
                                        int valueNumber)
Specified by:
getPointerKeyForLocal in interface PointerKeyFactory
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

public FilteredPointerKey getFilteredPointerKeyForLocal(CGNode node,
                                                        int valueNumber,
                                                        FilteredPointerKey.TypeFilter filter)
Specified by:
getFilteredPointerKeyForLocal in interface PointerKeyFactory
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

public PointerKey getPointerKeyForReturnValue(CGNode node)
Specified by:
getPointerKeyForReturnValue in interface PointerKeyFactory
Returns:
the PointerKey that acts as a representative for the class of pointers that includes the return value for a node

getPointerKeyForExceptionalReturnValue

public PointerKey getPointerKeyForExceptionalReturnValue(CGNode node)
Specified by:
getPointerKeyForExceptionalReturnValue in interface PointerKeyFactory
Returns:
the PointerKey that acts as a representative for the class of pointers that includes the exceptional return value

getPointerKeyForStaticField

public PointerKey getPointerKeyForStaticField(IField f)
Specified by:
getPointerKeyForStaticField in interface PointerKeyFactory
Returns:
the PointerKey that acts as a representative for the class of pointers that includes the contents of the static field

getPointerKeyForInstanceField

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

getPointerKeyForArrayContents

public PointerKey getPointerKeyForArrayContents(InstanceKey I)
Description copied from interface: PointerKeyFactory
TODO: expand this API to differentiate between different array indices

Specified by:
getPointerKeyForArrayContents in interface PointerKeyFactory
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.