Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Tree::Simple::Visitor:UsermContributedTPee::Simple::Visitor::FromNestedHash(3)

NAME
       Tree::Simple::Visitor::FromNestedHash - A Visitor for creating
       Tree::Simple objects from nested	hash trees.

SYNOPSIS
	 use Tree::Simple::Visitor::FromNestedHash;

	 my $visitor = Tree::Simple::Visitor::FromNestedHash->new();

	 # given this nested hash tree
	 my $hash_tree = {
		       Root => {
			       Child1 => {
				       GrandChild1 => {},
				       GrandChild2 => {}
				       },
			       Child2 => {}
			       }
		       };

	 # set the array tree we
	 # are going to	convert
	 $visitor->setHashTree($hash_tree);

	 $tree->accept($visitor);

	 # this	then creates the equivalent Tree::Simple object:
	 # Tree::Simple->new("Root")
	 #     ->addChildren(
	 #	   Tree::Simple->new("Child1")
	 #	       ->addChildren(
	 #		   Tree::Simple->new("GrandChild1"),
	 #		   Tree::Simple->new("GrandChild2")
	 #	       ),
	 #	   Tree::Simple->new("Child2"),
	 #     );

DESCRIPTION
       Given a tree constructed	from nested hashes, this Visitor will create
       the equivalent Tree::Simple hierarchy.

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

       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
	   created, the	$filter_function is passed the node value extracted
	   from	the hash prior to it being inserted into the tree being	built.
	   The $filter_function	is expected to return the value	desired	for
	   inclusion into the tree.

       setHashTree ($hash_tree)
	   This	method is used to set the $hash_tree that our Tree::Simple
	   hierarchy will be constructed from. It must be in the following
	   form:

	     {
	       Root => {
		     Child1 => {
			     GrandChild1 => {},
			     GrandChild2 => {}
			     },
		     Child2 => {}
		     }
	     }

	   Basically each key in the hash is considered	a node,	values are
	   ignored unless it is	a hash reference with at least one key in it,
	   in which case it is interpreted as containing the children of the
	   node	created	from the key.

	   The tree is validated prior being accepted, if it fails validation
	   an exception	will be	thrown.	The rules are as follows;

	   The hash tree must not be empty.
	       It makes	not sense to create a tree out of nothing, so it is
	       assumed that this is a sign of something	wrong.

	   The hash tree must be a single rooted tree.
	       The hash	tree should have only one key in the first level. If
	       it has more than	one, then it is	not a single rooted tree.

	   NOTE: Hash keys are sorted ascii-betically before being added to
	   the tree, this results in a somewhat	more predictable hierarchy.

       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.

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

SUPPORT
       Bugs should be reported via the CPAN bug	tracker	at

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

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

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.

AUTHOR
       stevan little, <stevan@iinteractive.com>

COPYRIGHT AND LICENSE
       Copyright 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.

perl v5.32.1			  2021Tree::Simple::Visitor::FromNestedHash(3)

NAME | SYNOPSIS | DESCRIPTION | METHODS | Repository | SUPPORT | CODE COVERAGE | SEE ALSO | AUTHOR | COPYRIGHT AND LICENSE

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Tree::Simple::Visitor::FromNestedHash&sektion=3&manpath=FreeBSD+13.1-RELEASE+and+Ports>

home | help