RentalJpaMapperImpl.java
package com.github.jenkaby.bikerental.rental.infrastructure.persistence.mapper;
import com.github.jenkaby.bikerental.rental.domain.model.Rental;
import com.github.jenkaby.bikerental.rental.domain.model.RentalEquipment;
import com.github.jenkaby.bikerental.rental.infrastructure.persistence.entity.RentalEquipmentJpaEntity;
import com.github.jenkaby.bikerental.rental.infrastructure.persistence.entity.RentalJpaEntity;
import com.github.jenkaby.bikerental.shared.mapper.DiscountMapper;
import com.github.jenkaby.bikerental.shared.mapper.DurationMapper;
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 RentalJpaMapperImpl implements RentalJpaMapper {
private final MoneyMapper moneyMapper;
private final DurationMapper durationMapper;
private final RentalEquipmentJpaMapper rentalEquipmentJpaMapper;
private final DiscountMapper discountMapper;
@Autowired
public RentalJpaMapperImpl(MoneyMapper moneyMapper, DurationMapper durationMapper, RentalEquipmentJpaMapper rentalEquipmentJpaMapper, DiscountMapper discountMapper) {
this.moneyMapper = moneyMapper;
this.durationMapper = durationMapper;
this.rentalEquipmentJpaMapper = rentalEquipmentJpaMapper;
this.discountMapper = discountMapper;
}
@Override
public Rental toDomain(RentalJpaEntity entity) {
if ( entity == null ) {
return null;
}
Rental.RentalBuilder rental = Rental.builder();
rental.plannedDuration( durationMapper.toDuration( entity.getPlannedDurationMinutes() ) );
rental.actualDuration( durationMapper.toDuration( entity.getActualDurationMinutes() ) );
rental.equipments( rentalEquipmentJpaEntityListToRentalEquipmentList( entity.getRentalEquipments() ) );
rental.id( entity.getId() );
rental.customerId( entity.getCustomerId() );
rental.status( entity.getStatus() );
rental.startedAt( entity.getStartedAt() );
rental.expectedReturnAt( entity.getExpectedReturnAt() );
rental.actualReturnAt( entity.getActualReturnAt() );
rental.estimatedCost( moneyMapper.toMoney( entity.getEstimatedCost() ) );
rental.finalCost( moneyMapper.toMoney( entity.getFinalCost() ) );
rental.specialTariffId( entity.getSpecialTariffId() );
rental.specialPrice( moneyMapper.toMoney( entity.getSpecialPrice() ) );
rental.discountPercent( discountMapper.toDiscount( entity.getDiscountPercent() ) );
rental.createdAt( entity.getCreatedAt() );
rental.updatedAt( entity.getUpdatedAt() );
return rental.build();
}
@Override
public RentalJpaEntity toEntity(Rental rental) {
if ( rental == null ) {
return null;
}
RentalJpaEntity.RentalJpaEntityBuilder rentalJpaEntity = RentalJpaEntity.builder();
rentalJpaEntity.actualDurationMinutes( durationMapper.toMinutes( rental.getActualDuration() ) );
rentalJpaEntity.plannedDurationMinutes( durationMapper.toMinutes( rental.getPlannedDuration() ) );
rentalJpaEntity.rentalEquipments( rentalEquipmentListToRentalEquipmentJpaEntityList( rental.getEquipments() ) );
rentalJpaEntity.id( rental.getId() );
rentalJpaEntity.customerId( rental.getCustomerId() );
rentalJpaEntity.status( rental.getStatus() );
rentalJpaEntity.startedAt( rental.getStartedAt() );
rentalJpaEntity.expectedReturnAt( rental.getExpectedReturnAt() );
rentalJpaEntity.actualReturnAt( rental.getActualReturnAt() );
rentalJpaEntity.specialTariffId( rental.getSpecialTariffId() );
rentalJpaEntity.specialPrice( moneyMapper.toBigDecimal( rental.getSpecialPrice() ) );
if ( rental.getDiscountPercent() != null ) {
rentalJpaEntity.discountPercent( discountMapper.toBigDecimal( rental.getDiscountPercent() ).intValue() );
}
rentalJpaEntity.createdAt( rental.getCreatedAt() );
rentalJpaEntity.updatedAt( rental.getUpdatedAt() );
RentalJpaEntity rentalJpaEntityResult = rentalJpaEntity.build();
setRelationships( rentalJpaEntityResult );
return rentalJpaEntityResult;
}
protected List<RentalEquipment> rentalEquipmentJpaEntityListToRentalEquipmentList(List<RentalEquipmentJpaEntity> list) {
if ( list == null ) {
return null;
}
List<RentalEquipment> list1 = new ArrayList<RentalEquipment>( list.size() );
for ( RentalEquipmentJpaEntity rentalEquipmentJpaEntity : list ) {
list1.add( rentalEquipmentJpaMapper.toDomain( rentalEquipmentJpaEntity ) );
}
return list1;
}
protected List<RentalEquipmentJpaEntity> rentalEquipmentListToRentalEquipmentJpaEntityList(List<RentalEquipment> list) {
if ( list == null ) {
return null;
}
List<RentalEquipmentJpaEntity> list1 = new ArrayList<RentalEquipmentJpaEntity>( list.size() );
for ( RentalEquipment rentalEquipment : list ) {
list1.add( rentalEquipmentJpaMapper.toEntity( rentalEquipment ) );
}
return list1;
}
}