@Override protected void encodeFieldProperties(RecordDataSchema.Field field) throws IOException { final Map<String, ?> filteredMap = field.getProperties().entrySet().stream() .filter(entry -> !RESERVED_DATA_PROPERTIES.contains(entry.getKey())) .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); _builder.writeProperties(filteredMap); }
/** * Encode the properties of the {@link DataSchema} * * @param schema the {@link DataSchema} being encoded. * @throws IOException if there is an error while encoding. */ protected void encodeProperties(DataSchema schema) throws IOException { _builder.writeProperties(schema.getProperties()); }
protected void encodeFieldProperties(RecordDataSchema.Field field) throws IOException { _builder.writeProperties(field.getProperties()); }
/** * Write a map with string keys and values. * * @param value provides the map to write. */ public void writeMap(Map<String, ?> value) throws IOException { writeStartObject(); writeProperties(value); writeEndObject(); }
/** * Encode a specific {@link com.linkedin.data.schema.UnionDataSchema.Member} of a union. * * @param member The specific union member that needs to be encoded. * @throws IOException if there is an error while encoding. */ protected void encodeUnionMember(UnionDataSchema.Member member) throws IOException { if (member.hasAlias()) { _builder.writeStartObject(); // alias _builder.writeStringField(ALIAS_KEY, member.getAlias(), true); // type _builder.writeFieldName(TYPE_KEY); encode(member.getType(), member.isDeclaredInline()); // doc _builder.writeStringField(DOC_KEY, member.getDoc(), false); // properties _builder.writeProperties(member.getProperties()); _builder.writeEndObject(); } else { // for member without aliases, encode the type encode(member.getType(), member.isDeclaredInline()); } }