in connectors/rocketmq-connect-debezium/kafka-connect-adaptor/src/main/java/org/apache/rocketmq/connect/kafka/connect/adaptor/schema/KafkaSinkSchemaConverter.java [64:183]
private SchemaBuilder convertKafkaSchema(io.openmessaging.connector.api.data.Schema originalSchema) {
String schemaName = convertSchemaName(originalSchema.getName());
Map<String, String> parameters = originalSchema.getParameters() == null ? new HashMap<>() : originalSchema.getParameters();
switch (originalSchema.getFieldType()) {
case INT8:
return SchemaBuilder
.int8()
.optional()
.name(schemaName)
.doc(originalSchema.getDoc())
.defaultValue(originalSchema.getDefaultValue())
.parameters(parameters)
;
case INT16:
return SchemaBuilder
.int16()
.optional()
.name(schemaName)
.doc(originalSchema.getDoc())
.defaultValue(originalSchema.getDefaultValue())
.parameters(parameters)
;
case INT32:
return SchemaBuilder
.int32()
.optional()
.name(schemaName)
.doc(originalSchema.getDoc())
.defaultValue(originalSchema.getDefaultValue())
.parameters(parameters)
;
case INT64:
return SchemaBuilder
.int64()
.optional()
.name(schemaName)
.doc(originalSchema.getDoc())
.defaultValue(originalSchema.getDefaultValue())
.parameters(parameters)
;
case FLOAT32:
return SchemaBuilder
.float32()
.optional()
.name(schemaName)
.doc(originalSchema.getDoc())
.defaultValue(originalSchema.getDefaultValue())
.parameters(parameters)
;
case FLOAT64:
return SchemaBuilder
.float64()
.optional()
.name(schemaName)
.doc(originalSchema.getDoc())
.defaultValue(originalSchema.getDefaultValue())
.parameters(parameters)
;
case BOOLEAN:
return SchemaBuilder
.bool()
.optional()
.name(schemaName)
.doc(originalSchema.getDoc())
.defaultValue(originalSchema.getDefaultValue())
.parameters(parameters)
;
case STRING:
return SchemaBuilder.
string()
.optional()
.name(schemaName)
.doc(originalSchema.getDoc())
.defaultValue(originalSchema.getDefaultValue())
.parameters(parameters)
;
case BYTES:
return SchemaBuilder
.bytes()
.optional()
.name(schemaName)
.doc(originalSchema.getDoc())
.defaultValue(originalSchema.getDefaultValue())
.parameters(parameters)
;
case STRUCT:
SchemaBuilder schemaBuilder = SchemaBuilder
.struct()
.optional()
.name(schemaName)
.doc(originalSchema.getDoc())
.defaultValue(originalSchema.getDefaultValue())
.parameters(parameters);
convertStructSchema(schemaBuilder, originalSchema);
return schemaBuilder;
case ARRAY:
return SchemaBuilder.array(convertKafkaSchema(originalSchema.getValueSchema()).build())
.optional()
.name(schemaName)
.doc(originalSchema.getDoc())
.defaultValue(originalSchema.getDefaultValue())
.parameters(parameters)
;
case MAP:
return SchemaBuilder.map(
convertKafkaSchema(originalSchema.getKeySchema()).build(),
convertKafkaSchema(originalSchema.getValueSchema()).build()
).optional()
.name(schemaName)
.doc(originalSchema.getDoc())
.defaultValue(originalSchema.getDefaultValue())
.parameters(parameters)
;
default:
throw new RuntimeException(" Type not supported: {}" + originalSchema.getFieldType());
}
}