code: public void setUserMetadata(final String key, final Object value) {
          final Object old = userMetadata.put(key, value);
          firePropertyChange(key, old, value);
      }
docs: Sets custom metadata to be associated with this property.  A property
  change event will be fired (from this FieldMetadata, not from the
  associated form property) if <code>value</code> differs from the
  current value of the specified <code>key</code>.  The property change
  event will use the value of <code>key</code> as the property name in
  the property change event.
  
  @param key
  @param value