com.ibm.wala.cast.ipa.callgraph
Class DelegatingAstPointerKeys

java.lang.Object
  extended by com.ibm.wala.cast.ipa.callgraph.DelegatingAstPointerKeys
All Implemented Interfaces:
AstPointerKeyFactory, PointerKeyFactory
Direct Known Subclasses:
AstCFAPointerKeys

public class DelegatingAstPointerKeys
extends java.lang.Object
implements AstPointerKeyFactory


Constructor Summary
DelegatingAstPointerKeys(PointerKeyFactory base)
           
 
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 f)
           
 PointerKey getPointerKeyForLocal(CGNode node, int valueNumber)
           
 PointerKey getPointerKeyForObjectCatalog(InstanceKey I)
          get a pointer key for the object catalog of I.
 PointerKey getPointerKeyForReturnValue(CGNode node)
           
 PointerKey getPointerKeyForStaticField(IField f)
           
 java.util.Iterator<PointerKey> getPointerKeysForReflectedFieldRead(InstanceKey I, InstanceKey F)
           
 java.util.Iterator<PointerKey> getPointerKeysForReflectedFieldWrite(InstanceKey I, InstanceKey F)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DelegatingAstPointerKeys

public DelegatingAstPointerKeys(PointerKeyFactory base)
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

getPointerKeyForObjectCatalog

public PointerKey getPointerKeyForObjectCatalog(InstanceKey I)
Description copied from interface: AstPointerKeyFactory
get a pointer key for the object catalog of I. The object catalog stores the names of all known properties of I.

Specified by:
getPointerKeyForObjectCatalog in interface AstPointerKeyFactory

getPointerKeyForInstanceField

public PointerKey getPointerKeyForInstanceField(InstanceKey I,
                                                IField f)
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.

getPointerKeysForReflectedFieldRead

public java.util.Iterator<PointerKey> getPointerKeysForReflectedFieldRead(InstanceKey I,
                                                                          InstanceKey F)
Specified by:
getPointerKeysForReflectedFieldRead in interface AstPointerKeyFactory

getPointerKeysForReflectedFieldWrite

public java.util.Iterator<PointerKey> getPointerKeysForReflectedFieldWrite(InstanceKey I,
                                                                           InstanceKey F)
Specified by:
getPointerKeysForReflectedFieldWrite in interface AstPointerKeyFactory