in timebase-kafka-connector/src/main/java/deltix/kafka/connect/RawMessageDeserializer.java [87:121]
private Schema buildSchema(RecordClassDescriptor msgType) {
boolean debug = LOG.isDebugEnabled();
validateDescriptor(msgType);
final SchemaBuilder schemaBuilder = SchemaBuilder.struct();
schemaBuilder.name(msgType.getName());
schemaBuilder.doc("Generated by TBSourceConnector from " + msgType.getName());
// add "header" fields
if (instrumentField != null)
schemaBuilder.field(instrumentField, Schema.OPTIONAL_STRING_SCHEMA);
if (symbolField != null)
schemaBuilder.field(symbolField, Schema.OPTIONAL_STRING_SCHEMA);
if (timeField != null)
schemaBuilder.field(timeField, TIMESTAMP_MS.getSchema());
for (DataField field : msgType.getFields()) {
if (fieldSelection != null && !fieldSelection.isSelected(field.getName())) {
if (debug)
LOG.debug("Skipping excluded field: " + field.getName());
continue; // skip excluded field
}
//if (field instanceof StaticDataField) {
//Object fieldValue = ((StaticDataField) field).getBoxedStaticValue();
//TODO use it as default
//}
String fieldName = fieldMap.getDestination(field.getName());
Schema fieldSchema = getFieldSchema(field.getType());
schemaBuilder.field(fieldName, fieldSchema);
LOG.info("Added Field: " + fieldName + "/" + fieldSchema.name() + "/" + fieldSchema.type() + (fieldSchema.isOptional() ? " (Optional)": ""));
}
return schemaBuilder.build();
}