У меня есть маппер, который преобразует реальные сущности из базы в DTO. Проблема заключается в том, что таблицы являются вложенными.
Если быть точным, то у меня есть 5 таблиц, которые связаны между собой так:
И вот как раз мне в конечном итоге надо промапить сущность A в DTO. Для этого я написал весьма громоздкий маппер:
public AssuranceAccessLineDto mapperToAssuranceAccessLineDto(AccessLine accessLine) {
return modelMapper.map(accessLine, AssuranceAccessLineDto.class)
.setId(accessLine.getId())
.setTechnology(accessLine.getTechnology().name())
.setStatus(accessLine.getStatus().name())
.setLineId(accessLine.getLineId())
.setPortId(accessLine.getPort().getId())
.setAssuranceNeProfileDto(
accessLine.getDefaultNeProfile() == null ?
null : mapperToAssuranceDefaultNeProfileDto(accessLine.getDefaultNeProfile())
)
.setAssuranceSubscriberNeProfileDto(
(accessLine.getDefaultNeProfile() == null || accessLine.getDefaultNeProfile().getSubscriberNeProfile() == null) ?
null : mapperToAssuranceSubscriberNeProfileDto(
accessLine.getDefaultNeProfile().getSubscriberNeProfile()
)
)
.setAssuranceDefaultNetworkLineProfileDto(
accessLine.getDefaultNetworkLineProfile() == null ?
null : mapperToAssuranceDefaultNetworkLineProfileDto(
accessLine.getDefaultNetworkLineProfile()
)
)
.setAssuranceSubscriberNetworkLineProfileDto(
(accessLine.getDefaultNetworkLineProfile() == null || accessLine.getDefaultNetworkLineProfile().getSubscriberNetworkLineProfile() == null) ?
null : mapperToAssuranceSubscriberNetworkLineProfileDto(
accessLine.getDefaultNetworkLineProfile().getSubscriberNetworkLineProfile()
)
);
}
Мой вопрос заключается в следующем. Могу ли я сделать эти сеттеры у маппера более красивыми и читабельными через лямбды?