Bug 126839 [DataBinding] IObservable refactoring
bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/beans/JavaBeanTree.java
Method[] getters = getReadMethods(parentElement);
		if (getters==null) {
			return Collections.EMPTY_LIST.toArray();
		}
		
		List children = new ArrayList();
		
		try {
			for (int i = 0; i < getters.length; i++) {
				Object list = getters[i].invoke(parentElement, new Object[0]);
				if (list!=null) {
					if (getters[i].getReturnType().isArray()) {
						children.addAll(Arrays.asList((Object[])list));
					} else {
						children.addAll((Collection) getters[i].invoke(parentElement, new Object[0]));
					}
				}
			}
		} catch (IllegalArgumentException e) {
			throw new BindingException(e.getLocalizedMessage());	
		} catch (IllegalAccessException e) {
			throw new BindingException(e.getLocalizedMessage());			
		} catch (InvocationTargetException e) {
			throw new BindingException(e.getLocalizedMessage());			
		} 
		Object[] result = children.toArray();
		hookup(parentElement, result);
		trackChildren(parentElement, result);
		return result;