private void writeUnion(UnionDataSchema schema) throws IOException { write("union["); for(Iterator<UnionDataSchema.Member> iter = schema.getMembers().iterator(); iter.hasNext();) { UnionDataSchema.Member member = iter.next(); writeReferenceOrInline(member.getType(), member.isDeclaredInline()); if (iter.hasNext()) { write(", "); } } write("]"); }
field.setName(member.getUnionMemberKey(), errorMessageBuilder); field.setDoc(member.getDoc()); field.setDeclaredInline(member.isDeclaredInline()); field.setOptional(true); field.setRecord(recordDataSchema);
for (UnionDataSchema.Member member : unionSchema.getMembers()) computeImports(member.getType(), member.isDeclaredInline(), importsAcc);
/** * 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()); } }