public static PrimitiveConverter getNewConverter(final PrimitiveType type, final int index,
final ConverterParent parent) {
if (type.isPrimitive() && (type.asPrimitiveType().getPrimitiveTypeName().equals(PrimitiveType.PrimitiveTypeName.INT96))) {
return ETypeConverter.ETIMESTAMP_CONVERTER.getConverter(type, index, parent);
}
if (OriginalType.DECIMAL == type.getOriginalType()) {
return EDECIMAL_CONVERTER.getConverter(type, index, parent);
} else if (OriginalType.UTF8 == type.getOriginalType()) {
return ESTRING_CONVERTER.getConverter(type, index, parent);
} else if (OriginalType.DATE == type.getOriginalType()) {
return EDATE_CONVERTER.getConverter(type, index, parent);
}
Class<?> javaType = type.getPrimitiveTypeName().javaType;
for (final ETypeConverter eConverter : values()) {
if (eConverter.getType() == javaType) {
return eConverter.getConverter(type, index, parent);
}
}
throw new IllegalArgumentException("Converter not found ... for type : " + type);
}