@Override
    public void visitClass(@NotNull PsiClass aClass) {
      if (aClass.hasModifierProperty(PsiModifier.PUBLIC) ||
          aClass.hasModifierProperty(PsiModifier.PROTECTED) ||
          aClass.hasModifierProperty(PsiModifier.PRIVATE)) {
        return;
      }
      if (!ClassUtils.isInnerClass(aClass)) {
        return;
      }
      if (ignoreEnums && aClass.isEnum()) {
        return;
      }
      if (ignoreInterfaces && aClass.isInterface()) {
        return;
      }
      final PsiElement parent = aClass.getParent();
      // parent must be class to not warn on
      // the type parameters of classes, anonymous classes and
      // enum constants for example.
      if (!(parent instanceof PsiClass)) {
        return;
      }
      registerClassError(aClass);
    }
@Override
    public void visitClass(@NotNull PsiClass aClass)