| Config::Model::IdElementReference - Refer to id element and extract keys |
Config::Model::IdElementReference - Refer to id element(s) and extract keys
# used from a value class element => [ node_host => { type => 'leaf', value_type => 'reference' , refer_to => '! host' }, if => { type => 'leaf', value_type => 'reference' , computed_refer_to => { formula => ' ! host:$h if ', variables => { h => '- node_host' } } }, ],
# used from checklist element => [ # simple reference, checklist items are given by the # keys of my_hash refer_to_list => { type => 'check_list', refer_to => '- my_hash' },
# checklist items are given by combining my_hash*
refer_to_2_list
=> { type => 'check_list',
refer_to => '- my_hash + - my_hash2 + - my_hash3'
},
]
This class is user by the Config::Model::Value manpage to set up an enumerated value where the possible choice depends on the key of a the Config::Model::HashId manpage or the content of a the Config::Model::ListId manpage object.
This class is also used by the Config::Model::CheckList manpage to define the cheklist items from the keys of another hash (or content of a list).
Construction is handled by the calling object.
refer_to is used to specify a hash element that will be used as a
reference. refer_to points to an array or hash element in the
configuration tree using the path syntax (See
grab in the Config::Model::Node manpage for details).
When computed_refer_to is used, the path is computed using values
from several elements in the configuration tree. computed_refer_to
is a hash with 2 mandatory elements: formula and variables.
The available choice of this (computed or not) reference value is made from the available keys of the refered_to hash element or the values of the refered_to array element.
The example means the the value must correspond to an existing host:
value_type => 'reference', refer_to => '! host'
This example means the the value must correspond to an existing lan within the host whose Id is specified by hostname:
value_type => 'reference', computed_refer_to => { formula => '! host:$a lan', variables => { a => '- hostname' } {}
If you need to combine possibilities from several hash, use the "+"
token to separate 2 paths:
value_type => 'reference', computed_refer_to => { formula => '! host:$a lan + ! host:foobar lan', variables => { a => '- hostname' } }
You can specify refer_to or computed_refer_to with a choice
argument so the possible enum value will be the combination of the
specified choice and the refered_to values.
Returns a human readable string with explains how is retrieved the reference. This method is mostly used to construct an error messages.
Dominique Dumont, (ddumont at cpan dot org)
the Config::Model manpage, the Config::Model::Value manpage, the Config::Model::AnyId manpage, the Config::Model::CheckList manpage
| Config::Model::IdElementReference - Refer to id element and extract keys |