Bug 127861 [DataBinding] Mark API provisional
bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/NestedUpdatableCollection.java
private Class elementType;
	/**
	 * @param databindingContext
	 * @param outerUpdatableValue
	 * @param feature
	 * @param elementType 
	 */
	public NestedUpdatableCollection(IDataBindingContext databindingContext,
			final IUpdatableValue outerUpdatableValue, Object feature,
			Class elementType) {
		this.databindingContext = databindingContext;
		this.feature = feature;
		this.elementType = elementType;
		updateInnerUpdatableValue(outerUpdatableValue);
		IChangeListener outerChangeListener = new IChangeListener() {
			public void handleChange(ChangeEvent changeEvent) {
				if ((changeEvent.getChangeType() &  (ChangeEvent.CHANGE | ChangeEvent.ADD | ChangeEvent.ADD_MANY | ChangeEvent.REMOVE | ChangeEvent.REMOVE_MANY)) != 0) {
					updateInnerUpdatableValue(outerUpdatableValue);
					fireChangeEvent(ChangeEvent.CHANGE, null, null);
				}
			}
		};
		outerUpdatableValue.addChangeListener(outerChangeListener);
	}
	private void updateInnerUpdatableValue(IUpdatableValue outerUpdatableValue) {
		currentOuterValue = outerUpdatableValue.getValue();
		if (innerUpdatableCollection != null) {
			innerUpdatableCollection.removeChangeListener(innerChangeListener);
			innerUpdatableCollection.dispose();
		}