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