void () { MAIN_LOOP: while (!myCurrentNodePath.isEmpty()) { final PathElement<T> element = myCurrentNodePath.peek(); final Iterator<String> childrenIterator = element.iterator; final Node<T> currentNode = element.node; while (childrenIterator.hasNext()) { final String name = childrenIterator.next(); final Node<T> childNode = currentNode.myChildren.get(name); if (pushNode(name, childNode)) { continue MAIN_LOOP; } } if (!currentNode.mappingExists()) { popNode(); } else { break; } } }