Skip to content

Instantly share code, notes, and snippets.

@diyfr
Created August 31, 2020 13:22
Show Gist options
  • Save diyfr/a26bb467c92ac8d0e3b6df207ac99072 to your computer and use it in GitHub Desktop.
Save diyfr/a26bb467c92ac8d0e3b6df207ac99072 to your computer and use it in GitHub Desktop.
Quickmapper for springboot

Utile pour transformer Entity to DTO
exemple

Person p = QuickMapper.map(personDto,Person.class)
List<Person> pList = QuickMapper.mapList(personDtoList,Person.class)
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.BeanCreationException;
import org.springframework.http.HttpStatus;
import org.springframework.web.server.ResponseStatusException;

import java.util.List;
import java.util.stream.Collectors;

public class QuickMapper {

    private static final Logger log = LoggerFactory.getLogger(QuickMapper.class);

    private QuickMapper() {
    }

    @SuppressWarnings("java:S1874") // Reason -> Java 11
    public static <T, U> U map(T src, Class<U> target) {
        try {
            U u = target.newInstance();
            BeanUtils.copyProperties(src, u);
            return u;
        } catch (IllegalAccessException | InstantiationException | BeanCreationException e) {
            log.error("QuickMapper", e);
            throw new ResponseStatusException(HttpStatus.BAD_REQUEST, HttpStatus.BAD_REQUEST.getReasonPhrase());
        }
    }

    public static <T, U> List<U> mapList(List<T> lst, Class<U> target) {
        return lst.stream().map(obj -> QuickMapper.map(obj, target)).collect(Collectors.toList());
    }
    
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment