private void move(final ExplorerTreeNode nodeToMove,
                      final ExplorerTreeNode newParent,
                      final int position,
                      final ExplorerTreeNode sibling) {
        assertCopyOrMoveParameters(nodeToMove, newParent, position, sibling);
        disconnectSubTree(nodeToMove);
        if (newParent != null || sibling != null) {
            List<ExplorerTreePath> childPaths = getPathsIntoSubtree(nodeToMove);
            connectSubTree(newParent, position, sibling, childPaths);
        }
    }
Get the root node containing a particular node, or the node itself if it is a root node.
stroom-explorer/stroom-explorer-impl-db/src/main/java/stroom/explorer/impl/db/ExplorerTreeDaoImpl.java