Reputation: 4306
I have a method
public Single<SignatureOrder> confirmPayment(PaymentEntity entity, Identity identity, ConfirmationRequest confirmationRequest) {
return chooseClient(entity)
.confirmPayment(identity, entity,confirmationRequest);
}
I need to do a little modification, in case of confirmationRequest
is null
then call confirmPayment(identity, entity);
How can i say something like
Optional.ofNullable(confirmationRequest)
then chooseClient(entity)
then ifPresent
call confirmPayment(identity, entity,confirmationRequest);
ifNotPresent
call confirmPayment(identity, entity);
Signatures of confirmPayment
public Single<SignatureOrder> confirmPayment(Identity identity, PaymentEntity entity)
public Single<SignatureOrder> confirmPayment(Identity identity, PaymentEntity entity, ConfirmationRequest confirmationRequest)
Upvotes: 1
Views: 66
Reputation: 2242
public Single<SignatureOrder> confirmPayment(PaymentEntity entity, Identity identity, ConfirmationRequest confirmationRequest) {
return Optional.ofNullable(confirmationRequest)
.map(cr -> chooseClient(entity).confirmPayment(identity, entity, cr)
.orElseGet(() -> chooseClient(entity).confirmPayment(identity, entity);
}
mapping on null returns empty, by using orElseGet if it maps to empty it would call this lambda
Upvotes: 3
Reputation: 31878
You can do it as :
public Single<SignatureOrder> confirmPayment(PaymentEntity entity, Identity identity, ConfirmationRequest confirmationRequest) {
return confirmationRequest != null ?
chooseClient(entity).confirmPayment(identity, entity, confirmationRequest) :
chooseClient(entity).confirmPayment(identity, entity);
}
Upvotes: 3