TransactionJpaMapperImpl.java
package com.github.jenkaby.bikerental.finance.infrastructure.persistence.mapper;
import com.github.jenkaby.bikerental.finance.domain.model.Transaction;
import com.github.jenkaby.bikerental.finance.domain.model.TransactionRecord;
import com.github.jenkaby.bikerental.finance.infrastructure.persistence.entity.TransactionJpaEntity;
import com.github.jenkaby.bikerental.finance.infrastructure.persistence.entity.TransactionRecordJpaEntity;
import com.github.jenkaby.bikerental.shared.mapper.IdempotencyKeyMapper;
import com.github.jenkaby.bikerental.shared.mapper.MoneyMapper;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.processing.Generated;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Generated(
value = "org.mapstruct.ap.MappingProcessor",
comments = "version: 1.6.3, compiler: IncrementalProcessingEnvironment from gradle-language-java-9.4.1.jar, environment: Java 21.0.10 (Amazon.com Inc.)"
)
@Component
public class TransactionJpaMapperImpl implements TransactionJpaMapper {
private final MoneyMapper moneyMapper;
private final IdempotencyKeyMapper idempotencyKeyMapper;
private final TransactionRecordMapper transactionRecordMapper;
@Autowired
public TransactionJpaMapperImpl(MoneyMapper moneyMapper, IdempotencyKeyMapper idempotencyKeyMapper, TransactionRecordMapper transactionRecordMapper) {
this.moneyMapper = moneyMapper;
this.idempotencyKeyMapper = idempotencyKeyMapper;
this.transactionRecordMapper = transactionRecordMapper;
}
@Override
public Transaction toDomain(TransactionJpaEntity entity) {
if ( entity == null ) {
return null;
}
Transaction.TransactionBuilder transaction = Transaction.builder();
transaction.records( transactionRecordJpaEntityListToTransactionRecordList( entity.getRecords() ) );
transaction.type( entity.getTransactionType() );
transaction.id( entity.getId() );
transaction.paymentMethod( entity.getPaymentMethod() );
transaction.amount( moneyMapper.toMoney( entity.getAmount() ) );
transaction.customerId( entity.getCustomerId() );
transaction.operatorId( entity.getOperatorId() );
transaction.sourceType( entity.getSourceType() );
transaction.sourceId( entity.getSourceId() );
transaction.recordedAt( entity.getRecordedAt() );
transaction.idempotencyKey( idempotencyKeyMapper.toIdempotencyKey( entity.getIdempotencyKey() ) );
transaction.reason( entity.getReason() );
return transaction.build();
}
@Override
public TransactionJpaEntity toEntity(Transaction domain) {
if ( domain == null ) {
return null;
}
TransactionJpaEntity.TransactionJpaEntityBuilder transactionJpaEntity = TransactionJpaEntity.builder();
transactionJpaEntity.records( transactionRecordListToTransactionRecordJpaEntityList( domain.getRecords() ) );
transactionJpaEntity.transactionType( domain.getType() );
transactionJpaEntity.id( domain.getId() );
transactionJpaEntity.paymentMethod( domain.getPaymentMethod() );
transactionJpaEntity.amount( moneyMapper.toBigDecimal( domain.getAmount() ) );
transactionJpaEntity.customerId( domain.getCustomerId() );
transactionJpaEntity.operatorId( domain.getOperatorId() );
transactionJpaEntity.sourceType( domain.getSourceType() );
transactionJpaEntity.sourceId( domain.getSourceId() );
transactionJpaEntity.recordedAt( domain.getRecordedAt() );
transactionJpaEntity.idempotencyKey( idempotencyKeyMapper.toUuid( domain.getIdempotencyKey() ) );
transactionJpaEntity.reason( domain.getReason() );
TransactionJpaEntity transactionJpaEntityResult = transactionJpaEntity.build();
setTransactionRelationships( transactionJpaEntityResult );
return transactionJpaEntityResult;
}
protected List<TransactionRecord> transactionRecordJpaEntityListToTransactionRecordList(List<TransactionRecordJpaEntity> list) {
if ( list == null ) {
return null;
}
List<TransactionRecord> list1 = new ArrayList<TransactionRecord>( list.size() );
for ( TransactionRecordJpaEntity transactionRecordJpaEntity : list ) {
list1.add( transactionRecordMapper.toDomain( transactionRecordJpaEntity ) );
}
return list1;
}
protected List<TransactionRecordJpaEntity> transactionRecordListToTransactionRecordJpaEntityList(List<TransactionRecord> list) {
if ( list == null ) {
return null;
}
List<TransactionRecordJpaEntity> list1 = new ArrayList<TransactionRecordJpaEntity>( list.size() );
for ( TransactionRecord transactionRecord : list ) {
list1.add( transactionRecordMapper.toEntity( transactionRecord ) );
}
return list1;
}
}