private void processUnion()

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);
    }