in src/main/java/com/google/cloud/solutions/autotokenize/common/GenericRecordFlattener.java [192:215]
private void processUnion(
Object value, Schema fieldSchema, String parentKey, String fieldKey, String schemaKey) {
if (value == null) {
putValue(
Joiner.on(".").skipNulls().join(parentKey, fieldKey),
schemaKey,
Value.getDefaultInstance());
return;
}
List<Schema> unionTypes = fieldSchema.getTypes();
checkArgument(
unionTypes.size() == 2 && unionTypes.get(0).getType().equals(Schema.Type.NULL),
"Only nullable union with one type is supported. found " + unionTypes);
Schema nonNullType = unionTypes.get(1);
processType(
value,
nonNullType,
Joiner.on(".").skipNulls().join(parentKey, fieldKey),
nonNullType.getFullName(),
schemaKey);
}