Dozer 对象字段映射 utils

maven 依赖

<dependency>
<groupId>net.sf.dozer</groupId>
<artifactId>dozer</artifactId>
<version></version>
</dependency>

<!-- for spring -->
<dependency>
<groupId>net.sf.dozer</groupId>
<artifactId>dozer-spring</artifactId>
<version></version>
</dependency>

 

 

public class MappingUtil {

private static DozerBeanMapper dozerMapper = new DozerBeanMapper();

private MappingUtil() {
}

//list to list

public static <T, U> List<U> mapToList(List<T> sourceList, Class<U> destClazz) {
List<U> result = new ArrayList<>();
if (sourceList == null || sourceList.isEmpty()) {
return result;
}

for (T srcObject : sourceList) {
U outObject = dozerMapper.map(srcObject, destClazz);
result.add(outObject);
}
return result;
}

public static <T, U> PaginationData<U> mapPaginationData(PaginationData<T> source, Class<U> destClazz) {

if (source == null) {
return null;
}

PaginationData<U> result = new PaginationData<>();
result.setData(new ArrayList<>());
result.setCount(source.getCount());
result.setPageIndex(source.getPageIndex());
result.setPageSize(source.getPageSize());

if (source.getData().isEmpty()) {
return result;
}
for (T srcObject : source.getData()) {
U outObject = dozerMapper.map(srcObject, destClazz);
result.getData().add(outObject);
}
return result;
}

//class to class

public static <T, U> U map(T srcObject, Class<U> destClazz) {
if (srcObject == null) {
return null;
}
return dozerMapper.map(srcObject, destClazz);
}

public static <T, U> U merge(T srcObj, U outObject) {
if (srcObj == null) {
return null;
}
if (outObject != null) {
dozerMapper.map(srcObj, outObject);
return outObject;
} else {
return null;
}

}

 

//for xml 形式

public static DozerBeanMapper getCustomDozerMapper(String xmlFile) {
DozerBeanMapper newObj = new DozerBeanMapper();
List<String> myMappingFiles = new ArrayList<>();
myMappingFiles.add(xmlFile);
newObj.setMappingFiles(myMappingFiles);
return newObj;
}

 

posted @   jackwu74  阅读(143)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
点击右上角即可分享
微信分享提示