AccountMapperImpl.java

package dev.ianrobrien.fakebank.accounts;

import dev.ianrobrien.fakebank.model.AccountBalance;
import dev.ianrobrien.fakebank.model.AccountDetails;
import java.text.DecimalFormat;
import javax.annotation.processing.Generated;
import org.springframework.stereotype.Component;

@Generated(
    value = "org.mapstruct.ap.MappingProcessor",
    date = "2025-04-03T04:49:03+0000",
    comments = "version: 1.6.3, compiler: javac, environment: Java 21.0.6 (Eclipse Adoptium)"
)
@Component
public class AccountMapperImpl implements AccountMapper {

    @Override
    public AccountDetails toAccountDetails(Account account) {
        if ( account == null ) {
            return null;
        }

        AccountDetails.AccountDetailsBuilder accountDetails = AccountDetails.builder();

        accountDetails.accountId( account.getId() );
        accountDetails.balance( new DecimalFormat( "#.00" ).format( account.getBalance() ) );
        accountDetails.currency( account.getCurrency() );
        accountDetails.ownerId( accountAccountOwnerId( account ) );

        return accountDetails.build();
    }

    @Override
    public AccountBalance toAccountBalance(Account account) {
        if ( account == null ) {
            return null;
        }

        AccountBalance.AccountBalanceBuilder accountBalance = AccountBalance.builder();

        accountBalance.accountId( account.getId() );
        accountBalance.balance( new DecimalFormat( "#.00" ).format( account.getBalance() ) );
        accountBalance.currency( account.getCurrency() );

        return accountBalance.build();
    }

    private Long accountAccountOwnerId(Account account) {
        AccountOwner accountOwner = account.getAccountOwner();
        if ( accountOwner == null ) {
            return null;
        }
        return accountOwner.getId();
    }
}