I created an abstract class to generate the list of entities or dto using modelmapper in the inheriting class. Do you have any suggestions for a better way? For each class we need to create the toDTO and toEntity methods
public abstract class AbstractConverter<Entity,DTO> {
@Autowired
ModelMapper modelMapper;
public List<Entity> toEntityList (Iterable<DTO> listDTO) {
List<Entity> list = new ArrayList<Entity>();
if(listDTO != null) {
for (DTO dto:listDTO) {
Entity entity = toEntity(dto);
list.add(entity);
}
}
return list;
}
public List<DTO> toDTOList (Iterable<Entity> listEntity) {
List<DTO> list = new ArrayList<DTO>();
if(listEntity != null) {
for (Entity entity:listEntity) {
DTO dto = toDTO(entity);
list.add(dto);
}
}
return list;
}
}
@Component
public class UserConverter extends AbstractConverter<User,UserDTO> {
public User toEntity(UserDTO userDTO) {
if (userDTO != null) {
return modelMapper.map(userDTO, User.class);
}
return null;
}
public UserDTO toDTO(User user) {
if (user != null) {
return modelMapper.map(user, UserDTO.class);
}
return null;
}
}