private static ConverterProvider instance = null;
protected ConverterFactory() {
//String -> Type
converters.put(new ConverterKey("String", "Boolean"), new StringToBooleanConverter());
converters.put(new ConverterKey("String", "Long"), new StringToLongConverter());
converters.put(new ConverterKey("String", "Integer"), new StringToIntegerConverter());
converters.put(new ConverterKey("String", "BigDecimal"), new StringToBigDecimalConverter());
converters.put(new ConverterKey("BigInteger", "Long"), new BigIntegerToLongConverter());
converters.put(new ConverterKey("BigInteger", "Integer"), new BigIntegerToIntegerConverter());
//List<String> -> List<Type>
converters
.put(new ConverterKey("List<String>", "List<Boolean>"), new ListConverter(new StringToBooleanConverter()));
converters.put(new ConverterKey("List<String>", "List<Long>"), new ListConverter(new StringToLongConverter()));
converters
.put(new ConverterKey("List<String>", "List<Integer>"), new ListConverter(new StringToIntegerConverter()));
converters.put(new ConverterKey("List<String>", "List<BigDecimal>"), new ListConverter(
new StringToBigDecimalConverter()));
//Boolean -> Type
converters.put(new ConverterKey("Boolean", "String"), new ReverseConverter(new StringToBooleanConverter()));
converters.put(new ConverterKey("Boolean", "Long"), new BooleanToLongConverter());
converters.put(new ConverterKey("Boolean", "YN"), new BooleanToYNConverter());
//Date -> Type
converters.put(new ConverterKey("Timestamp", "Date"), new TimestampToDateConverter());
//Long -> Type
converters.put(new ConverterKey("Long", "Boolean"), new ReverseConverter(new BooleanToLongConverter()));
}