in paimon-flink/paimon-flink-cdc/src/main/java/org/apache/paimon/flink/action/cdc/mongodb/BsonValueConvertor.java [178:229]
public static Object convert(BsonValue bsonValue) {
if (bsonValue == null) {
return null;
}
switch (bsonValue.getBsonType()) {
case TIMESTAMP:
return convert(bsonValue.asTimestamp());
case DECIMAL128:
return convert(bsonValue.asDecimal128());
case OBJECT_ID:
return convert(bsonValue.asObjectId());
case BINARY:
return convert(bsonValue.asBinary());
case UNDEFINED:
return convert((BsonUndefined) bsonValue);
case REGULAR_EXPRESSION:
return convert(bsonValue.asRegularExpression());
case DOUBLE:
return convert(bsonValue.asDouble());
case STRING:
return convert(bsonValue.asString());
case INT32:
return convert(bsonValue.asInt32());
case INT64:
return convert(bsonValue.asInt64());
case BOOLEAN:
return convert(bsonValue.asBoolean());
case DATE_TIME:
return convert(bsonValue.asDateTime());
case SYMBOL:
return convert(bsonValue.asSymbol());
case JAVASCRIPT:
return convert(bsonValue.asJavaScript());
case JAVASCRIPT_WITH_SCOPE:
return convert(bsonValue.asJavaScriptWithScope());
case NULL:
return convert((BsonNull) bsonValue);
case DB_POINTER:
return convert(bsonValue.asDBPointer());
case MAX_KEY:
return convert((BsonMaxKey) bsonValue);
case MIN_KEY:
return convert((BsonMinKey) bsonValue);
case DOCUMENT:
return convert(bsonValue.asDocument());
case ARRAY:
return convert(bsonValue.asArray());
default:
throw new IllegalArgumentException(
"Unsupported BSON type: " + bsonValue.getBsonType());
}
}