@Override public ValueWriter<?> union(Schema union, List<ValueWriter<?>> options) { Preconditions.checkArgument(options.contains(ValueWriters.nulls()), "Cannot create writer for non-option union: " + union); Preconditions.checkArgument(options.size() == 2, "Cannot create writer for non-option union: " + union); if (union.getTypes().get(0).getType() == Schema.Type.NULL) { return ValueWriters.option(0, options.get(1)); } else { return ValueWriters.option(1, options.get(0)); } }
@Override public ValueWriter<?> union(Schema union, List<ValueWriter<?>> options) { Preconditions.checkArgument(options.contains(ValueWriters.nulls()), "Cannot create writer for non-option union: " + union); Preconditions.checkArgument(options.size() == 2, "Cannot create writer for non-option union: " + union); if (union.getTypes().get(0).getType() == Schema.Type.NULL) { return ValueWriters.option(0, options.get(1)); } else { return ValueWriters.option(1, options.get(0)); } }
@Override public ValueWriter<?> union(Schema union, List<ValueWriter<?>> options) { Preconditions.checkArgument(options.contains(ValueWriters.nulls()), "Cannot create writer for non-option union: " + union); Preconditions.checkArgument(options.size() == 2, "Cannot create writer for non-option union: " + union); if (union.getTypes().get(0).getType() == Schema.Type.NULL) { return ValueWriters.option(0, options.get(1)); } else { return ValueWriters.option(1, options.get(0)); } }