This commit is contained in:
ran.shang
2025-06-11 09:42:13 +08:00
commit 7e38b8d971
1935 changed files with 132836 additions and 0 deletions

View File

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