Bug 175418 [DataBinding] TreePath moved to internal package
In M5 TreePath moved from org.eclipse.core.databinding.observable.tree.TreePath to org.eclipse.core.internal.databinding.observable.tree.TreePath Non Internal Public interfaces such as: org.eclipse.core.databinding.observable.tree.IOrderedTreeProvider and org.eclipse.core.databinding.observable.tree.IUnorderedTreeProvider depend on this class.
bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/viewers/LeafNodesSet.java
/**
	 * Sets the root of the tree to the given element.
	 * 
	 * @param input
	 *            new root of the tree
	 */
	public void setInput(Object input) {
		Set removals = Collections.EMPTY_SET;
		Set additions = Collections.EMPTY_SET;
		if (this.input != null) {
			removals = Collections.singleton(this.input);
		} else if (input != null) {
			additions = Collections.singleton(input);
		}
		this.input = input;
		processDiff(TreePath.EMPTY, Diffs.createSetDiff(additions, removals));
	}
	/**
	 * Called when an element is removed from the tree. The given HashSet will
	 * be filled in with all removed leaf nodes.
	 * 
	 * @param treePath
	 * @param removals
	 */
	private void elementRemoved(TreePath treePath, Set removals) {
		NodeInfo newNode = (NodeInfo) mapElementsOntoNodeInfo.get(treePath);
		if (newNode != null) {
			newNode = new NodeInfo(treePath);
			newNode.count--;
			if (newNode.count == 0) {