Bug 126839 [DataBinding] IObservable refactoring
bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/provisional/databinding/beans/BeanUpdatableFactory.java
import org.eclipse.jface.internal.provisional.databinding.IReadableList;
import org.eclipse.jface.internal.provisional.databinding.IReadableSet;
import org.eclipse.jface.internal.provisional.databinding.ITree;
import org.eclipse.jface.internal.provisional.databinding.IUpdatable;
import org.eclipse.jface.internal.provisional.databinding.IUpdatableFactory;
import org.eclipse.jface.internal.provisional.databinding.Property;
import org.eclipse.jface.internal.provisional.databinding.TreeModelDescription;
import org.eclipse.jface.internal.provisional.databinding.updatables.ListToSetAdapter;
/**
 * A factory for creating updatable objects for properties of plain Java objects
 * with JavaBeans-style notification.
 * 
 * This factory supports the following description objects:
 * <ul>
 * <li>org.eclipse.jface.internal.provisional.databinding.PropertyDescription:
 * <ul>
 * <li>Returns an updatable value representing the specified value property of
 * the given object, if {@link Property#isCollectionProperty()}
 * returns false</li>
 * <li>Returns an updatable collection representing the specified collection
 * property of the given object, if
 * {@link Property#isCollectionProperty()} returns false</li>
 * </ul>
 * </li>
 * </ul>
 * 
 * @since 3.2
 * 
 */
final public class BeanUpdatableFactory implements IUpdatableFactory {