/** * Calls an appropriate write method based on the value. * Value MUST not be null. * * @param type the Parquet type * @param avroSchema the Avro schema * @param value a non-null value to write */ private void writeValue(Type type, Schema avroSchema, Object value) { Schema nonNullAvroSchema = AvroSchemaConverter.getNonNull(avroSchema); LogicalType logicalType = nonNullAvroSchema.getLogicalType(); if (logicalType != null) { Conversion<?> conversion = model.getConversionByClass( value.getClass(), logicalType); writeValueWithoutConversion(type, nonNullAvroSchema, convert(nonNullAvroSchema, logicalType, conversion, value)); } else { writeValueWithoutConversion(type, nonNullAvroSchema, value); } }