boolean (PsiClass aClass, boolean mustBePublic, boolean mustNotBeAbstract) { if (aClass instanceof PsiAnonymousClass) return false; if (mustBePublic && !aClass.hasModifierProperty(PsiModifier.PUBLIC)) { if (mustNotBeAbstract || !aClass.hasModifierProperty(PsiModifier.ABSTRACT)) { return false; } } if (aClass.hasModifierProperty(PsiModifier.PRIVATE)) return false; if (mustNotBeAbstract && aClass.hasModifierProperty(PsiModifier.ABSTRACT)) return false; return aClass.getContainingClass() == null || aClass.hasModifierProperty(PsiModifier.STATIC) || aClass.hasModifierProperty(PsiModifier.ABSTRACT); }