boolean (PsiElement element) { PsiFile parentFile; if (element instanceof PsiClassOwner) { final PsiClass[] classes = ((PsiClassOwner)element).getClasses(); if (classes.length == 0 && !PackageUtil.isPackageInfoFile(element)) return true; for (PsiClass aClass : classes) { if (aClass instanceof PsiSyntheticClass) return true; } parentFile = (PsiFile)element; } else { if (element instanceof PsiSyntheticClass) return true; if (!(element instanceof PsiClass)) return true; if (element instanceof PsiAnonymousClass) return true; if (((PsiClass)element).getContainingClass() != null) return true; parentFile = element.getContainingFile(); } return parentFile instanceof PsiJavaFile && JavaProjectRootsUtil.isOutsideJavaSourceRoot(parentFile); }