Package com.ibm.wala.ipa.summaries
Class MethodBypass
- java.lang.Object
-
- com.ibm.wala.ipa.summaries.MethodBypass
-
public class MethodBypass extends java.lang.Object
"Non-standard" bypass rules to use during call graph construction.Normally, the method bypass rules replace the IMethod that is resolved by other means, via the getBypass() method. However, the bypass rules can be invoked even before resolving the target of a call, by checking the intercept rules.
-
-
Constructor Summary
Constructors Constructor Description MethodBypass(java.util.Map<java.lang.Object,MethodSummary> methodSummaries, java.util.Set<TypeReference> allocatable, IClassHierarchy cha)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description SyntheticMethod
getBypass(IMethod target)
Method getBypass.protected IClassHierarchy
getClassHierarchy()
boolean
isAllocatable(IClass klass)
Are we allowed to allocate (for analysis purposes) an instance of a given type? By default, the answer is yes iff T is not abstract.protected MethodReference
resolveTarget(MethodReference target)
-
-
-
Constructor Detail
-
MethodBypass
public MethodBypass(java.util.Map<java.lang.Object,MethodSummary> methodSummaries, java.util.Set<TypeReference> allocatable, IClassHierarchy cha)
-
-
Method Detail
-
getBypass
public SyntheticMethod getBypass(IMethod target)
Method getBypass. check to see if a call to the receiver 'target' should be redirected to a different receiver.- Throws:
java.lang.IllegalArgumentException
- if target is null
-
getClassHierarchy
protected IClassHierarchy getClassHierarchy()
-
resolveTarget
protected MethodReference resolveTarget(MethodReference target)
-
isAllocatable
public boolean isAllocatable(IClass klass)
Are we allowed to allocate (for analysis purposes) an instance of a given type? By default, the answer is yes iff T is not abstract. However, subclasses and summaries can override this to allow "special" abstract classes to be allocatable as well.- Throws:
java.lang.IllegalArgumentException
- if klass is null
-
-