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

java.lang.Object
  extended by com.ibm.wala.cast.ipa.callgraph.CrossLanguageInstanceKeys
All Implemented Interfaces:
InstanceKeyFactory

public class CrossLanguageInstanceKeys
extends java.lang.Object
implements InstanceKeyFactory

An InstanceKeyFactory implementation that is designed to support multiple languages. This implementation delegates to one of several child instance key factories based on the language associated with the IClass or TypeReference for which an instance key is being chosen.


Constructor Summary
CrossLanguageInstanceKeys(java.util.Map languageSelectors)
           
 
Method Summary
 InstanceKey getInstanceKeyForAllocation(CGNode node, NewSiteReference allocation)
           
 InstanceKey getInstanceKeyForClassObject(TypeReference type)
           
 InstanceKey getInstanceKeyForConstant(TypeReference type, java.lang.Object S)
           
 InstanceKey getInstanceKeyForMultiNewArray(CGNode node, NewSiteReference allocation, int dim)
           
 InstanceKey getInstanceKeyForPEI(CGNode node, ProgramCounter instr, TypeReference type)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CrossLanguageInstanceKeys

public CrossLanguageInstanceKeys(java.util.Map languageSelectors)
Method Detail

getInstanceKeyForAllocation

public InstanceKey getInstanceKeyForAllocation(CGNode node,
                                               NewSiteReference allocation)
Specified by:
getInstanceKeyForAllocation in interface InstanceKeyFactory
Returns:
the instance key that represents a particular allocation

getInstanceKeyForMultiNewArray

public InstanceKey getInstanceKeyForMultiNewArray(CGNode node,
                                                  NewSiteReference allocation,
                                                  int dim)
Specified by:
getInstanceKeyForMultiNewArray in interface InstanceKeyFactory
Returns:
the instance key that represents the array allocated as the dim_th dimension at a particular allocation

getInstanceKeyForConstant

public InstanceKey getInstanceKeyForConstant(TypeReference type,
                                             java.lang.Object S)
Specified by:
getInstanceKeyForConstant in interface InstanceKeyFactory
Returns:
the instance key that represents a constant with value S, when considered as a particular type

getInstanceKeyForPEI

public InstanceKey getInstanceKeyForPEI(CGNode node,
                                        ProgramCounter instr,
                                        TypeReference type)
Specified by:
getInstanceKeyForPEI in interface InstanceKeyFactory
Returns:
the instance key that represents the exception of type _type_ thrown by a particular PEI.

getInstanceKeyForClassObject

public InstanceKey getInstanceKeyForClassObject(TypeReference type)
Specified by:
getInstanceKeyForClassObject in interface InstanceKeyFactory
Returns:
the instance key that represents the class object of type _type_.