Bug 126839 [DataBinding] IObservable refactoring
bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/beans/JavaBeanTree.java
Class current = o.getClass();
		Class[] list = modelDescription.getTypes();		
		for (int i = 0; i < list.length; i++) {
			if (list[i].isAssignableFrom(current)) {
				
				if (leafClass==null) {
					leafClass=list[i];
				} else
					if (leafClass.isAssignableFrom(list[i])) {
						leafClass=list[i];
					} 
			}
		}
		return leafClass;
	}
		
	private Method[] getInvocationMethods(Class clazz, int methodType) {
		if (clazz==null) {
			return null;
		}
		String[] childrenProperties = modelDescription
				.getChildrenProperties(clazz);
		if (childrenProperties == null || childrenProperties.length == 0) {
			return null;
		}
		
		PropertyHelper[] properties = (PropertyHelper[]) descriptors.get(clazz);
		if (properties == null) {
			List newpProperties = new ArrayList();