private Object convert()

in parquet-avro/src/main/java/org/apache/parquet/avro/AvroWriteSupport.java [289:321]


  private <D> Object convert(Schema schema, LogicalType logicalType, Conversion<D> conversion, Object datum) {
    if (conversion == null) {
      return datum;
    }
    Class<D> fromClass = conversion.getConvertedType();
    switch (schema.getType()) {
      case RECORD:
        return conversion.toRecord(fromClass.cast(datum), schema, logicalType);
      case ENUM:
        return conversion.toEnumSymbol(fromClass.cast(datum), schema, logicalType);
      case ARRAY:
        return conversion.toArray(fromClass.cast(datum), schema, logicalType);
      case MAP:
        return conversion.toMap(fromClass.cast(datum), schema, logicalType);
      case FIXED:
        return conversion.toFixed(fromClass.cast(datum), schema, logicalType);
      case STRING:
        return conversion.toCharSequence(fromClass.cast(datum), schema, logicalType);
      case BYTES:
        return conversion.toBytes(fromClass.cast(datum), schema, logicalType);
      case INT:
        return conversion.toInt(fromClass.cast(datum), schema, logicalType);
      case LONG:
        return conversion.toLong(fromClass.cast(datum), schema, logicalType);
      case FLOAT:
        return conversion.toFloat(fromClass.cast(datum), schema, logicalType);
      case DOUBLE:
        return conversion.toDouble(fromClass.cast(datum), schema, logicalType);
      case BOOLEAN:
        return conversion.toBoolean(fromClass.cast(datum), schema, logicalType);
    }
    return datum;
  }