1. 程式人生 > 其它 >Dozer 物件欄位對映 utils

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;
}