package com.alibaba.excel.converters; import java.util.Map; import com.alibaba.excel.converters.bigdecimal.BigDecimalBooleanConverter; import com.alibaba.excel.converters.bigdecimal.BigDecimalNumberConverter; import com.alibaba.excel.converters.bigdecimal.BigDecimalStringConverter; import com.alibaba.excel.converters.booleanconverter.BooleanBooleanConverter; import com.alibaba.excel.converters.booleanconverter.BooleanNumberConverter; import com.alibaba.excel.converters.booleanconverter.BooleanStringConverter; import com.alibaba.excel.converters.bytearray.BoxingByteArrayImageConverter; import com.alibaba.excel.converters.bytearray.ByteArrayImageConverter; import com.alibaba.excel.converters.byteconverter.ByteBooleanConverter; import com.alibaba.excel.converters.byteconverter.ByteNumberConverter; import com.alibaba.excel.converters.byteconverter.ByteStringConverter; import com.alibaba.excel.converters.date.DateDateConverter; import com.alibaba.excel.converters.date.DateNumberConverter; import com.alibaba.excel.converters.date.DateStringConverter; import com.alibaba.excel.converters.doubleconverter.DoubleBooleanConverter; import com.alibaba.excel.converters.doubleconverter.DoubleNumberConverter; import com.alibaba.excel.converters.doubleconverter.DoubleStringConverter; import com.alibaba.excel.converters.file.FileImageConverter; import com.alibaba.excel.converters.floatconverter.FloatBooleanConverter; import com.alibaba.excel.converters.floatconverter.FloatNumberConverter; import com.alibaba.excel.converters.floatconverter.FloatStringConverter; import com.alibaba.excel.converters.inputstream.InputStreamImageConverter; import com.alibaba.excel.converters.integer.IntegerBooleanConverter; import com.alibaba.excel.converters.integer.IntegerNumberConverter; import com.alibaba.excel.converters.integer.IntegerStringConverter; import com.alibaba.excel.converters.longconverter.LongBooleanConverter; import com.alibaba.excel.converters.longconverter.LongNumberConverter; import com.alibaba.excel.converters.longconverter.LongStringConverter; import com.alibaba.excel.converters.shortconverter.ShortBooleanConverter; import com.alibaba.excel.converters.shortconverter.ShortNumberConverter; import com.alibaba.excel.converters.shortconverter.ShortStringConverter; import com.alibaba.excel.converters.string.StringBooleanConverter; import com.alibaba.excel.converters.string.StringErrorConverter; import com.alibaba.excel.converters.string.StringNumberConverter; import com.alibaba.excel.converters.string.StringStringConverter; import com.alibaba.excel.converters.url.UrlImageConverter; import com.alibaba.excel.util.MapUtils; /** * Load default handler * * @author Jiaju Zhuang */ public class DefaultConverterLoader { private static Map> defaultWriteConverter; private static Map> allConverter; static { initDefaultWriteConverter(); initAllConverter(); } private static void initAllConverter() { allConverter = MapUtils.newHashMapWithExpectedSize(40); putAllConverter(new BigDecimalBooleanConverter()); putAllConverter(new BigDecimalNumberConverter()); putAllConverter(new BigDecimalStringConverter()); putAllConverter(new BooleanBooleanConverter()); putAllConverter(new BooleanNumberConverter()); putAllConverter(new BooleanStringConverter()); putAllConverter(new ByteBooleanConverter()); putAllConverter(new ByteNumberConverter()); putAllConverter(new ByteStringConverter()); putAllConverter(new DateNumberConverter()); putAllConverter(new DateStringConverter()); putAllConverter(new DoubleBooleanConverter()); putAllConverter(new DoubleNumberConverter()); putAllConverter(new DoubleStringConverter()); putAllConverter(new FloatBooleanConverter()); putAllConverter(new FloatNumberConverter()); putAllConverter(new FloatStringConverter()); putAllConverter(new IntegerBooleanConverter()); putAllConverter(new IntegerNumberConverter()); putAllConverter(new IntegerStringConverter()); putAllConverter(new LongBooleanConverter()); putAllConverter(new LongNumberConverter()); putAllConverter(new LongStringConverter()); putAllConverter(new ShortBooleanConverter()); putAllConverter(new ShortNumberConverter()); putAllConverter(new ShortStringConverter()); putAllConverter(new StringBooleanConverter()); putAllConverter(new StringNumberConverter()); putAllConverter(new StringStringConverter()); putAllConverter(new StringErrorConverter()); } private static void initDefaultWriteConverter() { defaultWriteConverter = MapUtils.newHashMapWithExpectedSize(20); putWriteConverter(new BigDecimalNumberConverter()); putWriteConverter(new BooleanBooleanConverter()); putWriteConverter(new ByteNumberConverter()); putWriteConverter(new DateDateConverter()); putWriteConverter(new DoubleNumberConverter()); putWriteConverter(new FloatNumberConverter()); putWriteConverter(new IntegerNumberConverter()); putWriteConverter(new LongNumberConverter()); putWriteConverter(new ShortNumberConverter()); putWriteConverter(new StringStringConverter()); putWriteConverter(new FileImageConverter()); putWriteConverter(new InputStreamImageConverter()); putWriteConverter(new ByteArrayImageConverter()); putWriteConverter(new BoxingByteArrayImageConverter()); putWriteConverter(new UrlImageConverter()); } /** * Load default write converter * * @return */ public static Map> loadDefaultWriteConverter() { return defaultWriteConverter; } private static void putWriteConverter(Converter converter) { defaultWriteConverter.put(ConverterKeyBuild.buildKey(converter.supportJavaTypeKey()), converter); } /** * Load default read converter * * @return */ public static Map> loadDefaultReadConverter() { return loadAllConverter(); } /** * Load all converter * * @return */ public static Map> loadAllConverter() { return allConverter; } private static void putAllConverter(Converter converter) { allConverter.put(ConverterKeyBuild.buildKey(converter.supportJavaTypeKey(), converter.supportExcelTypeKey()), converter); } }