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/list/AbstractObservableList.java
import org.eclipse.core.databinding.observable.Realm;
import org.eclipse.core.runtime.Assert;
import org.eclipse.core.runtime.AssertionFailedException;
/**
 * Subclasses should override at least get(int index) and size().
 * 
 * <p>
 * This class is thread safe. All state accessing methods must be invoked from
 * the {@link Realm#isCurrent() current realm}. Methods for adding and removing
 * listeners may be invoked from any thread.
 * </p>
 * 
 * @since 1.0
 * 
 */
public abstract class AbstractObservableList extends AbstractList implements
		IObservableList {
	/**
	 * Points to an instance of IListChangeListener or a Collection of
	 * IListChangeListener.  Access must be synchronized.
	 */
	private Object listChangeListeners;
	/**
	 * Points to an instance of IChangeListener or a Collection of
	 * IChangeListener.  Access must be synchronized.
	 */
	private Object changeListeners = null;
	/**
	 * Points to an instance of IChangeListener or a Collection of
	 * IStaleListener.  Access must be synchronized.