Skip to content
Snippets Groups Projects
Commit 8abeb952 authored by Martin Slovík's avatar Martin Slovík
Browse files

Introducing new Mapper

parent 7d85d68b
No related branches found
No related tags found
No related merge requests found
...@@ -26,5 +26,5 @@ public interface AirplaneFacade<K> { ...@@ -26,5 +26,5 @@ public interface AirplaneFacade<K> {
void deleteAirplaneTypeAssignment(Long airplaneId, Long airplaneTypeId); void deleteAirplaneTypeAssignment(Long airplaneId, Long airplaneTypeId);
AirplaneDto update(Long id, NewAirplaneDtoRequest newAirplaneDto); AirplaneDto update(Long id, NewAirplaneDtoRequest newAirplaneDtoRequest);
} }
package cz.muni.fi.pa165.core.facade.airplane; package cz.muni.fi.pa165.core.facade.airplane;
import cz.muni.fi.pa165.core.data.domain.Airplane;
import cz.muni.fi.pa165.core.exceptions.ResourceNotFoundException; import cz.muni.fi.pa165.core.exceptions.ResourceNotFoundException;
import cz.muni.fi.pa165.core.mapper.AirplaneMapper;
import cz.muni.fi.pa165.core.model.AirplaneDto; import cz.muni.fi.pa165.core.model.AirplaneDto;
import cz.muni.fi.pa165.core.model.AirplaneTypeDto;
import cz.muni.fi.pa165.core.model.NewAirplaneDtoRequest; import cz.muni.fi.pa165.core.model.NewAirplaneDtoRequest;
import cz.muni.fi.pa165.core.service.airplane.AirplaneService; import cz.muni.fi.pa165.core.service.airplane.AirplaneService;
import cz.muni.fi.pa165.core.service.airplanetype.AirplaneTypeService; import cz.muni.fi.pa165.core.service.airplanetype.AirplaneTypeService;
import org.modelmapper.ModelMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List; import java.util.List;
...@@ -19,33 +16,35 @@ public class AirplaneFacadeImpl implements AirplaneFacade<Long> { ...@@ -19,33 +16,35 @@ public class AirplaneFacadeImpl implements AirplaneFacade<Long> {
private final AirplaneService airplaneService; private final AirplaneService airplaneService;
private final AirplaneTypeService airplaneTypeService; private final AirplaneTypeService airplaneTypeService;
private final ModelMapper modelMapper; private final AirplaneMapper airplaneMapper;
@Autowired public AirplaneFacadeImpl(AirplaneService airplaneService, AirplaneTypeService airplaneTypeService,
public AirplaneFacadeImpl(AirplaneService airplaneService, AirplaneTypeService airplaneTypeService, ModelMapper modelMapper) { AirplaneMapper airplaneMapper) {
this.airplaneService = airplaneService; this.airplaneService = airplaneService;
this.airplaneTypeService = airplaneTypeService; this.airplaneTypeService = airplaneTypeService;
this.modelMapper = modelMapper; this.airplaneMapper = airplaneMapper;
} }
@Override @Override
public AirplaneDto save(NewAirplaneDtoRequest newAirplaneDtoRequest) { public AirplaneDto save(NewAirplaneDtoRequest newAirplaneDtoRequest) {
var entityToSave = modelMapper.map(newAirplaneDtoRequest, Airplane.class); var entityToSave = airplaneMapper.toEntityFromNewRequest(newAirplaneDtoRequest);
var savedEntity = airplaneService.save(entityToSave); var savedEntity = airplaneService.save(entityToSave);
return modelMapper.map(savedEntity, AirplaneDto.class); return airplaneMapper.toDto(savedEntity);
} }
@Override @Override
public Optional<AirplaneDto> findById(Long id) { public Optional<AirplaneDto> findById(Long id) {
var foundEntity = airplaneService.findById(id); var foundEntity = airplaneService.findById(id)
return foundEntity.map(e -> modelMapper.map(e, AirplaneDto.class)); .orElseThrow(() -> new ResourceNotFoundException("Not Found."));
return Optional.ofNullable(airplaneMapper.toDto(foundEntity));
} }
@Override @Override
public List<AirplaneDto> findAll() { public List<AirplaneDto> findAll() {
var entities = airplaneService.findAll(); var entities = airplaneService.findAll();
return entities.stream() return entities.stream()
.map(entity -> modelMapper.map(entity, AirplaneDto.class)) .map(airplaneMapper::toDto)
.toList(); .toList();
} }
...@@ -74,7 +73,7 @@ public class AirplaneFacadeImpl implements AirplaneFacade<Long> { ...@@ -74,7 +73,7 @@ public class AirplaneFacadeImpl implements AirplaneFacade<Long> {
airplaneEntity.setType(airplaneTypeEntity); airplaneEntity.setType(airplaneTypeEntity);
airplaneService.save(airplaneEntity); airplaneService.save(airplaneEntity);
return mapToDtoWithMember(airplaneEntity); return airplaneMapper.toDto(airplaneEntity);
} }
@Override @Override
...@@ -89,17 +88,10 @@ public class AirplaneFacadeImpl implements AirplaneFacade<Long> { ...@@ -89,17 +88,10 @@ public class AirplaneFacadeImpl implements AirplaneFacade<Long> {
} }
@Override @Override
public AirplaneDto update(Long id, NewAirplaneDtoRequest newAirplaneDto) { public AirplaneDto update(Long id, NewAirplaneDtoRequest newAirplaneDtoRequest) {
var newAirplaneEntity = modelMapper.map(newAirplaneDto, Airplane.class); var newAirplaneEntity = airplaneMapper.toEntityFromNewRequest(newAirplaneDtoRequest);
return modelMapper.map(airplaneService.update(id, newAirplaneEntity), AirplaneDto.class); return airplaneMapper.toDto(newAirplaneEntity);
} }
private AirplaneDto mapToDtoWithMember(Airplane airplane) {
var airplaneTypeDto = modelMapper.map(airplane.getType(), AirplaneTypeDto.class);
var airplaneDto = modelMapper.map(airplane, AirplaneDto.class);
airplaneDto.setType(airplaneTypeDto);
return airplaneDto;
}
} }
...@@ -22,5 +22,5 @@ public interface AirplaneTypeFacade<K> { ...@@ -22,5 +22,5 @@ public interface AirplaneTypeFacade<K> {
void deleteAll(); void deleteAll();
AirplaneTypeDto update(K id, NewAirplaneTypeDtoRequest newAirplaneTypeDto); AirplaneTypeDto update(K id, NewAirplaneTypeDtoRequest newAirplaneTypeDtoRequest);
} }
\ No newline at end of file
package cz.muni.fi.pa165.core.facade.airplanetype; package cz.muni.fi.pa165.core.facade.airplanetype;
import cz.muni.fi.pa165.core.data.domain.AirplaneType;
import cz.muni.fi.pa165.core.exceptions.ResourceNotFoundException; import cz.muni.fi.pa165.core.exceptions.ResourceNotFoundException;
import cz.muni.fi.pa165.core.mapper.AirplaneTypeMapper;
import cz.muni.fi.pa165.core.model.AirplaneTypeDto; import cz.muni.fi.pa165.core.model.AirplaneTypeDto;
import cz.muni.fi.pa165.core.model.NewAirplaneDtoRequest;
import cz.muni.fi.pa165.core.model.NewAirplaneTypeDtoRequest; import cz.muni.fi.pa165.core.model.NewAirplaneTypeDtoRequest;
import cz.muni.fi.pa165.core.service.airplanetype.AirplaneTypeService; import cz.muni.fi.pa165.core.service.airplanetype.AirplaneTypeService;
import org.modelmapper.ModelMapper;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -17,32 +15,34 @@ import java.util.Optional; ...@@ -17,32 +15,34 @@ import java.util.Optional;
public class AirplaneTypeFacadeImpl implements AirplaneTypeFacade<Long> { public class AirplaneTypeFacadeImpl implements AirplaneTypeFacade<Long> {
private final AirplaneTypeService airplaneTypeService; private final AirplaneTypeService airplaneTypeService;
private final ModelMapper modelMapper; private final AirplaneTypeMapper airplaneTypeMapper;
@Autowired @Autowired
public AirplaneTypeFacadeImpl(AirplaneTypeService airplaneTypeService, ModelMapper modelMapper) { public AirplaneTypeFacadeImpl(AirplaneTypeService airplaneTypeService, AirplaneTypeMapper airplaneTypeMapper) {
this.airplaneTypeService = airplaneTypeService; this.airplaneTypeService = airplaneTypeService;
this.modelMapper = modelMapper; this.airplaneTypeMapper = airplaneTypeMapper;
} }
@Override @Override
public AirplaneTypeDto save(NewAirplaneTypeDtoRequest newAirplaneTypeDtoRequest) { public AirplaneTypeDto save(NewAirplaneTypeDtoRequest newAirplaneTypeDtoRequest) {
var entityToSave = modelMapper.map(newAirplaneTypeDtoRequest, AirplaneType.class); var entityToSave = airplaneTypeMapper.toEntityFromNewRequest(newAirplaneTypeDtoRequest);
var savedEntity = airplaneTypeService.save(entityToSave); var savedEntity = airplaneTypeService.save(entityToSave);
return modelMapper.map(savedEntity, AirplaneTypeDto.class); return airplaneTypeMapper.toDto(savedEntity);
} }
@Override @Override
public Optional<AirplaneTypeDto> findById(Long id) { public Optional<AirplaneTypeDto> findById(Long id) {
var foundEntity = airplaneTypeService.findById(id); var foundEntity = airplaneTypeService.findById(id)
return foundEntity.map(e -> modelMapper.map(e, AirplaneTypeDto.class)); .orElseThrow(() -> new ResourceNotFoundException("Not Found."));
return Optional.ofNullable(airplaneTypeMapper.toDto(foundEntity));
} }
@Override @Override
public List<AirplaneTypeDto> findAll() { public List<AirplaneTypeDto> findAll() {
var entities = airplaneTypeService.findAll(); var entities = airplaneTypeService.findAll();
return entities.stream() return entities.stream()
.map(entity -> modelMapper.map(entity, AirplaneTypeDto.class)) .map(airplaneTypeMapper::toDto)
.toList(); .toList();
} }
...@@ -57,10 +57,10 @@ public class AirplaneTypeFacadeImpl implements AirplaneTypeFacade<Long> { ...@@ -57,10 +57,10 @@ public class AirplaneTypeFacadeImpl implements AirplaneTypeFacade<Long> {
} }
@Override @Override
public AirplaneTypeDto update(Long id, NewAirplaneTypeDtoRequest newAirplaneTypeDto) { public AirplaneTypeDto update(Long id, NewAirplaneTypeDtoRequest newAirplaneTypeDtoRequest) {
var newAirplaneTypeEntity = modelMapper.map(newAirplaneTypeDto, AirplaneType.class); var newAirplaneTypeEntity = airplaneTypeMapper.toEntityFromNewRequest(newAirplaneTypeDtoRequest);
return modelMapper.map(airplaneTypeService.update(id, newAirplaneTypeEntity), AirplaneTypeDto.class); return airplaneTypeMapper.toDto(newAirplaneTypeEntity);
} }
} }
package cz.muni.fi.pa165.core.facade.flight; package cz.muni.fi.pa165.core.facade.flight;
import cz.muni.fi.pa165.core.data.domain.Flight; import cz.muni.fi.pa165.core.data.domain.Flight;
import cz.muni.fi.pa165.core.exceptions.ResourceNotFoundException;
import cz.muni.fi.pa165.core.mapper.FlightMapper;
import cz.muni.fi.pa165.core.model.FlightDto; import cz.muni.fi.pa165.core.model.FlightDto;
import cz.muni.fi.pa165.core.model.NewFlightDtoRequest; import cz.muni.fi.pa165.core.model.NewFlightDtoRequest;
import cz.muni.fi.pa165.core.model.StewardDto;
import cz.muni.fi.pa165.core.service.flight.FlightService; import cz.muni.fi.pa165.core.service.flight.FlightService;
import org.modelmapper.ModelMapper; import org.modelmapper.ModelMapper;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -16,11 +19,13 @@ public class FlightFacadeImpl implements FlightFacade<Long> { ...@@ -16,11 +19,13 @@ public class FlightFacadeImpl implements FlightFacade<Long> {
private final FlightService flightService; private final FlightService flightService;
private final ModelMapper modelMapper; private final ModelMapper modelMapper;
private final FlightMapper flightMapper;
@Autowired @Autowired
public FlightFacadeImpl(FlightService flightService, ModelMapper modelMapper) { public FlightFacadeImpl(FlightService flightService, ModelMapper modelMapper, FlightMapper flightMapper) {
this.flightService = flightService; this.flightService = flightService;
this.modelMapper = modelMapper; this.modelMapper = modelMapper;
this.flightMapper = flightMapper;
} }
@Override @Override
...@@ -32,8 +37,18 @@ public class FlightFacadeImpl implements FlightFacade<Long> { ...@@ -32,8 +37,18 @@ public class FlightFacadeImpl implements FlightFacade<Long> {
@Override @Override
public Optional<FlightDto> findById(Long id) { public Optional<FlightDto> findById(Long id) {
var foundEntity = flightService.findById(id); var foundFlightEntity = flightService.findById(id)
return foundEntity.map(e -> modelMapper.map(e, FlightDto.class)); .orElseThrow(() -> new ResourceNotFoundException("Not Found."));
return Optional.ofNullable(flightMapper.toDto(foundFlightEntity));
// var flightDto = modelMapper.map(foundFlightEntity, FlightDto.class);
//
// for (var flightSteward: foundFlightEntity.getFlightStewards()) {
// flightDto.addStewardsItem(modelMapper.map(flightSteward.getSteward(), StewardDto.class));
// }
//
// return Optional.ofNullable(flightDto);
} }
@Override @Override
......
package cz.muni.fi.pa165.core.mapper;
import cz.muni.fi.pa165.core.data.domain.Airplane;
import cz.muni.fi.pa165.core.model.AirplaneDto;
import cz.muni.fi.pa165.core.model.NewAirplaneDtoRequest;
import org.mapstruct.Mapper;
@Mapper(componentModel = "spring")
public interface AirplaneMapper {
Airplane toEntity(AirplaneDto airplaneDto);
Airplane toEntityFromNewRequest(NewAirplaneDtoRequest newAirplaneDtoRequest);
AirplaneDto toDto(Airplane airplane);
}
package cz.muni.fi.pa165.core.mapper;
import cz.muni.fi.pa165.core.data.domain.AirplaneType;
import cz.muni.fi.pa165.core.model.AirplaneTypeDto;
import cz.muni.fi.pa165.core.model.NewAirplaneTypeDtoRequest;
import org.mapstruct.Mapper;
@Mapper(componentModel = "spring")
public interface AirplaneTypeMapper {
AirplaneType toEntity(AirplaneTypeDto airplaneTypeDto);
AirplaneType toEntityFromNewRequest(NewAirplaneTypeDtoRequest newAirplaneTypeDtoRequest);
AirplaneTypeDto toDto(AirplaneType airplaneType);
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment