|
NAMETree::Simple::VisitorFactory - A factory object for dispensing Visitor objectsSYNOPSISuse Tree::Simple::VisitorFactory; my $tf = Tree::Simple::VisitorFactory->new(); my $visitor = $tf->get("PathToRoot"); # or call it as a class method my $visitor = Tree::Simple::VisitorFactory->getVisitor("PathToRoot"); DESCRIPTIONThis object is really just a factory for dispensing Tree::Simple::Visitor::* objects. It is not required to use this package in order to use all the Visitors, it is just a somewhat convenient way to avoid having to type their long class names.I considered making this a Singleton, but I did not because I thought that some people might not want that. I know that I am very picky about using Singletons, especially in multiprocess environments like mod_perl, so I implemented the smallest instance I knew how to, and made sure all other methods could be called as class methods too. METHODS
AVAILABLE VISITORSThis distribution provides a number of Visitor objects which can be loaded just by giving their name. Below is a description of the available Visitors and a sort description of what they do. I have attempted to classify the Visitors into groups which are related to their use.This factory will load any module contained inside the Tree::Simple::Visitor::* namespace. Given a name, it will attempt to "require" the module Tree::Simple::Visitor::<Name>.pm. This allows others to create Visitors which can be accessed with this factory, without needed to include them in this distribution. Search/Path Related Visitors
Traversal Visitors
FileSystem Visitors
Conversion Visitors
Reflective Visitors
Misc. Visitors
BUGSNone that I am aware of. Of course, if you find a bug, let me know, and I will be sure to fix it.CODE COVERAGEI use Devel::Cover to test the code coverage of my tests, below is the Devel::Cover report on this module test suite.-------------------------------------------- ------ ------ ------ ------ ------ ------ ------ File stmt branch cond sub pod time total -------------------------------------------- ------ ------ ------ ------ ------ ------ ------ Tree/Simple/VisitorFactory.pm 100.0 100.0 n/a 100.0 100.0 0.4 100.0 Tree/Simple/Visitor/BreadthFirstTraversal.pm 100.0 100.0 66.7 100.0 100.0 2.5 96.3 Tree/Simple/Visitor/PostOrderTraversal.pm 100.0 100.0 77.8 100.0 100.0 1.7 96.3 Tree/Simple/Visitor/PreOrderTraversal.pm 100.0 n/a 33.3 100.0 100.0 0.7 90.5 Tree/Simple/Visitor/CreateDirectoryTree.pm 100.0 85.7 86.7 100.0 100.0 3.4 95.8 Tree/Simple/Visitor/LoadClassHierarchy.pm 100.0 73.1 33.3 100.0 100.0 4.9 89.2 Tree/Simple/Visitor/LoadDirectoryTree.pm 100.0 89.3 85.2 100.0 100.0 26.1 94.7 Tree/Simple/Visitor/FindByNodeValue.pm 100.0 100.0 86.7 100.0 100.0 3.1 98.3 Tree/Simple/Visitor/FindByPath.pm 100.0 100.0 66.7 100.0 100.0 1.2 97.9 Tree/Simple/Visitor/FindByUID.pm 100.0 100.0 86.7 100.0 100.0 2.9 98.3 Tree/Simple/Visitor/GetAllDescendents.pm 100.0 100.0 77.8 100.0 100.0 2.3 97.1 Tree/Simple/Visitor/PathToRoot.pm 100.0 87.5 75.0 100.0 100.0 0.8 95.1 Tree/Simple/Visitor/Sort.pm 100.0 100.0 77.8 100.0 100.0 8.8 98.1 Tree/Simple/Visitor/ToNestedArray.pm 100.0 100.0 66.7 100.0 100.0 1.5 96.5 Tree/Simple/Visitor/ToNestedHash.pm 100.0 100.0 66.7 100.0 100.0 1.4 96.5 Tree/Simple/Visitor/FromNestedArray.pm 100.0 94.4 81.8 100.0 100.0 8.1 96.6 Tree/Simple/Visitor/FromNestedHash.pm 100.0 91.7 77.8 100.0 100.0 4.8 95.9 Tree/Simple/Visitor/VariableDepthClone.pm 100.0 100.0 66.7 100.0 100.0 25.5 97.3 -------------------------------------------- ------ ------ ------ ------ ------ ------ ------ Total 100.0 93.8 76.3 100.0 100.0 100.0 96.1 -------------------------------------------- ------ ------ ------ ------ ------ ------ ------ SEE ALSOThese Visitor classes are meant to work with Tree::Simple hierarchies, you should refer to that module for more information.Repository<https://github.com/ronsavage/Tree-Simple-VisitorFactory>SUPPORTBugs should be reported via the CPAN bug tracker at<https://github.com/ronsavage/Tree-Simple-VisitorFactory/issues> AUTHORstevan little, <stevan@iinteractive.com>Ron Savage <ron@savage.net.au> has taken over maintenance as of V 0.11. COPYRIGHT AND LICENSECopyright 2004, 2005 by Infinity Interactive, Inc.<http://www.iinteractive.com> This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Visit the GSP FreeBSD Man Page Interface. |