protected boolean checkClass(@NotNull HeaderValuePart valuePart, @NotNull PsiClass aClass, @NotNull AnnotationHolder holder) {
    String header = ((Header)valuePart.getParent()).getName();

    if (MAIN_CLASS.equals(header) && !PsiMethodUtil.hasMainMethod(aClass)) {
      holder.newAnnotation(HighlightSeverity.ERROR, ManifestBundle.message("header.main.class.invalid")).range(valuePart.getHighlightingRange()).create();
      return true;
    }

    if (PREMAIN_CLASS.equals(header) && !hasInstrumenterMethod(aClass, "premain")) {
      holder.newAnnotation(HighlightSeverity.ERROR, ManifestBundle.message("header.pre-main.class.invalid")).range(valuePart.getHighlightingRange()).create();
      return true;
    }

    if ((AGENT_CLASS.equals(header) || LAUNCHER_AGENT_CLASS.equals(header)) && !hasInstrumenterMethod(aClass, "agentmain")) {
      holder.newAnnotation(HighlightSeverity.ERROR, ManifestBundle.message("header.agent.class.invalid")).range(valuePart.getHighlightingRange()).create();
      return true;
    }

    return false;
  }
protected boolean checkClass(@NotNull HeaderValuePart valuePart, @NotNull PsiClass aClass, @NotNull AnnotationHolder holder)