public Record add(final URI property, @Nullable final Object first, final Object... other)
            throws IllegalArgumentException {
        Preconditions.checkNotNull(property);
        final List<Object> added = Lists.newArrayList();
        Data.normalize(first, added);
        Data.normalize(other, added);
        if (!Iterables.isEmpty(added)) {
            synchronized (this) {
                final Set<Object> values = Sets.newHashSet(get(property));
                final boolean changed = values.addAll(added);
                if (changed) {
                    doSet(property, values);
                }
            }
        }
        return this;
    }
public Record add ( final URI property , @ Nullable final Object first , final Object ... other ) throws IllegalArgumentException { Preconditions . checkNotNull ( property ) ; final List < Object > added = Lists . newArrayList ( ) ; Data . normalize ( first , added ) ; Data . normalize ( other , added ) ; if ( ! Iterables . isEmpty ( added ) ) { synchronized ( this ) { final Set < Object > values = Sets . newHashSet ( get ( property ) ) ; final boolean changed = values . addAll ( added ) ; if ( changed ) { doSet ( property , values ) ; } } } return this ; }
Adds one or more values to the property specified. The method accepts one or more objects
as the values; these objects can be {@code Record}s, {@code URI}s, {@code BNode}s,
{@code Statement}s, {@code Literal}s, objects convertible to {@code Literal} or any array
or iterable of the former types.

@param property
the property to modify
@param first
the first value, array or iterable of values to add, possibly null
@param other
additional values, arrays or iterables of values to set (if specified, will be
merged with {@code first}).
@return this record object, for call chaining
@throws IllegalArgumentException
if one of the supplied values has an unsupported type