private static @NotNull String addConversionToStringIfNecessary(PsiElement context, String concatText) {
        concatText = concatText.trim();
        PsiElementFactory factory = JavaPsiFacade.getElementFactory(context.getProject());
        PsiExpression expression = factory.createExpressionFromText(concatText, context);
        PsiPolyadicExpression concat = tryCast(expression, PsiPolyadicExpression.class);
        if (concat != null && concat.getOperationTokenType().equals(JavaTokenType.PLUS)) {
          PsiExpression[] operands = concat.getOperands();
          if (operands[0] != null && !TypeUtils.isJavaLangString(operands[0].getType()) && !TypeUtils.isJavaLangString(operands[1].getType())) {
            operands[0].replace(factory.createExpressionFromText(convertToString(operands[0]), context));
            return concat.getText();
          }
        }
        else if (!TypeUtils.isJavaLangString(expression.getType())) {
          return convertToString(expression);
        }
        return concatText;
      }
private static @NotNull String addConversionToStringIfNecessary(PsiElement context, String concatText)