private SchemaBuilder convertKafkaSchema()

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

        }

    }