void (@NotNull PsiClass aClass) { if (aClass.isInterface() || aClass.isEnum() || aClass.isAnnotationType() || aClass.getContainingClass() != null) { return; } if (aClass instanceof PsiTypeParameter || aClass instanceof PsiAnonymousClass) { return; } if (ignoredClasses.stream().anyMatch(ignoredClass -> InheritanceUtil.isInheritor(aClass, ignoredClass))) { return; } if (AnnotationUtil.isAnnotated(aClass, annotations, AnnotationUtil.CHECK_EXTERNAL | AnnotationUtil.CHECK_HIERARCHY)) { return; } final PsiField[] fields = ignoreSuperLoggers ? aClass.getAllFields() : aClass.getFields(); if (Stream.of(fields).anyMatch(field -> isLogger(field) && PsiUtil.isAccessible(field, aClass, aClass))) { return; } registerClassError(aClass); }