code: private void removeUseless() {
      Set<Map.Entry<String, PropertyNode>> entries = _children.entrySet();
      for (Iterator<Map.Entry<String, PropertyNode>> it = entries.iterator(); it.hasNext(); ) {
        Map.Entry<String, PropertyNode> entry = it.next();
        PropertyNode child = entry.getValue();
        child.removeUseless();
        if (child.isUseless()) {
          it.remove();
        }
      }
    }
docs: removes all useless nodes in the tree represented by this node as a root