private static boolean isTypeInScope(ITypeBinding declaring, ITypeBinding context, boolean includeHierarchy) { ITypeBinding curr= context.getTypeDeclaration(); while (curr != null && curr != declaring) { if (includeHierarchy && isInSuperTypeHierarchy(declaring, curr)) { return true; } curr= curr.getDeclaringClass(); } return curr == declaring; }
private static boolean isTypeInScope(ITypeBinding declaring, ITypeBinding context, boolean includeHierarchy) { ITypeBinding curr= context.getTypeDeclaration(); while (curr != null && curr != declaring) { if (includeHierarchy && isInSuperTypeHierarchy(declaring, curr)) { return true; } curr= curr.getDeclaringClass(); } return curr == declaring; }
private static boolean isInSuperTypeHierarchy(ITypeBinding possibleSuperTypeDecl, ITypeBinding type) { if (type == possibleSuperTypeDecl) { return true; } ITypeBinding superClass= type.getSuperclass(); if (superClass != null) { if (isInSuperTypeHierarchy(possibleSuperTypeDecl, superClass.getTypeDeclaration())) { return true; } } if (possibleSuperTypeDecl.isInterface()) { ITypeBinding[] superInterfaces= type.getInterfaces(); for (int i= 0; i < superInterfaces.length; i++) { if (isInSuperTypeHierarchy(possibleSuperTypeDecl, superInterfaces[i].getTypeDeclaration())) { return true; } } } return false; }
private static boolean isInSuperTypeHierarchy(ITypeBinding possibleSuperTypeDecl, ITypeBinding type) { if (type == possibleSuperTypeDecl) { return true; } ITypeBinding superClass= type.getSuperclass(); if (superClass != null) { if (isInSuperTypeHierarchy(possibleSuperTypeDecl, superClass.getTypeDeclaration())) { return true; } } if (possibleSuperTypeDecl.isInterface()) { ITypeBinding[] superInterfaces= type.getInterfaces(); for (int i= 0; i < superInterfaces.length; i++) { if (isInSuperTypeHierarchy(possibleSuperTypeDecl, superInterfaces[i].getTypeDeclaration())) { return true; } } } return false; }