private Schema buildSchema()

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