| 1234567891011121314151617181920212223242526272829303132333435363738 |
- package nju.seec.helper.logic.convert;
- import com.google.common.collect.ImmutableMap;
- import lombok.experimental.UtilityClass;
- import nju.seec.helper.data.entity.Item;
- import nju.seec.helper.data.entity.Slide;
- import nju.seec.helper.web.dto.SlideDTO;
- import org.springframework.beans.BeanUtils;
- import java.util.Map;
- import java.util.stream.Collectors;
- /**
- * @author cst
- */
- @UtilityClass
- public class DTOConvertFactory {
- @SuppressWarnings("rawtypes")
- private static final Map<Class, DTOConverter> MAP = new ImmutableMap.Builder<Class, DTOConverter>()
- .put(SlideDTO.class, (DTOConverter<SlideDTO, Slide>) slideDTO -> {
- Slide slide = new Slide();
- BeanUtils.copyProperties(slideDTO, slide, "items");
- slide.setItems(slideDTO.getItems().stream()
- .map(itemDTO -> {
- Item item = new Item();
- BeanUtils.copyProperties(itemDTO, item);
- return item;
- }).collect(Collectors.toList()));
- return slide;
- })
- .build();
- @SuppressWarnings("unchecked")
- public <DTO, Entity> Entity convert(DTO dto) {
- return (Entity) MAP.get(dto.getClass())
- .convert(dto);
- }
- }
|