NAME
Config::HAProxy::Node - Abstract HAProxy configuration node
DESCRIPTION
The class Config::HAProxy::Node represents an abstract node in the HAProxy configuration parse tree. It serves as a base class for classes representing configuration tree, section, simple statement, comment and empty line.
CONSTRUCTOR
$obj = new Config::HAProxy::Node(%args);
Returns new object. %args can contain the following keys:
- kw
-
Configuration keyword (string),
- argv
-
Reference to the list of arguments.
- orig
-
Original text as read from the configuration file.
- locus
-
Locus (a Text::Locus object) where this statement occurred.
- parent
-
Parent node.
METHODS
kw, argv, orig, locus, parent
These methods return the corresponding field of the node. When called with an argument, they set the field prior to returning it. The argv method returns array of strings and takes as its argument a reference to the array of strings:
@a = $node->argv;
$node->argv([@a]);
index
Index (0-based) of this node in the parent node.
arg
$a = $node->arg($n)
Returns the $nth argument (0-based) from the argument list.
drop
$node->drop;
Removes this node and destroys it.
iterator
$itr = $node->iterator(@args);
Returns the iterator for this node. See Config::HAProxy::Iterator for a detailed discussion.
depth
$n = $node->depth;
Returns the depth of this node in the configuration tree. Depth is the number of parent nodes between the root of tree and this node. Top-level nodes have depth 0.
root
$root_node = $node->root;
Returns the root node of the parse tree this node belongs to.
as_string
$s = $node->as_string;
Returns canonical string representation of this node. The canonical representation consists of the keyword followed by arguments delimited with horizontal space characters.
ABSTRACT METHODS
Derived classes must overload at least one of the following methods:
is_root
True if the node is a root node, false otherwise.
is_section
True if the node represents a section (i.e. contains subnodes).
is_statement
True if the node is a simple statement.
is_empty
True if the node represents an empty line.
is_comment
True if the node represents a comment.
SEE ALSO
Config::HAProxy::Node::Comment, Config::HAProxy::Node::Empty, Config::HAProxy::Node::Root, Config::HAProxy::Node::Section, Config::HAProxy::Node::Statement, Config::HAProxy::Iterator, Config::HAProxy, Text::Locus.