02 Feb 2021 02:04:51 UTC
- Distribution: Tree-Simple-VisitorFactory
- Module version: 0.16
- Source (raw)
- Browse (raw)
- How to Contribute
- Repository (git clone)
- Testers (1629 / 0 / 0)
- KwaliteeBus factor: 1
- 96.01% Coverage
- License: perl_5
- Activity24 month
- Download (40.28KB)
- MetaCPAN Explorer
- Subscribe to distribution
- This version
- Latest version
- TO DO
- CODE COVERAGE
- SEE ALSO
- COPYRIGHT AND LICENSE
Tree::Simple::Visitor::LoadClassHierarchy - A Visitor for loading class hierarchies into a Tree::Simple hierarchy
use Tree::Simple::Visitor::LoadClassHierarchy; # create an visitor my $visitor = Tree::Simple::Visitor::LoadClassHierarchy->new(); # set class as an instance, or $visitor->setClass($class); # as a package name $visitor->setClass("My::Class"); # pass our visitor to the tree $tree->accept($visitor); # the $tree now mirrors the inheritance hierarchy of the $class
This visitor will traverse a class's inheritance hierarchy (through the @ISA arrays) and create a Tree::Simple hierarchy which mirrors it.
There are no arguments to the constructor the object will be in its default state. You can use the
setNodeFiltermethod to customize its behavior.
- includeTrunk ($boolean)
$booleanvalue to true (
1) will cause the node value of the
$treeobject passed into
visitto be set with the root value found in the class hierarchy. Setting it to false (
0), or not setting it, will result in the first value in the class hierarchy creating a new node level.
- includeMethods ($boolean)
$booleanvalue to true (
1) will cause methods to be added as a children of the class node. Setting it to false (
0), or not setting it, will result in this not happening.
NOTE: Methods are sorted ascii-betically before they are added to the tree. This allows a more predictable hierarchy.
- setClass ($class)
$classshould be either a class name or an instance, it is then used as the root from which to determine the class hierarchy.
- setNodeFilter ($filter_function)
This method accepts a CODE reference as its
$filter_functionargument and throws an exception if it is not a code reference. This code reference is used to filter the tree nodes as they are created, the
$filter_functionis passed the node value extracted from the hash prior to it being inserted into the tree being built. The
$filter_functionis expected to return the value desired for inclusion into the tree.
- visit ($tree)
This is the method that is used by Tree::Simple's
acceptmethod. It can also be used on its own, it requires the
$treeargument to be a Tree::Simple object (or derived from a Tree::Simple object), and will throw and exception otherwise.
$treeargument which is passed to
visitmust be a leaf node. This is because this Visitor will create all the sub-nodes for this tree. If the tree is not a leaf, an exception is thrown. We do not require the tree to be a root though, and this Visitor will not affect any nodes above the
- Improve the
I am not sure the tree this creates is the optimal tree for this situation. It is sufficient for now, until I have more of an actual need for this functionality.
This would traverse the full symbol tables and produce a detailed tree of everything it finds. This takes a lot more work, and as I have no current need for it, it remains in the TO DO list.
Bugs should be reported via the CPAN bug tracker at
See the CODE COVERAGE section in Tree::Simple::VisitorFactory for more information.
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.
stevan little, <email@example.com>
Copyright 2004, 2005 by Infinity Interactive, Inc.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Module Install Instructions
To install Tree::Simple::VisitorFactory, copy and paste the appropriate command in to your terminal.
perl -MCPAN -e shell install Tree::Simple::VisitorFactory
For more information on module installation, please visit the detailed CPAN module installation guide.