logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Tree::Simple::Visitor::BreadthFirstTraversal - A Visitor for breadth-first traversal a Tree::Simple

Author

       stevan little, <stevan@iinteractive.com>

Code Coverage

       See the CODECOVERAGE section in Tree::Simple::VisitorFactory for more information.

Description

       This implements a breadth-first traversal of a Tree::Simple hierarchy. This can be an alternative to the
       built in depth-first traversal of the Tree::Simple "traverse" method.

Methods

new There  are  no  arguments to the constructor the object will be in its default state. You can use the
           "setNodeFilter" method to customize its behavior.

       includeTrunk($boolean)
           Based upon the value of $boolean, this will tell the visitor to include the trunk of the tree in  the
           traversal as well.

       setNodeFilter($filter_function)
           This  method  accepts a CODE reference as its $filter_function argument and throws an exception if it
           is not a code reference. This code reference is used to filter the tree nodes as they are  collected.
           This  can  be  used  to  customize output, or to gather specific information from a more complex tree
           node. The filter function should accept a single argument, which is the current Tree::Simple object.

       visit($tree)
           This is the method that is used by the Tree::Simple "accept" method. It can also be used on its  own,
           it  requires  the $tree argument to be a Tree::Simple object (or derived from a Tree::Simple object),
           and will throw and exception otherwise.

       getResults
           This method returns the accumulated results of the application of the node filter to the tree.

Name

       Tree::Simple::Visitor::BreadthFirstTraversal - A Visitor for breadth-first traversal a Tree::Simple
       hierarchy

Repository

       <https://github.com/ronsavage/Tree-Simple-VisitorFactory>

See Also

       These Visitor classes are all subclasses of Tree::Simple::Visitor, which can be found in the Tree::Simple
       module, you should refer to that module for more information.

Support

       Bugs should be reported via the CPAN bug tracker at

       <https://github.com/ronsavage/Tree-Simple-VisitorFactory/issues>

Synopsis

         use Tree::Simple::Visitor::BreadthFirstTraversal;

         # create an visitor
         my $visitor = Tree::Simple::Visitor::BreadthFirstTraversal->new();

         # pass our visitor to the tree
         $tree->accept($visitor);

         # print our results
         print join ", " => $visitor->getResults();

         # this will print this:
         #   1, 2, 3, 1.1, 1.2, 2.1, 3.1, 1.1.1
         # assuming your tree is like this:
         #   1
         #     1.1
         #       1.1.1
         #     1.2
         #   2
         #     2.1
         #   3
         #     3.1

See Also