mirror of https://github.com/alibaba/easyexcel
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.4 KiB
49 lines
1.4 KiB
package com.alibaba.excel.converters; |
|
|
|
import java.util.Map; |
|
|
|
import com.alibaba.excel.enums.CellDataTypeEnum; |
|
import com.alibaba.excel.util.MapUtils; |
|
|
|
import lombok.AllArgsConstructor; |
|
import lombok.Data; |
|
|
|
/** |
|
* Converter unique key.Consider that you can just use class as the key. |
|
* |
|
* @author Jiaju Zhuang |
|
*/ |
|
public class ConverterKeyBuild { |
|
|
|
private static final Map<Class<?>, Class<?>> BOXING_MAP = MapUtils.newHashMap(); |
|
|
|
static { |
|
BOXING_MAP.put(int.class, Integer.class); |
|
BOXING_MAP.put(byte.class, Byte.class); |
|
BOXING_MAP.put(long.class, Long.class); |
|
BOXING_MAP.put(double.class, Double.class); |
|
BOXING_MAP.put(float.class, Float.class); |
|
BOXING_MAP.put(char.class, Character.class); |
|
BOXING_MAP.put(short.class, Short.class); |
|
BOXING_MAP.put(boolean.class, Boolean.class); |
|
} |
|
|
|
public static ConverterKey buildKey(Class<?> clazz) { |
|
Class<?> boxingClass = BOXING_MAP.get(clazz); |
|
if (boxingClass != null) { |
|
return new ConverterKey(boxingClass, null); |
|
} |
|
return new ConverterKey(clazz, null); |
|
} |
|
|
|
public static ConverterKey buildKey(Class<?> clazz, CellDataTypeEnum cellDataTypeEnum) { |
|
return new ConverterKey(clazz, cellDataTypeEnum); |
|
} |
|
|
|
@Data |
|
@AllArgsConstructor |
|
public static class ConverterKey { |
|
private Class<?> clazz; |
|
private CellDataTypeEnum cellDataTypeEnum; |
|
} |
|
}
|
|
|