Data::Grove::Parent
Data::Grove::Parent(3User Contributed Perl DocumentatioData::Grove::Parent(3)
NAME
Data::Grove::Parent - provide parent properties to Data::Grove objects
SYNOPSIS
use Data::Grove::Parent;
$root = $object->root;
$rootpath = $object->rootpath;
$tied = $object->add_magic([ $parent ]);
$node = Data::Grove::Parent->new($hash [, $parent]);
$node_list = Data::Grove::ParentList->new($array [, $parent]);
DESCRIPTION
Data::Grove::Parent is an extension to Data::Grove that adds ‘"Par-
ent"’ and ‘"Raw"’ properties to Data::Grove objects and methods for
returning the root node of a grove, a list of nodes between and
including the root node and the current node, and a method that cre-
ates parented nodes.
Data::Grove::Parent works by creating a Perl ‘‘tied’’ object that con-
tains a parent reference (‘"Parent"’) and a reference to the original
Data::Grove object (‘"Raw"’). Tying-magic is used so that every time
you reference the Data::Grove::Parent object it actually references
the underlying raw object.
When you retrieve a list or a property of the Raw object,
Data::Grove::Parent automatically adds magic to the returned list or
node. This means you only call ‘add_magic()’ once to create the first
Data::Grove::Parent object and then use the grove objects like you
normally would.
The most obvious use of this is so you don’t have to call a ‘"delete"’
method when you want to release a grove or part of a grove; since
Data::Grove and Data::Grove::Parent objects have no cyclic references,
Perl can garbage collect them normally.
A secondary use is to allow you to reuse grove or property set frag-
ments in multiple trees. WARNING: Data::Grove currently does not pro-
tect you from creating your own cyclic references! This could lead to
infinite loops if you don’t take care to avoid them.
METHODS
$object->root()
$object->rootpath()
‘"root()"’ returns the root node if ‘$object’ is a
‘"Data::Grove::Parent"’ object. ‘"rootpath()"’ returns an array
of all the nodes between and including the root node and
‘$object’.
$tied = $object->add_magic([ $parent ])
‘"add_magic()"’ returns a "Data::Grove::Parent" object with
‘$object’ as it’s ‘"Raw"’ object. If ‘$parent’ is given, that
becomes the tied object’s parent object.
AUTHOR
Ken MacLeod, ken@bitsko.slc.ut.us
SEE ALSO
perl(1), Data::Grove(3)
perl v5.8.5 2000-02-22 Data::Grove::Parent(3)