private void checkClass(PsiClass aClass, ProblemsHolder delegate, boolean isOnTheFly) {
    if (aClass instanceof PsiAnonymousClass || aClass instanceof PsiSyntheticClass || aClass instanceof PsiTypeParameter) {
      return;
    }
    if (IGNORE_DEPRECATED_ELEMENTS && aClass.isDeprecated()) {
      return;
    }
    Options options = ClassUtil.isTopLevelClass(aClass) ? TOP_LEVEL_CLASS_SETTINGS : INNER_CLASS_SETTINGS;
    if (!isJavadocRequired(options, aClass)) return;

    PsiDocComment docComment = aClass.getDocComment();
    if (docComment != null) {
      PsiDocTag[] tags = docComment.getTags();

      checkRequiredTags(tags, options, docComment.getFirstChild(), delegate);

      if (options.isTagRequired("param")) {
        checkMissingTypeParamTags(aClass, tags, docComment.getFirstChild(), delegate);
      }
    }
    else {
      PsiElement toHighlight = notNull(aClass.getNameIdentifier(), aClass);
      reportMissingJavadoc(toHighlight, delegate, isOnTheFly);
    }
  }
private void checkClass(PsiClass aClass, ProblemsHolder delegate, boolean isOnTheFly)