<dependency>
<groupId>com.github.dozermapper</groupId>
<artifactId>dozer-core</artifactId>
<version>6.5.0</version>
<exclusions>
<exclusion>
<artifactId>commons-io</artifactId>
<groupId>commons-io</groupId>
</exclusion>
</exclusions>
</dependency>
package cn.hsa.tps.common.util;
import cn.hsa.cep.tpc.common.PageQueryDTO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.dozermapper.core.DozerBeanMapperBuilder;
import com.github.dozermapper.core.Mapper;
import com.github.dozermapper.core.loader.api.BeanMappingBuilder;
import com.google.common.collect.Lists;
import javax.validation.constraints.NotNull;
import java.lang.reflect.Array;
import java.util.*;
import static com.github.dozermapper.core.loader.api.TypeMappingOptions.mapEmptyString;
import static com.github.dozermapper.core.loader.api.TypeMappingOptions.mapNull;
public class BeanUtil {
protected static Mapper mapper;
static {
mapper = DozerBeanMapperBuilder.buildDefault();
}
private BeanUtil() {
}
public static <T, S> T convert(S s, Class<T> clz) {
if (s == null) {
return null;
}
return mapper.map(s, clz);
}
public static <T, S> List<T> convert(List<S> s, Class<T> clz) {
if (s == null) {
return null;
}
List<T> list = new ArrayList<T>();
for (S vs : s) {
list.add(mapper.map(vs, clz));
}
return list;
}
public static <T, S> Set<T> convert(Set<S> s, Class<T> clz) {
if (s == null) {
return null;
}
Set<T> set = new HashSet<T>();
for (S vs : s) {
set.add(mapper.map(vs, clz));
}
return set;
}
public static <T, S> T[] convert(S[] s, Class<T> clz) {
if (s == null) {
return null;
}
@SuppressWarnings("unchecked")
T[] arr = (T[]) Array.newInstance(clz, s.length);
for (int i = 0; i < s.length; i++) {
arr[i] = mapper.map(s[i], clz);
}
return arr;
}
public static void convertIgnoreNullAndBlank(Object source, Object target) {
DozerBeanMapperBuilder dozerBeanMapperBuilder = DozerBeanMapperBuilder.create();
Mapper mapper = dozerBeanMapperBuilder.withMappingBuilders(new BeanMappingBuilder() {
@Override
protected void configure() {
mapping(source.getClass(), target.getClass(), mapNull(false), mapEmptyString(false));
}
}).build();
mapper.map(source, target);
}
public static void convertIgnoreNull(Object source, Object target) {
DozerBeanMapperBuilder dozerBeanMapperBuilder = DozerBeanMapperBuilder.create();
Mapper mapper = dozerBeanMapperBuilder.withMappingBuilders(new BeanMappingBuilder() {
@Override
protected void configure() {
mapping(source.getClass(), target.getClass(), mapNull(false));
}
}).build();
mapper.map(source, target);
}
public static <T> IPage<T> convertPageQueryToPage(@NotNull PageQueryDTO<?> sourcePage, Class<T> clazz) {
IPage<T> targetPage = new Page(sourcePage.getCurrent(), sourcePage.getSize(), sourcePage.getTotal());
targetPage.setRecords(BeanUtil.convert(Optional.ofNullable(sourcePage.getRecords()).orElse(Lists.newArrayList()), clazz));
return targetPage;
}
}