ODP-AppVehOwnServer/services/src/main/java/eu/csc/ODPAppVehOwnServer/mapper/DtoMapper.java

140 lines
4.2 KiB
Java

package eu.csc.ODPAppVehOwnServer.mapper;
import eu.csc.ODPAppVehOwnServer.models.VehicleBrandDto;
import eu.csc.ODPAppVehOwnServer.models.data.CustomerProfileDto;
import eu.csc.ODPAppVehOwnServer.models.data.DeviceDto;
import eu.csc.ODPAppVehOwnServer.models.data.LanguageDto;
import eu.csc.ODPAppVehOwnServer.models.data.PropulsionTypeDto;
import eu.csc.ODPAppVehOwnServer.models.regist.CustomerDeviceDto;
import eu.csc.ODPAppVehOwnServer.models.regist.CustomerVehicleDto;
import eu.csc.ODPAppVehOwnServer.persistence.entity.UserEntity;
import eu.csc.ODPAppVehOwnServer.persistence.entity.customer.CustomerDeviceEntity;
import eu.csc.ODPAppVehOwnServer.persistence.entity.customer.CustomerVehicleEntity;
import eu.csc.ODPAppVehOwnServer.persistence.entity.data.DeviceEntity;
import eu.csc.ODPAppVehOwnServer.persistence.entity.data.LanguageEntity;
import eu.csc.ODPAppVehOwnServer.persistence.entity.data.PropulsionTypeEntity;
import eu.csc.ODPAppVehOwnServer.persistence.entity.data.VehicleBrandEntity;
import lombok.var;
import org.mapstruct.Mapping;
import java.util.List;
import java.util.stream.Collectors;
public class DtoMapper {
private static DtoMapper dtoMapper;
public static DtoMapper getInstance() {
return dtoMapper == null ? (dtoMapper = new DtoMapper()) : dtoMapper;
}
private DtoMapper() {
}
public CustomerVehicleDto mapCustomerVehicleToDto(CustomerVehicleEntity item) {
throw new UnsupportedOperationException();
}
public CustomerDeviceDto mapCustomerDeviceToDto(CustomerDeviceEntity item){
var result = new CustomerDeviceDto();
result.setSerialNumber(item.getSerialNumber());
result.setName(item.getName());
result.setDeviceNumber(item.getDeviceNumber());
return result;
}
public List<PropulsionTypeDto> mapPropulsionTypesToDto(List<PropulsionTypeEntity> items){
return items.stream()
.map(this::mapPropulsionTypeToDto)
.collect(Collectors.toList());
}
private PropulsionTypeDto mapPropulsionTypeToDto(PropulsionTypeEntity item) {
var result = new PropulsionTypeDto();
result.setName(item.getName());
result.setPropulsionId(item.getTypeId());
result.setId(item.getId());
return result;
}
public List<CustomerDeviceDto> mapCustomerDevicesToDto(List<CustomerDeviceEntity> items) {
return items.stream()
.map(this::mapCustomerDeviceToDto)
.collect(Collectors.toList());
}
public List<LanguageDto> mapLanguagesToDto(List<LanguageEntity> items) {
return items.stream()
.map(this::mapLanguageToDto)
.collect(Collectors.toList());
}
public LanguageDto mapLanguageToDto(LanguageEntity item){
var result = new LanguageDto();
result.setDefault(item.isStandard());
result.setName(item.getName());
result.setLocale(item.getLocale());
return result;
}
public DeviceEntity mapDeviceFromDto(DeviceDto item) {
DeviceEntity result = new DeviceEntity();
result.setDevicenumber(item.getDeviceNumber());
result.setName(item.getName());
result.setManufacturer(item.getManufacturer());
result.setId(item.getId());
return result;
}
public VehicleBrandEntity mapVehicleBrandFromDto(VehicleBrandDto item) {
var result = new VehicleBrandEntity();
result.setBrandId(item.getBrandId());
result.setName(item.getName());
return result;
}
public VehicleBrandDto mapVehicleBrandToDto(VehicleBrandEntity item) {
var result = new VehicleBrandDto();
result.setBrandId(item.getBrandId());
result.setName(item.getName());
result.setId(item.getId());
result.setImageName(item.getImageName());
return result;
}
public CustomerProfileDto mapCustomerProfileToDto(UserEntity user) {
CustomerProfileDto result = new CustomerProfileDto();
result.setId(user.getId());
result.setEmail(user.getEmail());
result.setFirstname(user.getFirstname());
result.setLastname(user.getLastname());
result.setStreet(user.getStreet());
result.setPhone(user.getPhone());
return result;
}
}