We have code like this:
if (defaultCategoryEntry.isPresent())
{
defaultCategoryEntry.get().setValue(defaultCategoryEntry.get().getValue() + amountAdjustment);
paymentMember.setAmount(paymentMember.getFeederBuy().getAmount());
}
else
{
addWarning(message().masterFeederAmountDoesnotMatch("Feeder"));
}
Can we rewrite it in functional style? The only way we found is:
defaultCategoryEntry.map(e ->
{
e.setValue(e.getValue() + amountAdjustment);
paymentMember.setAmount(paymentMember.getFeederBuy().getAmount());
return e;
).orElseGet($ ->
{
addWarning(message().masterFeederAmountDoesnotMatch("Feeder"));
return null;
});
But this is very ugly. Are there any better ways?