init
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
package com.newyetai.mybatis.converters;
|
||||
|
||||
import com.google.common.collect.Sets;
|
||||
import com.newyetai.mybatis.handle.BaseEnum;
|
||||
import java.util.Arrays;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
import org.springframework.core.convert.TypeDescriptor;
|
||||
import org.springframework.core.convert.converter.GenericConverter;
|
||||
|
||||
/**
|
||||
* @description: baseEnum转换
|
||||
* @author: chenyun.huang
|
||||
* @create: 2021-04-01 11:52
|
||||
**/
|
||||
public class ObjectToBaseEnumConverter implements GenericConverter {
|
||||
@Override
|
||||
public Set<ConvertiblePair> getConvertibleTypes() {
|
||||
return Sets.newHashSet(new ConvertiblePair(Integer.class, BaseEnum.class),new ConvertiblePair(String.class, BaseEnum.class));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object convert(Object source, TypeDescriptor sourceType, TypeDescriptor targetType) {
|
||||
if (Objects.isNull(source)){
|
||||
return null;
|
||||
}
|
||||
Class<? extends BaseEnum> type = (Class<? extends BaseEnum>) targetType.getType();
|
||||
BaseEnum[] enumConstants = type.getEnumConstants();
|
||||
Map<Object, BaseEnum> collect = Arrays.stream(enumConstants)
|
||||
.collect(Collectors.toMap(BaseEnum::getValue, v -> v, (v1, v2) -> v2));
|
||||
return collect.get(source);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user