void (@NotNull PsiClass aClass) { super.visitClass(aClass); if (aClass.isEnum() || aClass.hasModifierProperty(PsiModifier.FINAL)) { return; } final PsiMethod[] constructors = aClass.getConstructors(); if (constructors.length == 0) { return; } for (PsiMethod constructor : constructors) { if (!constructor.hasModifierProperty(PsiModifier.PRIVATE)) { return; } } final PsiClass inheritor = DirectClassInheritorsSearch.search(aClass, new LocalSearchScope(aClass.getContainingFile())).findFirst(); if (inheritor != null) { return; } registerClassError(aClass, aClass); }