in parquet-avro/src/main/java/org/apache/parquet/avro/ParentValueContainer.java [126:222]
static ParentValueContainer getConversionContainer(
final ParentValueContainer parent, final Conversion<?> conversion, final Schema schema) {
if (conversion == null) {
return parent;
}
final LogicalType logicalType = schema.getLogicalType();
switch (schema.getType()) {
case STRING:
return new ParentValueContainer() {
@Override
public void add(Object value) {
parent.add(conversion.fromCharSequence((CharSequence) value, schema, logicalType));
}
};
case BOOLEAN:
return new LogicalTypePrimitiveContainer(parent, schema, conversion) {
@Override
public void add(Object value) {
parent.add(conversion.fromBoolean((Boolean) value, schema, logicalType));
}
};
case INT:
return new LogicalTypePrimitiveContainer(parent, schema, conversion) {
@Override
public void add(Object value) {
parent.add(conversion.fromInt((Integer) value, schema, logicalType));
}
};
case LONG:
return new LogicalTypePrimitiveContainer(parent, schema, conversion) {
@Override
public void add(Object value) {
parent.add(conversion.fromLong((Long) value, schema, logicalType));
}
};
case FLOAT:
return new LogicalTypePrimitiveContainer(parent, schema, conversion) {
@Override
public void add(Object value) {
parent.add(conversion.fromFloat((Float) value, schema, logicalType));
}
};
case DOUBLE:
return new LogicalTypePrimitiveContainer(parent, schema, conversion) {
@Override
public void add(Object value) {
parent.add(conversion.fromDouble((Double) value, schema, logicalType));
}
};
case BYTES:
return new ParentValueContainer() {
@Override
public void add(Object value) {
parent.add(conversion.fromBytes((ByteBuffer) value, schema, logicalType));
}
};
case FIXED:
return new ParentValueContainer() {
@Override
public void add(Object value) {
parent.add(conversion.fromFixed((GenericData.Fixed) value, schema, logicalType));
}
};
case RECORD:
return new ParentValueContainer() {
@Override
public void add(Object value) {
parent.add(conversion.fromRecord((IndexedRecord) value, schema, logicalType));
}
};
case ARRAY:
return new ParentValueContainer() {
@Override
public void add(Object value) {
parent.add(conversion.fromArray((Collection<?>) value, schema, logicalType));
}
};
case MAP:
return new ParentValueContainer() {
@Override
public void add(Object value) {
parent.add(conversion.fromMap((Map<?, ?>) value, schema, logicalType));
}
};
case ENUM:
return new ParentValueContainer() {
@Override
public void add(Object value) {
parent.add(conversion.fromEnumSymbol((GenericEnumSymbol) value, schema, logicalType));
}
};
default:
return new LogicalTypePrimitiveContainer(parent, schema, conversion);
}
}