@Contract(pure = true)
  private static AnnotationBuilder registerImplementsMethodsFix(@NotNull GrTypeDefinition typeDefinition,
                                                                @NotNull PsiMethod abstractMethod,
                                                                @NotNull AnnotationBuilder builder,
                                                                @InspectionMessage String message,
                                                                TextRange range) {
    if (!OverrideImplementExploreUtil.getMethodsToOverrideImplement(typeDefinition, true).isEmpty()) {
      builder = builder.withFix(QuickFixFactory.getInstance().createImplementMethodsFix(typeDefinition));
    }

    if (!JavaPsiFacade.getInstance(typeDefinition.getProject()).getResolveHelper().isAccessible(abstractMethod, typeDefinition, null)) {
      builder = registerLocalFix(builder, new GrModifierFix(abstractMethod, PsiModifier.PUBLIC, true, true, GrModifierFix.MODIFIER_LIST_OWNER), abstractMethod,
                       message, ProblemHighlightType.ERROR, range);
      builder = registerLocalFix(builder, new GrModifierFix(abstractMethod, PsiModifier.PROTECTED, true, true, GrModifierFix.MODIFIER_LIST_OWNER), abstractMethod,
                       message, ProblemHighlightType.ERROR, range);
    }

    if (!(typeDefinition instanceof GrAnnotationTypeDefinition) && typeDefinition.getModifierList() != null) {
      builder = registerLocalFix(builder, new GrModifierFix(typeDefinition, PsiModifier.ABSTRACT, false, true, GrModifierFix.MODIFIER_LIST_OWNER), typeDefinition,
                       message, ProblemHighlightType.ERROR, range);
    }
    return builder;
  }
@Contract(pure = true)
  private static AnnotationBuilder registerImplementsMethodsFix(@NotNull GrTypeDefinition typeDefinition,
                                                                @NotNull PsiMethod abstractMethod,
                                                                @NotNull AnnotationBuilder builder,
                                                                @InspectionMessage String message,
                                                                TextRange range)