Class AbstractBroadFirstTreeIterator<P extends IterableNode<? extends C>,​C extends IterableNode<?>>

  • Type Parameters:
    P - is the type of the parent nodes.
    C - is the type of the child nodes.
    All Implemented Interfaces:
    Iterator<P>
    Direct Known Subclasses:
    BroadFirstTreeIterator

    public abstract class AbstractBroadFirstTreeIterator<P extends IterableNode<? extends C>,​C extends IterableNode<?>>
    extends Object
    implements Iterator<P>
    This class is an iterator on a tree.

    The node A is treated before its children.

    Since:
    13.0
    Version:
    17.0 2020-01-04 14:41:41
    Author:
    Stéphane GALLAND
    Maven Group Id:
    org.arakhne.afc.core
    Maven Artifact Id:
    mathtree
    • Constructor Detail

      • AbstractBroadFirstTreeIterator

        public AbstractBroadFirstTreeIterator​(P node)
        Create an iterator on the given node.
        Parameters:
        node - is the node to iterate.
    • Method Detail

      • setBroadFirstIterationListener

        public void setBroadFirstIterationListener​(BroadFirstIterationListener listener)
        Set the listener invoked when a level of the tree has been treated.
        Parameters:
        listener - the listener.
      • getBroadFirstIterationListener

        @Pure
        public BroadFirstIterationListener getBroadFirstIterationListener()
        Replies the listener invoked when a level of the tree has been treated.
        Returns:
        the listener
      • onBoardFirstIterationLevelFinished

        protected void onBoardFirstIterationLevelFinished()
        Invoked when a row of tree nodes was completely replied by the iterator.
      • onAfterChildNodes

        protected void onAfterChildNodes​(P node,
                                         int childCount)
        Invoked after all the children of a node were memorized by the iterator.
        Parameters:
        node - is the node for which all the child nodes have been memorized.
        childCount - is the number of child nodes that are memorized by the iterator.
      • onBeforeChildNodes

        protected void onBeforeChildNodes​(P node)
        Invoked before all the children of a node were memorized by the iterator.
        Parameters:
        node - is the node for which all the child nodes will be memorized.
      • toTraversableChild

        @Pure
        protected abstract P toTraversableChild​(P parent,
                                                C child,
                                                int childIndex,
                                                int notNullChildIndex)
        Replies an object to type N which is corresponding to the given child node retreived from the given parent node.
        Parameters:
        parent - is the node from which the child node was retreived.
        child - is the child node to test.
        childIndex - is the position of the child node in its parent. childIndex is always greater or equal to notNullChildIndex.
        notNullChildIndex - is the position of the child node in the list of the not-null nodes of its parent. notNullChildIndex is always lower or equal to childIndex.
        Returns:
        the traversable node, or null if the node is not traversable.