private static boolean isInheritorOrSelf()

in javac-ast-extension/src/org/jetbrains/jps/javac/ast/JavacTreeRefScanner.java [301:325]


  private static boolean isInheritorOrSelf(TypeElement aClass, TypeElement baseClass) {
    if (aClass == baseClass) return true;

    TypeMirror superType = aClass.getSuperclass();
    if (isTypeCorrespondsToElement(superType, baseClass)) {
      return true;
    }

    List<? extends TypeMirror> interfaces = aClass.getInterfaces();
    for (TypeMirror type : interfaces) {
      if (isTypeCorrespondsToElement(type, baseClass)) {
        return true;
      }
    }

    if (isInheritorOrSelf(superType, baseClass)) return true;

    for (TypeMirror type : interfaces) {
      if (isInheritorOrSelf(type, baseClass)) {
        return true;
      }
    }

    return false;
  }