NAME
Repository::Simple::Node - Repository nodes
SYNOPSIS
The following code can be found in ex/print_nodes.pl:
use Repository::Simple;
sub print_node;
my $repository = Repository::Simple->attach(
FileSystem => root => $ARGV[0],
);
my $node = $repository->root_node;
print_node($node, 0);
sub print_node {
my ($node, $depth) = @_;
print "\t" x $depth, " * ", $node->name, "\n";
for my $child ($node->nodes) {
print_node($child, $depth + 1);
}
for my $p ($node->properties) {
print "\t" x $depth, "\t * ", $p->name, " = ", $p->value, "\n";
}
}
DESCRIPTION
Each instance of this class describes a node in a repository. A node is basically a unit of information described by a path.
To retrieve an instance of this type, you never construct this object directly. Instead, use one of the node access methods in Repository::Simple and Repository::Simple::Node:
my $root = $repository->root_node;
my @children = $root->nodes;
METHODS
- $repository = $node->repository
-
Returns the Repository::Simple object to which this node belongs.
- $node = $type->parent
-
Fetch the node that is the parent of this node. This will always return a node, even for the root node. The root node is the parent of itself.
If you consider time travel, you may wish to stop yourself before you think too hard on the implications and gross yourself out.
- $name = $node->name
-
Fetch the name of the node. This will always be the last element of the node's path. That is, if the path of the node is:
/foo/bar/baz
then the name of the node is:
baz
In this API it has been decided that the root node will be represented by the string "/" to match with the normal Unix practice of naming the root tree object. The root node must have this name and no other node may have this name.
- $path = $node->path
-
This returns the full path from the root of the tree to this node.
- @nodes = $node->nodes
-
Returns all the child nodes of this node.
- @properties = $node->properties
-
Returns all the proeprties of this node.
- $type = $node->type
-
Returns the Repository::Simple::Type::Node object describing the node.
AUTHOR
Andrew Sterling Hanenkamp, <hanenkamp@cpan.org>
LICENSE AND COPYRIGHT
Copyright 2005 Andrew Sterling Hanenkamp <hanenkamp@cpan.org>. All Rights Reserved.
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See perlartistic.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.