String (@NotNull PsiElementFactory factory, @NotNull CommentTracker ct, @NotNull PsiReferenceExpression optionalRef, @NotNull PsiExpression trueValue, @NotNull PsiExpression falseValue, PsiType targetType) { if (areElementsEquivalent(trueValue, optionalRef) && OptionalUtil.isOptionalEmptyCall(falseValue)) { trueValue = factory.createExpressionFromText(CommonClassNames.JAVA_UTIL_OPTIONAL + ".of(" + optionalRef.getText() + ".get())", trueValue); } if (areElementsEquivalent(falseValue, optionalRef)) { falseValue = factory.createExpressionFromText(CommonClassNames.JAVA_UTIL_OPTIONAL + ".empty()", falseValue); } String lambdaText = generateOptionalLambda(factory, ct, optionalRef, trueValue); PsiLambdaExpression lambda = (PsiLambdaExpression)factory.createExpressionFromText(lambdaText, trueValue); PsiExpression body = Objects.requireNonNull((PsiExpression)lambda.getBody()); return OptionalRefactoringUtil.generateOptionalUnwrap(optionalRef.getText(), lambda.getParameterList().getParameters()[0], body, ct.markUnchanged(falseValue), targetType, true); }