Bug 127861 [DataBinding] Mark API provisional
bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/CollectionBinding.java
if ((changeEvent.getChangeType() &  (ChangeEvent.CHANGE | ChangeEvent.ADD | ChangeEvent.ADD_MANY | ChangeEvent.REMOVE | ChangeEvent.REMOVE_MANY)) != 0) {
				update(target, model, changeEvent);
			}
		}
	};
	/**
	 * Update the collection from the event.
	 * 
	 * @param needsUpdate
	 *            IUpdatable to be updated
	 * @param changeEvent
	 */
	private void update(IUpdatableCollection needsUpdate, IUpdatableCollection source, ChangeEvent changeEvent) {
		int row = changeEvent.getPosition();
		if (row == -1) {
			
			copyContents(changeEvent, needsUpdate, source);
		} else {
			try {
				updating = true;
				int copyType = BindingEvent.EVENT_COPY_TO_MODEL;
				if (needsUpdate == target) {
					copyType = BindingEvent.EVENT_COPY_TO_TARGET;
				}
				BindingEvent e = new BindingEvent(changeEvent, copyType, BindingEvent.PIPELINE_AFTER_GET);
				e.originalValue = changeEvent.getNewValue();
				if (failure(errMsg(fireBindingEvent(e)))) {
					return;
				}
				if (changeEvent.getChangeType() == ChangeEvent.CHANGE) {