private static SerializableFunction createArrayConverter()

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);
            }
        };
    }