Class ClassHierarchy
- java.lang.Object
-
- com.ibm.wala.shrike.shrikeBT.analysis.ClassHierarchy
-
public final class ClassHierarchy extends java.lang.ObjectThis 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".
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static java.lang.StringfindCommonSupertype(ClassHierarchyProvider hierarchy, java.lang.String t1, java.lang.String t2)Compute the most specific common supertype.static intisSubtypeOf(ClassHierarchyProvider hierarchy, java.lang.String t1, java.lang.String t2)Perform subtype check.
-
-
-
Field Detail
-
NO
public static final int NO
Equals Constants.NO- See Also:
- Constant Field Values
-
YES
public static final int YES
Equals Constants.YES- See Also:
- Constant Field Values
-
MAYBE
public static final int MAYBE
Equals Constants.MAYBE- See Also:
- Constant Field Values
-
-
Method Detail
-
isSubtypeOf
public static int isSubtypeOf(ClassHierarchyProvider hierarchy, java.lang.String t1, java.lang.String t2)
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
public static java.lang.String findCommonSupertype(ClassHierarchyProvider hierarchy, java.lang.String t1, java.lang.String t2)
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
-
-