Ausführliche Beschreibung | This module is a fully object-oriented implementation of a simple
n-ary tree. It is built upon the concept of parent-child
relationships, so therefore every Tree::Simple object has both a
parent and a set of children (who themselves may have children, and so
on). Every Tree::Simple object also has siblings, as they are just the
children of their immediate parent.
.
It can be used to model hierarchal information such as a file-system,
the organizational structure of a company, an object inheritance
hierarchy, versioned files from a version control system or even an
abstract syntax tree for use in a parser. It makes no assumptions as
to your intended usage, but instead simply provides the structure and
means of accessing and traversing said structure.
.
This module uses exceptions and a minimal Design By Contract
style. All method arguments are required unless specified in the
documentation, if a required argument is not defined an exception will
usually be thrown. Many arguments are also required to be of a
specific type, for instance the $parent argument to the constructor
must be a Tree::Simple object or an object derived from Tree::Simple,
otherwise an exception is thrown. This may seems harsh to some, but
this allows me to have the confidence that my code works as I intend,
and for you to enjoy the same level of confidence when using this
module. Note however that this module does not use any Exception or
Error module, the exceptions are just strings thrown with die.
|