in timebase-kafka-connector/src/main/java/deltix/kafka/connect/RawMessageSerializer.java [353:382]
private RecordClassDescriptor buildDescriptor(Schema schema) {
validateSchema(schema);
List<DataField> fields = new ArrayList<>();
if (tbOffsetField != null) {
DataField offsetDataField = new NonStaticDataField(tbOffsetField, tbOffsetField, new IntegerDataType(ENCODING_INT64, false));
offsetDataField.setDescription("Kafka Record Offset");
fields.add(offsetDataField);
}
if (tbKeyField != null) {
DataField keyDataField = new NonStaticDataField(tbKeyField, tbKeyField, VarcharDataType.getDefaultInstance());
keyDataField.setDescription("Kafka Record Key");
fields.add(keyDataField);
}
if (tbTombstoneField != null) {
DataField tombstoneField = new NonStaticDataField(tbTombstoneField, tbTombstoneField, BooleanDataType.getDefaultInstance());
tombstoneField.setDescription("Is Kafka Tombstone Record");
fields.add(tombstoneField);
}
for (Field field : schema.fields()) {
String fieldName = field.name();
boolean flatten = flattenFields != null && flattenFields.contains(fieldName);
addDataField(fieldName, field.schema(), fields, flatten);
}
return new RecordClassDescriptor(schema.name(), schema.name(), schema.doc(), false, null, fields.toArray(new DataField[0]));
}