/** * Encode a {@link Named}. * * This method writes the unqualified name and namespace fields. * The namespace field will not be written if the namespace * is the same as the current namespace. * * It also adds the fully qualified name to the set of names already dumped * and updates the current namespace. * * @param schema provides the {@link NamedDataSchema}. * @throws IOException if there is an error while encoding. */ protected void encodeName(Named schema) throws IOException { String fullName = schema.getFullName(); if (fullName.isEmpty() == false) { String namespace = encodeNamespace(schema); _builder.writeStringField(NAME_KEY, schema.getName(), true); if (_currentNamespace.equals(namespace) == false) { _builder.writeStringField(NAMESPACE_KEY, namespace, true); } _currentNamespace = namespace; } }
_builder.writeStringField(NAME_KEY, field.getName(), true); _builder.writeStringField(DOC_KEY, field.getDoc(), false); if (order != RecordDataSchema.Field.Order.ASCENDING) _builder.writeStringField(ORDER_KEY, order.toString().toLowerCase(), true);
/** * 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()); } }
_builder.writeStringField(TYPE_KEY, schema.getType().toString().toLowerCase(), true); encodeName(schema); final String packageName = schema.getPackage(); if (packageName != null && !_currentPackage.equals(packageName)) _builder.writeStringField(PACKAGE_KEY, packageName, false); _currentPackage = packageName; _builder.writeStringField(DOC_KEY, schema.getDoc(), false);
_builder.writeStringField(TYPE_KEY, ARRAY_TYPE, true); _builder.writeFieldName(ITEMS_KEY); ArrayDataSchema arrayDataSchema = (ArrayDataSchema) schema; case MAP: _builder.writeStartObject(); _builder.writeStringField(TYPE_KEY, MAP_TYPE, true); _builder.writeFieldName(VALUES_KEY); MapDataSchema mapDataSchema = (MapDataSchema) schema;