NAME
Config::Model::AnyThing - Base class for configuration tree item
VERSION
version 2.155
SYNOPSIS
# internal class
DESCRIPTION
This class must be inherited by all nodes or leaves of the configuration tree.
AnyThing provides some methods and no constructor.
Introspection methods
element_name
Returns the element name that contain this object.
index_value
For object stored in an array or hash element, returns the index (or key) containing this object.
parent
Returns the node containing this object. May return undef if parent
is called on the root of the tree.
container
A bit like parent, this method returns the element containing this object. See "container_type"
container_type
Returns the type (e.g. list
or hash
or leaf
or node
or warped_node
) of the element containing this object.
root
Returns the root node of the configuration tree.
location
Returns the node location in the configuration tree. This location conforms with the syntax defined by grab method.
location_short
Returns the node location in the configuration tree. This location truncates long indexes to be readable. It cannot be used by grab method.
composite_name
Return the element name with its index (if any). I.e. returns foo:bar
or foo
.
composite_name_short
Return the element name with its index (if any). Too long indexes are truncated to be readable.
Annotation
Annotation is a way to store miscellaneous information associated to each node. (Yeah... comments). Reading and writing annotation makes sense only if they can be read from and written to the configuration file, hence the need for the following method:
backend_support_annotation
Returns 1 if at least one of the backends attached to a parent node support to read and write annotations (aka comments) in the configuration file.
support_annotation
Returns 1 if at least one of the backends support to read and write annotations (aka comments) in the configuration file.
annotation
Parameters: ( [ note1, [ note2 , ... ] ] )
Without argument, return a string containing the object's annotation (or an empty string).
With several arguments, join the arguments with "\n", store the annotations and return the resulting string.
load_pod_annotation
Parameters: ( pod_string )
Load annotations in configuration tree from a pod document. The pod must be in the form:
=over
=item path
Annotation text
=back
clear_annotation
Clear the annotation of an element
Information management
notify_change
Notify the instance of semantic changes. Parameters are:
- old
-
old value. (optional)
- new
-
new value (optional)
- path
-
Location of the changed parameter starting from root node. Default to
$self-
location>. - name
-
element name. Default to
$self-
element_name> - index
-
If the changed parameter is part of a hash or an array,
index
contains the key or the index to get the changed parameter. - note
-
information about the change. Mandatory when neither old or new value are defined.
- really
-
When set to 1, force recording of change even if in initial load phase.
- needs_save
-
internal parameter.
show_message
Parameters: ( string )
Forwarded to "show_message" in Config::Model::Instance.
root_path
Forwarded to "root_path" in Config::Model::Instance.
model_searcher
Returns an object dedicated to search an element in the configuration model.
This method returns a Config::Model::SearchElement object. See Config::Model::Searcher for details on how to handle a search.
dump_as_data
Dumps the configuration data of the node and its siblings into a perl data structure.
Returns a hash ref containing the data. See Config::Model::DumpAsData for details.
warp_error
Returns a string describing any issue with Config::Model::Warper object. Returns '' if invoked on a tree object without warp specification.
AUTHOR
Dominique Dumont, (ddumont at cpan dot org)
SEE ALSO
Config::Model, Config::Model::Instance, Config::Model::Node, Config::Model::Loader, Config::Model::Dumper
AUTHOR
Dominique Dumont
COPYRIGHT AND LICENSE
This software is Copyright (c) 2005-2022 by Dominique Dumont.
This is free software, licensed under:
The GNU Lesser General Public License, Version 2.1, February 1999