@Nullable
  private static PsiMethod findOnlyOneNotChainConstructor(@NotNull PsiClass contextClass) {
    List<PsiMethod> notChainConstructors = new ArrayList<>();
    for (PsiMethod constructor : contextClass.getConstructors()) {
      PsiMethodCallExpression callInConstructor = JavaPsiConstructorUtil.findThisOrSuperCallInConstructor(constructor);
      if (JavaPsiConstructorUtil.isChainedConstructorCall(callInConstructor)) {
        continue;
      }
      notChainConstructors.add(constructor);
    }
    if (notChainConstructors.size() != 1) {
      return null;
    }
    PsiMethod targetConstructor = notChainConstructors.get(0);
    PsiCodeBlock constructorBody = targetConstructor.getBody();

    if (constructorBody == null || constructorBody.getStatements().length == 0) {
      return null;
    }
    if (JavaPsiConstructorUtil.findThisOrSuperCallInConstructor(targetConstructor) != null) {
      return null;
    }
    return targetConstructor;
  }
@Nullable
  private static PsiMethod findOnlyOneNotChainConstructor(@NotNull PsiClass contextClass)