in flink-connector-mongodb/src/main/java/org/apache/flink/connector/mongodb/table/converter/RowDataToBsonConverters.java [285:307]
private static SerializableFunction<Object, BsonValue> createArrayConverter(
ArrayType arrayType) {
final LogicalType elementType = arrayType.getElementType();
final ArrayData.ElementGetter elementGetter = ArrayData.createElementGetter(elementType);
final SerializableFunction<Object, BsonValue> elementConverter =
createNullSafeInternalConverter(elementType);
return new SerializableFunction<Object, BsonValue>() {
private static final long serialVersionUID = 1L;
@Override
public BsonValue apply(Object value) {
final ArrayData arrayData = (ArrayData) value;
final List<BsonValue> bsonValues = new ArrayList<>();
for (int i = 0; i < arrayData.size(); i++) {
final BsonValue bsonValue =
elementConverter.apply(elementGetter.getElementOrNull(arrayData, i));
bsonValues.add(bsonValue);
}
return new BsonArray(bsonValues);
}
};
}