Bug 127861 [DataBinding] Mark API provisional
bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/NestedUpdatableCellProvider.java
};
		outerUpdatableValue.addChangeListener(outerChangeListener);
	}
	private void updateInnerUpdatable(IUpdatableValue outerUpdatableValue) {
		currentOuterValue = outerUpdatableValue.getValue();
		if (innerUpdatableCellProvider != null) {
			innerUpdatableCellProvider.removeChangeListener(innerCellChangeListener);
			innerUpdatableCellProvider.getReadableSet().removeChangeListener(innerSetChangeListener);
			innerUpdatableCellProvider.dispose();
		}
		if (currentOuterValue == null) {
			innerUpdatableCellProvider = null;
		} else {
			this.innerUpdatableCellProvider = (IUpdatableCellProvider) databindingContext
					.createUpdatable(new TableModelDescription(new Property(
							currentOuterValue, tableModelDescription.getCollectionProperty().getPropertyID()), tableModelDescription.getColumnIDs()));
			innerUpdatableCellProvider.addChangeListener(innerCellChangeListener);
			innerUpdatableCellProvider.getReadableSet().addChangeListener(innerSetChangeListener);
		}
	}
	public void dispose() {
		super.dispose();
		if (innerUpdatableCellProvider != null) {
			innerUpdatableCellProvider.dispose();
		}
		currentOuterValue = null;
		databindingContext = null;
		tableModelDescription = null;
		innerUpdatableCellProvider = null;
		innerCellChangeListener = null;