Bug 147530 [DataBinding] Provide event objects for change listeners
Before data binding goes 1.0 it would be wise to provide EventObjects for the following listeners to ensure that the API doesn't preclude future expansion of the values supplied to listeners. Interfaces that would be affected: * IValueChangeListener * IValueChangingListener * IListChangeListener * ISetChangeListener * IMappingChangeListener
bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/value/AbstractObservableValue.java
*/
	public AbstractObservableValue() {
		this(Realm.getDefault());
	}
	/**
	 * @param realm
	 */
	public AbstractObservableValue(Realm realm) {
		super(realm);
	}
	/**
	 * Collection of {@link IValueChangeListener value change listeners}.
	 * Access must be synchronized.
	 */
	private Collection valueChangeListeners = null;
	public synchronized void addValueChangeListener(IValueChangeListener listener) {
		if (valueChangeListeners == null) {
			boolean hadListeners = hasListeners();
			valueChangeListeners = new ArrayList();
			valueChangeListeners.add(listener);
			if (!hadListeners) {
				firstListenerAdded();
			}
		} else {
			valueChangeListeners.add(listener);
		}
	}
	public synchronized void removeValueChangeListener(IValueChangeListener listener) {
		if (valueChangeListeners == null) {
			return;