Package com.ibm.wala.shrikeBT.analysis
Class ClassHierarchy
- java.lang.Object
-
- com.ibm.wala.shrikeBT.analysis.ClassHierarchy
-
public final class ClassHierarchy extends Object
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".
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static 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 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, String t1, 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 String findCommonSupertype(ClassHierarchyProvider hierarchy, String t1, 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
-
-