Class ClassHierarchy
java.lang.Object
com.ibm.wala.shrike.shrikeBT.analysis.ClassHierarchy
This class takes the raw information from a ClassHierarchyProvider and computes type operations
(subtype check, type union). All operations are static.
Because ClassHierarchyProvider sometimes only provides partial information, these routines sometimes answer "don't know".
-
Field Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic String
findCommonSupertype
(ClassHierarchyProvider hierarchy, String t1, String t2) Compute the most specific common supertype.static int
isSubtypeOf
(ClassHierarchyProvider hierarchy, String t1, String t2) Perform subtype check.
-
Field Details
-
NO
public static final int NOEquals Constants.NO- See Also:
-
YES
public static final int YESEquals Constants.YES- See Also:
-
MAYBE
public static final int MAYBEEquals Constants.MAYBE- See Also:
-
-
Method Details
-
isSubtypeOf
Perform subtype check.- Parameters:
hierarchy
- the hierarchy information to use for the decisiont1
- a type in JVM formatt2
- a type in JVM format- Returns:
- whether t1 is a subtype of t2 (YES, NO, MAYBE)
-
findCommonSupertype
Compute the most specific common supertype.- Parameters:
hierarchy
- the hierarchy information to use for the decisiont1
- a type in JVM formatt2
- a type in JVM format- Returns:
- the most specific common supertype of t1 and t2, or TYPE_unknown if it cannot be determined or cannot be represented as a Java type, or null if there is no common supertype
-