public NodeList getDescendants(Node parentNode) {
NodeList descendants = new NodeList();
descendants.add(parentNode);
for (NodeCursor nc = getHierarchyManager().getChildren(parentNode); nc.ok(); nc.next()) {
descendants.addAll(getDescendants(nc.node()));
}
return descendants;
}