Bug 126839 [DataBinding] IObservable refactoring
bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/TreeViewerUpdatableTree.java
element = children.get(index);
					}
				}
			}
		}
		return element;
	}
	public Object[] getElements(Object parentElement) {
		if (hasChildren(parentElement)) {
			TreeNode parentNode = getTreeNode(parentElement);
			
			List children = parentNode==null? null : parentNode.getChildren();
			return children==null? Collections.EMPTY_LIST.toArray():children.toArray();
		}
		return Collections.EMPTY_LIST.toArray();
	}
	/**
	 * This method will drive <code>ChangeElement.VIRTUAL</code> if no
	 * childrent are set.
	 *  
	 * @param element
	 * @return true if element has children, false if not
	 */
	public boolean hasChildren(final Object element) {
		TreeNode node = getTreeNode(element);	
		if (node==null) {
			return false;
		}
		boolean have = node.getChildren()!=null && node.getChildren().size()>0;
		if (!have && !updatingVirtual && !node.isRequestedChildren()) {