ddangelorb
3 years ago
2 changed files with 71 additions and 7 deletions
-
11src/main/java/org/waterproofingdata/wpdauth/controller/UsersController.java
-
67src/main/java/org/waterproofingdata/wpdauth/dto/CustomMapper.java
@ -0,0 +1,67 @@ |
|||||
|
package org.waterproofingdata.wpdauth.dto; |
||||
|
|
||||
|
import java.util.Collection; |
||||
|
import java.util.List; |
||||
|
import java.util.stream.Collectors; |
||||
|
|
||||
|
import org.modelmapper.ModelMapper; |
||||
|
import org.modelmapper.convention.MatchingStrategies; |
||||
|
|
||||
|
public class CustomMapper { |
||||
|
private static ModelMapper modelMapper = new ModelMapper(); |
||||
|
|
||||
|
/** |
||||
|
* Model mapper property setting are specified in the following block. |
||||
|
* Default property matching strategy is set to Strict see {@link MatchingStrategies} |
||||
|
* Custom mappings are added using {@link ModelMapper#addMappings(PropertyMap)} |
||||
|
*/ |
||||
|
static { |
||||
|
modelMapper = new ModelMapper(); |
||||
|
modelMapper.getConfiguration().setMatchingStrategy(MatchingStrategies.STRICT); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* Hide from public usage. |
||||
|
*/ |
||||
|
private CustomMapper() { |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* <p>Note: outClass object must have default constructor with no arguments</p> |
||||
|
* |
||||
|
* @param <D> type of result object. |
||||
|
* @param <T> type of source object to map from. |
||||
|
* @param entity entity that needs to be mapped. |
||||
|
* @param outClass class of result object. |
||||
|
* @return new object of <code>outClass</code> type. |
||||
|
*/ |
||||
|
public static <D, T> D map(final T entity, Class<D> outClass) { |
||||
|
return modelMapper.map(entity, outClass); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* <p>Note: outClass object must have default constructor with no arguments</p> |
||||
|
* |
||||
|
* @param entityList list of entities that needs to be mapped |
||||
|
* @param outCLass class of result list element |
||||
|
* @param <D> type of objects in result list |
||||
|
* @param <T> type of entity in <code>entityList</code> |
||||
|
* @return list of mapped object with <code><D></code> type. |
||||
|
*/ |
||||
|
public static <D, T> List<D> mapAll(final Collection<T> entityList, Class<D> outCLass) { |
||||
|
return entityList.stream() |
||||
|
.map(entity -> map(entity, outCLass)) |
||||
|
.collect(Collectors.toList()); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* Maps {@code source} to {@code destination}. |
||||
|
* |
||||
|
* @param source object to map from |
||||
|
* @param destination object to map to |
||||
|
*/ |
||||
|
public static <S, D> D map(final S source, D destination) { |
||||
|
modelMapper.map(source, destination); |
||||
|
return destination; |
||||
|
} |
||||
|
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue