void (@NotNull PsiExpression returnValue, boolean isCollection) { final PsiElementFactory elementFactory = JavaPsiFacade.getElementFactory(returnValue.getProject()); PsiExpression newExpression; if (isCollection) { String expressionAsText = "(" + returnValue.getText() + ").stream()"; newExpression = elementFactory.createExpressionFromText(expressionAsText, returnValue); ParenthesesUtils.removeParentheses(newExpression, false); } else { final String methodCall = "(" + returnValue.getText() + ")"; final boolean needParentheses = ParenthesesUtils .areParenthesesNeeded((PsiParenthesizedExpression)elementFactory.createExpressionFromText(methodCall, null), false); String expressionAsText = "java.util.stream.StreamSupport.stream(" + (needParentheses ? methodCall : methodCall.substring(1, methodCall.length() - 1)) + ".spliterator(), false)"; newExpression = elementFactory.createExpressionFromText(expressionAsText, returnValue); } returnValue.replace(newExpression); }