package ufrn.imd.service.impl; import lombok.RequiredArgsConstructor; import lombok.extern.java.Log; import ufrn.imd.domain.Account; import ufrn.imd.domain.Client; import ufrn.imd.repository.Repository; import ufrn.imd.service.Service; import java.rmi.RemoteException; import java.util.Optional; @Log @RequiredArgsConstructor public class DepositServiceImpl implements Service { private final Repository<Client> repository; public void deposit(Double value, Optional<Client> clientOptional) throws RemoteException, RuntimeException { Client user = clientOptional .orElseThrow(() -> new RuntimeException("Null User!")); Client client = repository.find(user.getId()) .orElseThrow(() -> new RuntimeException("Invalid user!")); Account account = client.getAccount(); account.setBalance(account.getBalance() + value); log.info(String.format("Deposit concluded!")); log.info(String.format("Total: %.2f", account.getBalance())); } }