Melad Basil
Eu tenho esse código
service.confirm(identity, id)
.map(confirmationResponse -> InternalToExternalResponse.mapToExternal(confirmationResponse))
.map(externalResponse->uriBuilder.buildAuthorizeUri(externalResponse))
.lift(auditOperatorFactory.logRequestURI(identity, AuditCategory.BOOKKEEP));
Agora eu preciso para estender a uriBuilder.buildAuthorizeUri(externalResponse)
tomar confirmationResponse
como um segundo parâmetro
Posso usar o confirmationResponse
da primeira expressão lambda dentro da segunda expressão lambda? o código deve ser igual
service.confirm(identity, id)
.map(confirmationResponse -> InternalToExternalResponse.mapToExternal(confirmationResponse))
.map(externalResponse-**>uriBuilder.buildAuthorizeUri(externalResponse,confirmationResponse ))**
.lift(auditOperatorFactory.logRequestURI(identity, AuditCategory.BOOKKEEP));
Pessoas Ahmeti:
Você pode passar o confirmationResponse
para o próximo lambda como o resultado de um presente. Desde que você precisa tanto, você pode criar um objeto personalizado ou utilização Pair
como esta:
service.confirm(identity, id)
.map(confirmationResponse -> new Pair<ConfirmationResponse, ExternalResponse>(confirmationResponse, InternalToExternalResponse.mapToExternal(confirmationResponse)))
.map(result ->u riBuilder.buildAuthorizeUri(result.second, result.first ))
.lift(auditOperatorFactory.logRequestURI(identity, AuditCategory.BOOKKEEP));