manpagez: man pages & more
man Data::Grove::Parent(3)
Home | html | info | man
Data::Grove::Parent(3)                       User Contributed Perl Documentation





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 `"Parent"'
       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 creates parented nodes.

       Data::Grove::Parent works by creating a Perl ``tied'' object that
       contains 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 fragments
       in multiple trees.  WARNING: Data::Grove currently does not protect 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.34.0                       2003-10-21             Data::Grove::Parent(3)

libxml-perl 0.80.0 - Generated Sat Aug 20 11:07:50 CDT 2022
© manpagez.com 2000-2025
Individual documents may contain additional copyright information.