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