in gobblin-modules/gobblin-orc/src/main/java/org/apache/gobblin/writer/GenericRecordToOrcValueWriter.java [408:443]
private Converter buildConverter(TypeDescription schema, Schema avroSchema) {
switch (schema.getCategory()) {
case BOOLEAN:
return new BooleanConverter();
case BYTE:
return new ByteConverter();
case SHORT:
return new ShortConverter();
case INT:
return new IntConverter();
case LONG:
return new LongConverter();
case FLOAT:
return new FloatConverter();
case DOUBLE:
return new DoubleConverter();
case BINARY:
return new BytesConverter();
case STRING:
case CHAR:
case VARCHAR:
return new StringConverter();
case DECIMAL:
return new DecimalConverter(schema.getScale());
case STRUCT:
return new StructConverter(schema, AvroOrcSchemaConverter.sanitizeNullableSchema(avroSchema));
case LIST:
return new ListConverter(schema, AvroOrcSchemaConverter.sanitizeNullableSchema(avroSchema));
case MAP:
return new MapConverter(schema, AvroOrcSchemaConverter.sanitizeNullableSchema(avroSchema));
case UNION:
return new UnionConverter(schema, AvroOrcSchemaConverter.sanitizeNullableSchema(avroSchema));
default:
throw new IllegalArgumentException("Unhandled type " + schema);
}
}