public final void endNode() {
   endNodeInternally();
   final Object node = nodeStack.pop();
   if (nodeStack.size() == 0) {
     result.add(node);
   }
 }