private static List<Pair<String, Type>> getStructItems(final Schema struct) { if (struct.type() != Schema.Type.STRUCT) { return null; } final List<Pair<String, Type>> itemList = new ArrayList<>(); for (final Field field: struct.schema().fields()) { itemList.add(new Pair<>(field.name(), getKsqlType(field.schema()))); } return itemList; }
@Test public void shouldTranslatePrimitives() { final Schema connectSchema = SchemaBuilder .struct() .field("intField", Schema.INT32_SCHEMA) .field("longField", Schema.INT64_SCHEMA) .field("doubleField", Schema.FLOAT64_SCHEMA) .field("stringField", Schema.STRING_SCHEMA) .field("booleanField", Schema.BOOLEAN_SCHEMA) .build(); final Schema ksqlSchema = schemaTranslator.toKsqlSchema(connectSchema); assertThat(ksqlSchema.schema().type(), equalTo(Schema.Type.STRUCT)); assertThat(ksqlSchema.fields().size(), equalTo(connectSchema.fields().size())); for (int i = 0; i < ksqlSchema.fields().size(); i++) { assertThat( ksqlSchema.fields().get(i).name(), equalTo(connectSchema.fields().get(i).name().toUpperCase())); assertThat( ksqlSchema.fields().get(i).schema().type(), equalTo(connectSchema.fields().get(i).schema().type())); assertThat(ksqlSchema.fields().get(i).schema().isOptional(), is(true)); } }
if (schema == null) return; schema = schema.schema(); // in case a SchemaBuilder is used Object value = schemaAndValue.value(); if (value == null && !schema.isOptional()) {
final Struct result = new Struct(schema.schema()); final Descriptors.Descriptor descriptor = message.getDescriptorForType();