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
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import org.eclipse.core.databinding.observable.Diffs;
import org.eclipse.core.databinding.observable.IStaleListener;
import org.eclipse.core.databinding.observable.StaleEvent;
import org.eclipse.core.databinding.observable.set.AbstractObservableSet;
import org.eclipse.core.databinding.observable.set.IObservableSet;
import org.eclipse.core.databinding.observable.set.ISetChangeListener;
import org.eclipse.core.databinding.observable.set.SetChangeEvent;
import org.eclipse.core.databinding.observable.set.SetDiff;
import org.eclipse.core.databinding.observable.tree.IUnorderedTreeProvider;
import org.eclipse.core.internal.databinding.observable.tree.TreePath;
/**
 * This set consists of all leaf nodes from the given tree (that is, all nodes
 * for which ITreeProvider.createChildSet returns null).
 */
public class LeafNodesSet extends AbstractObservableSet {
	private HashSet leafNodes = new HashSet();
	private HashMap mapElementsOntoNodeInfo = new HashMap();
	private IUnorderedTreeProvider tree;
	private Object input;
	private int staleCount = 0;
	private class NodeInfo implements IStaleListener, ISetChangeListener {
		
		private int count;
		
		private TreePath treePath;