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

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

public class CrossLanguageMethodTargetSelector
extends java.lang.Object
implements MethodTargetSelector

A MethodTargetSelector implementation that supports multiple languages. It works by delegating to a language-specific child selector based on the language associated with the MethodReference for which a target is being chosen. This provides a simple way to combine language-specific target selection policies---such as those used for constructor calls in JavaScript and for bean methods in J2EE.


Constructor Summary
CrossLanguageMethodTargetSelector(java.util.Map languageSelectors)
           
 
Method Summary
 IMethod getCalleeTarget(CGNode caller, CallSiteReference site, IClass receiver)
          Given a calling node, a call site and (optionally) a dispatch type, return the target method to be called.
 boolean mightReturnSyntheticMethod(CGNode caller, CallSiteReference site)
          TODO: make this go away? an unnecessary optimization?
 boolean mightReturnSyntheticMethod(MethodReference declaredTarget)
          * TODO: make this go away? an unnecessary optimization?
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CrossLanguageMethodTargetSelector

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

getCalleeTarget

public IMethod getCalleeTarget(CGNode caller,
                               CallSiteReference site,
                               IClass receiver)
Description copied from interface: MethodTargetSelector
Given a calling node, a call site and (optionally) a dispatch type, return the target method to be called.

Specified by:
getCalleeTarget in interface MethodTargetSelector
Parameters:
caller - the GCNode in the call graph containing the call
site - the call site reference of the call site
receiver - the type of the target object or null
Returns:
the method to be called.

mightReturnSyntheticMethod

public boolean mightReturnSyntheticMethod(CGNode caller,
                                          CallSiteReference site)
Description copied from interface: MethodTargetSelector
TODO: make this go away? an unnecessary optimization?

Specified by:
mightReturnSyntheticMethod in interface MethodTargetSelector
Returns:
true if there's a possibility that getCalleeTarget here might return a synthetic method.

mightReturnSyntheticMethod

public boolean mightReturnSyntheticMethod(MethodReference declaredTarget)
Description copied from interface: MethodTargetSelector
* TODO: make this go away? an unnecessary optimization?

Specified by:
mightReturnSyntheticMethod in interface MethodTargetSelector
Returns:
true if there's a possibility that getCalleeTarget here might return a synthetic method.