Bug 126839 [DataBinding] IObservable refactoring
bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/provisional/databinding/beans/NestedUpdatableFactory.java
}
			return null;
		} else if (description instanceof TableModelDescription) {
			TableModelDescription tableModelDescription = (TableModelDescription) description;
			Object master = tableModelDescription.getCollectionProperty().getObject();
			if(master instanceof IUpdatableValue) {
				return new NestedUpdatableCellProvider(bindingContext,(IUpdatableValue) master,tableModelDescription);
			}
		}
		return null;
	}
	
	private IUpdatable createNestedUpdatable(NestedProperty nestedProperty, IDataBindingContext bindingContext) {
		IUpdatable lastChildUpdatable = null;
		Object targetObject = nestedProperty.getObject();
		if (nestedProperty.getPrototypeClass() != null) {
			Class targetClazz = nestedProperty.getPrototypeClass();
			StringTokenizer tokenizer = new StringTokenizer((String) nestedProperty.getPropertyID(), "."); 
			while (tokenizer.hasMoreElements()) {
				String nextDesc = (String) tokenizer.nextElement();
				try {
					BeanInfo beanInfo = Introspector.getBeanInfo(targetClazz);
					PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
					Class discoveredClazz = null;
					for (int i = 0; i < propertyDescriptors.length; i++) {
						PropertyDescriptor descriptor = propertyDescriptors[i];
						if (descriptor.getName().equals(
								nextDesc)) {
							discoveredClazz = descriptor.getPropertyType();
							break;