Class 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 Detail

      • isSubtypeOf

        public static int isSubtypeOf​(ClassHierarchyProvider hierarchy,
                                      String t1,
                                      String t2)
        Perform subtype check.
        Parameters:
        hierarchy - the hierarchy information to use for the decision
        t1 - a type in JVM format
        t2 - 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 decision
        t1 - a type in JVM format
        t2 - 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