Class MethodBypass
java.lang.Object
com.ibm.wala.ipa.summaries.MethodBypass
"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
ConstructorDescriptionMethodBypass
(Map<Object, MethodSummary> methodSummaries, Set<TypeReference> allocatable, IClassHierarchy cha) -
Method Summary
Modifier and TypeMethodDescriptionMethod getBypass.protected IClassHierarchy
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 Details
-
MethodBypass
public MethodBypass(Map<Object, MethodSummary> methodSummaries, Set<TypeReference> allocatable, IClassHierarchy cha)
-
-
Method Details
-
getBypass
Method getBypass. check to see if a call to the receiver 'target' should be redirected to a different receiver.- Throws:
IllegalArgumentException
- if target is null
-
getClassHierarchy
-
resolveTarget
-
isAllocatable
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:
IllegalArgumentException
- if klass is null
-