The TreeNode has to implement the abstract tree node with all the public methods of course
The addChildNodes methods now return a list with all the successfully added nodes and not just a counter any more
Also clear the parent node of a removed node
For the node replacement, remove all children first and then the old node (tree upwards)
New method getRootNode to get the tree head
A lot in the tree code changed. Now, all methods are public in general (GenericTreeNode) and can be used as protected with a wrapper (GenericTreeNodeWrapper). Also, everything is based on the AbstractGenericTreeNode
A loooot of changes. The main change is a pretty much complete rewrite of the tree utility classes. Also, most of my collection classes have been replaced with google guava classes (MultiMaps).