@Override
      protected void applyFix(@NotNull Project project, @NotNull PsiElement startElement, @NotNull ModPsiUpdater updater) {
        final PsiMethodCallExpression stringFormattedCall = getDirectParentMethod(startElement);
        if (stringFormattedCall == null) return;

        final PsiMethodCallExpression printlnCall = PsiTreeUtil.getParentOfType(stringFormattedCall, PsiMethodCallExpression.class);
        if (printlnCall == null) return;

        final PsiExpression textBlock = stringFormattedCall.getMethodExpression().getQualifierExpression();
        if (textBlock == null) return;

        final PsiExpressionList formattedArgs = stringFormattedCall.getArgumentList();
        final CommentTracker ct = new CommentTracker();
        final PsiElement element = formattedArgs.getExpressionCount() == 0
                                   ? formattedArgs.add(ct.markUnchanged(textBlock))
                                   : formattedArgs.addBefore(ct.markUnchanged(textBlock), formattedArgs.getExpressions()[0]);
        if (myIsPrintlnCall ) {
          appendWithNewlineToken((PsiExpression)element);
        }

        ct.replaceAndRestoreComments(printlnCall.getArgumentList(), formattedArgs);
        ExpressionUtils.bindCallTo(printlnCall, "printf");
      }
@Override
      protected void applyFix(@NotNull Project project, @NotNull PsiElement startElement, @NotNull ModPsiUpdater updater)