in gobblin-core/src/main/java/org/apache/gobblin/converter/avro/JsonElementConversionFactory.java [101:165]
public static JsonElementConverter getConvertor(JsonSchema schemaNode, String namespace, WorkUnitState state)
throws UnsupportedDateTypeException {
Type type = schemaNode.getType();
DateTimeZone timeZone = getTimeZone(state.getProp(ConfigurationKeys.CONVERTER_AVRO_DATE_TIMEZONE, "UTC"));
switch (type) {
case DATE:
return new DateConverter(schemaNode,
state.getProp(ConfigurationKeys.CONVERTER_AVRO_DATE_FORMAT, "yyyy-MM-dd HH:mm:ss"), timeZone, state);
case TIMESTAMP:
return new DateConverter(schemaNode,
state.getProp(ConfigurationKeys.CONVERTER_AVRO_TIMESTAMP_FORMAT, "yyyy-MM-dd HH:mm:ss"), timeZone, state);
case TIME:
return new DateConverter(schemaNode, state.getProp(ConfigurationKeys.CONVERTER_AVRO_TIME_FORMAT, "HH:mm:ss"),
timeZone, state);
case FIXED:
throw new UnsupportedDateTypeException(type.toString() + " is unsupported");
case STRING:
return new StringConverter(schemaNode);
case BYTES:
return new BinaryConverter(schemaNode, state.getProp(ConfigurationKeys.CONVERTER_AVRO_BINARY_CHARSET, "UTF8"));
case INT:
return new IntConverter(schemaNode);
case LONG:
return new LongConverter(schemaNode);
case FLOAT:
return new FloatConverter(schemaNode);
case DOUBLE:
return new DoubleConverter(schemaNode);
case BOOLEAN:
return new BooleanConverter(schemaNode);
case ARRAY:
return new ArrayConverter(schemaNode, state, namespace);
case MAP:
return new MapConverter(schemaNode, state);
case ENUM:
return new EnumConverter(schemaNode, namespace);
case RECORD:
return new RecordConverter(schemaNode, state, namespace);
case NULL:
return new NullConverter(schemaNode);
case UNION:
return new UnionConverter(schemaNode, state);
default:
throw new UnsupportedDateTypeException(type.toString() + " is unsupported");
}
}