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
super(tree.getRealm());
		this.tree = tree;
		if (initialInput != null) {
			setInput(initialInput);
		}
	}
	private void processDiff(TreePath treePath, SetDiff diff) {
		Set removals = new HashSet();
		HashSet additions = new HashSet();
		for (Iterator iter = diff.getRemovals().iterator(); iter.hasNext();) {
			Object next = iter.next();
			elementRemoved(treePath.createChildPath(next), removals);
		}
		for (Iterator iter = diff.getAdditions().iterator(); iter.hasNext();) {
			Object next = iter.next();
			elementDiscovered(treePath.createChildPath(next), additions);
		}
		HashSet newRemovals = new HashSet();
		newRemovals.addAll(removals);
		newRemovals.removeAll(additions);
		HashSet newAdditions = new HashSet();
		newAdditions.addAll(additions);
		newAdditions.removeAll(removals);
		leafNodes.addAll(newAdditions);
		leafNodes.removeAll(newRemovals);
		if (!newAdditions.isEmpty() || !newRemovals.isEmpty()) {
			setStale(staleCount > 0);
			fireSetChange(Diffs.createSetDiff(newAdditions, newRemovals));
		}
	}