@Override public void serialize( final Struct struct, final JsonGenerator jsonGenerator, final SerializerProvider serializerProvider ) throws IOException { struct.validate(); jsonGenerator.writeObject( objectMapper.readTree(jsonConverter.fromConnectData("", struct.schema(), struct))); } }
/** * Assert that the supplied {@link Struct} is {@link Struct#validate() valid} and its {@link Struct#schema() schema} * matches that of the supplied {@code schema}. * * @param struct the {@link Struct} to validate; may not be null * @param schema the expected schema of the {@link Struct}; may not be null */ public static void schemaMatchesStruct(Struct struct, Schema schema) { // First validate the struct itself ... try { struct.validate(); } catch (DataException e) { throw new AssertionError("The struct '" + struct + "' failed to validate", e); } Schema actualSchema = struct.schema(); assertThat(actualSchema).isEqualTo(schema); fieldsInSchema(struct, schema); }
public Struct build() { log.trace("build() - Creating struct for {}", this.schema); Struct struct = new Struct(this.schema); for (KeyValue keyValue : this.fieldValues) { log.trace("build() - Setting field value for '{}'", keyValue.name); struct.put(keyValue.name, keyValue.value()); } struct.validate(); return struct; } }
public Pair<Struct, Struct> convert(LogEntry entry) { final Struct key = null != this.keySchema ? new Struct(this.keySchema) : null; final Struct value = new Struct(this.valueSchema); if (null != key) { for (LogFieldConverter converter : this.keyConverters) { converter.convert(entry, key); } } for (LogFieldConverter converter : this.valueConverters) { converter.convert(entry, value); } if (null != key) { key.validate(); } value.validate(); return new ImmutablePair<>(key, value); } }
public static Struct struct(JsonStruct storage) { Struct struct = new Struct(storage.schema); for (FieldValue fieldValue : storage.fieldValues) { struct.put(fieldValue.name, fieldValue.value()); } struct.validate(); return struct; }
@Override public void serialize(Struct struct, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException, JsonProcessingException { struct.validate(); Storage result = new Storage(); result.schema = struct.schema(); result.fieldValues = new ArrayList<>(); for (Field field : struct.schema().fields()) { log.trace("serialize() - Processing field '{}'", field.name()); KeyValue keyValue = new KeyValue(); keyValue.name = field.name(); keyValue.schema = field.schema(); keyValue.value(struct.get(field)); result.fieldValues.add(keyValue); } jsonGenerator.writeObject(result); } }
@Override public void serialize(Struct struct, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException, JsonProcessingException { struct.validate(); JsonStruct result = new JsonStruct(); result.schema = struct.schema(); result.fieldValues = new ArrayList<>(); for (Field field : struct.schema().fields()) { FieldValue fieldValue = new FieldValue(); fieldValue.name = field.name(); fieldValue.schema = field.schema(); fieldValue.value(struct.get(field)); result.fieldValues.add(fieldValue); } jsonGenerator.writeObject(result); } }
if (!struct.schema().equals(schema)) throw new DataException("Struct schemas do not match."); struct.validate(); break; case ARRAY: