code: public static void iterateTreeNonBreakable (@Nonnull final IHCNode aNode,
                                                @Nonnull final IHCIteratorNonBreakableCallback aCallback)
    {
      ValueEnforcer.notNull (aNode, "node");
      ValueEnforcer.notNull (aCallback, "callback");
  
      // call callback on start node
      final ICommonsList <IHCNode> aParentNodes = new CommonsArrayList <> ();
      final ICommonsList <IHCNode> aNodes = new CommonsArrayList <> ();
      aParentNodes.add (null);
      aNodes.add (aNode);
      _iterateTreeNonBreakable (aParentNodes, aNodes, aCallback);
    }
docs: Recursively iterate the node and all child nodes of the passed node. The
  difference to
  {@link #iterateChildrenNonBreakable(IHCNode, IHCIteratorNonBreakableCallback)}
  is, that the callback is also invoked on the passed node.
  
  @param aNode
  The node to be iterated.
  @param aCallback
  The callback to be invoked on every child