Provided by: libropkg-perl_0.4-1.1_all bug

NAME

       RoPkg::Rsync::Node

DESCRIPTION

       A node is a rsync module. A node is formed of zero or more atoms.

       Example:

        [debian]
          path    = /var/ftp/pub/mirrors/debian.org/
       #This comment will show on rsync -v
          comment = Debian Mirror
          list    = yes

       [debian] is the node. The node name is debian. The node has 4 atoms:

       *) param atom (path)
       *) comment atom (the comment)
       *) param atom (comment)
       *) param atom (list)

SYNOPSIS

        #!/usr/bin/perl

        use strict;
        use warnings;

        sub main {
          my $node = new RoPkg::Rsync::Node(node_name => 'debian');

          $node->AddParam('path', '/var/ftp/pub/mirrors/debian.org');
          $node->AddComment('#This comment will show on rsync -v');
          $node->AddParam('comment', 'Debian Mirror');
          $node->AddParam('list', 'yes');

          print $node->ToString();
        }

        main();

       The result is:

        [debian]
               path    = /var/ftp/pub/mirrors/debian.org
        #This comment will show on rsync -v
               comment = Debian Mirror
               list    = yes

METHODS

       All methods, throw the OutsideClass exception, if you use them as class methods.  Besides
       OutsideClass the methods are throwing other exceptions as well. Refer to each method
       documentation for more information.

   new(%hash)
       The constructor of the class. Expects a hash as parameter. At this time, the only valid
       option is node_name . Any other option will be discarded. The node_name is a required
       parameter. If is not defined, a Param::Missing exception will be raised.

       Example:

        my $node = new RoPkg::Rsync::Node(node_name => 'debian');

   Add(%atom_details)
       Add a new atom to the node. The atom details (type, name and value) are keys from the
       hash. All three parameters must be defined. There are 2 special cases: when the atom is a
       comment or a blank. In both cases, RoPkg::Rsync::Node generates a name for them. If the
       atom is a comment or a blank the returned value is the name of the atom. If the atom is a
       parameter, the total number of atoms for this node is returned.

       Example:

        $node->Add(
           type  => 'param',
           name  => 'path',
           value => '/var/ftp/pub/mirrors/debian.org',
         );

       The returned value is the total number of atoms for this node.

       Example:

        $node->Add(
           type  => 'comment',
           value => '#This comment will show on rsync -v',
         );

       The returned value is the name of the atom (the name is autogenerated).

       Exceptions:

       *) Param::Missing - $atom_details{type} is not defined
       *) Param::Wrong = $atom_details{name} or $atom_details{value} are not defined

   AddParam($pname, $pvalue)
       A wrapper around Add provided for comodity. See Add documentation for more details about
       the behaviour.

   AddComment($comment_value)
       A wrapper around Add provided for comodity. See Add documentation for more details about
       the behaviour.

   AddBlank($blank_value)
       A wrapper around Add provided for comodity. See Add documentation for more details about
       the behaviour.

   GetAtom(%atom_details)
       Returns a RoPkg::Rsync::Atom object based on parameters specified in %atom_details. The
       %atom_details fields can be: type, name and value. type and value must be specified.

       Exceptions:

       *) Param::Missing - type/name were not specified
       *) Param::Unknown - no objects were found

       Take note that only the first object who match the criterias is returned.

   GetParam($name)
       A wrapper around GetAtom provided for comodity. See GetAtom documentation for more details
       about the behaviour.

   GetComment($name)
       A wrapper around GetAtom provided for comodity. See GetAtom documentation for more details
       about the behaviour.

   GetBlank($name)
       A wrapper around GetAtom provided for comodity. See GetAtom documentation for more details
       about the behaviour.

   GetAll()
       Returns a array with all the atoms of the node. In scalar context returns the number of
       atoms.

   GetAtomsNo()
       Returns the number of atoms for this node.

   Has($atom)
       Returns 1 if the $atom object is already a atom for this node, 0 otherwise.

   Delete($atom_name)
       Removes the atom those name is $atom_name. Returns 1 on success (the atom was found and
       removed), 0 otherwise.

   Name($node_name)
       get/set method for node name. Using this method you can change the node name or find it.

   ToString($indent, $include_node_name)
       Returns the string representation of the node. If $indent is true, the atoms are indented.
       If $include_node_name is true, the node name will be included in the string.

       Example:

        $node = new RoPkg::Rsync::Node(node_name => 'debian');
        $node->AddParam('gid', 'users');

        print $node->ToString(0, 0),$/,
              $node->ToString(0, 1),$/,
              $node->ToString(1, 1),$/,
              $node->ToString(),$/;

       The result is:
        gid = users
        [debian]
        gid = users;
        [debian]
               gid = users
        [debian]
               gid = users

PREREQUISITES

       perl 5.008 (or later) is required. Besides perl, you must have the following:

       *) RoPkg::Exceptions
       *) Scalar::Util
       *) English

SEE ALSO

       RoPkg::Rsync::Atom RoPkg::Rsync::ConfFile RoPkg::Exceptions

AUTHOR

       Subredu Manuel <diablo@iasi.roedu.net>

LICENSE

       Copyright (C) 2005 Subredu Manuel.  All Rights Reserved.  This module is free software;
       you can redistribute it and/or modify it under the same terms as Perl itself.  The LICENSE
       file contains the full text of the license.