@Override
  protected boolean validate(@NotNull PsiAnnotation psiAnnotation, @NotNull PsiClass psiClass, @NotNull ProblemSink problemSink) {
    boolean result;

    result = super.validate(psiAnnotation, psiClass, problemSink);

    if (result && !isForceConstructor(psiAnnotation)) {
      final String staticConstructorName = getStaticConstructorName(psiAnnotation);
      result = validateIsConstructorNotDefined(psiClass, staticConstructorName, Collections.emptyList(), problemSink);

      if (problemSink.deepValidation()) {
        final Collection<PsiField> requiredFields = getRequiredFields(psiClass, true);
        if (!requiredFields.isEmpty()) {
          problemSink.addErrorMessage("inspection.message.constructor.noargs.needs.to.be.forced")
            .withLocalQuickFixes(() -> PsiQuickFixFactory.createChangeAnnotationParameterFix(psiAnnotation, "force", "true"));
        }
      }
    }

    return result;
  }
@Override
  protected boolean validate(@NotNull PsiAnnotation psiAnnotation, @NotNull PsiClass psiClass, @NotNull ProblemSink problemSink)