Config::Model::CheckList(3pm) | User Contributed Perl Documentation | Config::Model::CheckList(3pm) |
Config::Model::CheckList - Handle check list element
version 2.152
use Config::Model; # define configuration tree object my $model = Config::Model->new; $model->create_config_class( name => "MyClass", element => [ # type check_list uses Config::Model::CheckList my_check_list => { type => 'check_list', choice => [ 'A', 'B', 'C', 'D' ], help => { A => 'A effect is this', D => 'D does that', } }, ], ); my $inst = $model->instance( root_class_name => 'MyClass' ); my $root = $inst->config_root; # put data $root->load( steps => 'my_check_list=A' ); my $obj = $root->grab('my_check_list'); my $v = $root->grab_value('my_check_list'); print "check_list value '$v' with help '", $obj->get_help($v), "'\n"; # more data $obj->check('D'); $v = $root->grab_value('my_check_list'); print "check_list new value is '$v'\n"; # prints check_list new value is 'A,D'
This class provides a check list element for a Config::Model::Node. In other words, this class provides a list of booleans items. Each item can be set to 1 or 0.
The available items in the check list can be :
CheckList object should not be created directly.
A check list element must be declared with the following parameters:
For example:
choice_list => { type => 'check_list', choice => ['A' .. 'Z'], help => { A => 'A help', E => 'E help' } , },
choice_list_with_default => { type => 'check_list', choice => ['A' .. 'Z'], default_list => [ 'A', 'D' ], },
warped_choice_list => { type => 'check_list', warp => { follow => '- macro', rules => { AD => { choice => [ 'A' .. 'D' ], default_list => ['A', 'B' ] }, AH => { choice => [ 'A' .. 'H' ] }, } } },
The following methods returns the checklist parameter :
The choice items of a check_list can be given by another configuration element. This other element can be:
This other hash or other checklist is indicated by the "refer_to" or "computed_refer_to" parameter. "refer_to" uses the syntax of the "steps" parameter of grab(...)
See refer_to parameter.
refer_to_list => { type => 'check_list', refer_to => '- my_hash' },
other_check_list => { type => 'check_list', choice => [qw/A B C/] }, refer_to_list => { type => 'check_list', refer_to => '- other_check_list' },
refer_to_3_lists => { type => 'check_list', refer_to => '- my_hash + - my_hash2 + - my_hash3' },
refer_to_check_list_and_choice => { type => 'check_list', computed_refer_to => { formula => '- refer_to_2_list + - $var', variables => { var => '- indirection ' } }, choice => [qw/A1 A2 A3/], },
Returns "check_list".
Returns 'leaf'.
Set choice. Parameter is either a list of choices to set or a list ref and some optional parameter. I.e:
check (\@list, check => 'skip') ;
"check" parameter decide on behavior in case of invalid choice value: either die (if yes) or discard bad value (if skip)
Unset choice. Parameter is either a list of choices to unset or a list ref and some optional parameter. I.e:
uncheck (\@list, check => 'skip') ;
"check" parameter decide on behavior in case of invalid choice value: either die (if yes) or discard bad value (if skip)
Parameters: "( choice, [ check => yes|skip ] , [ mode => ... ])"
Return 1 if the given "choice" was set. Returns 0 otherwise.
"check" parameter decide on behavior in case of invalid choice value: either die (if yes) or discard bad value (if skip)
"mode" is either: custom standard preset default layered upstream_default
Return true if the check_list contains a set of checks different from default or upstream default set of check.
Returns an array of all items names that can be checked (i.e. that can have value 0 or 1).
Parameters: "(choice_value)"
Return the help string on this choice value
Returns a list of information related to the check list. See "get_info" in Config::Model::Value for more details.
Reset the check list (can also be called as "clear_values")
Parameters: "(choice_value)"
Reset an element of the checklist.
Accept a parameter (referred below as "mode" parameter) similar to "mode" in "fetch" in Config::Model::Value.
Returns a hash (or a hash ref) of all items. The boolean value is the value of the hash.
Example:
{ A => 0, B => 1, C => 0 , D => 1}
By default, this method returns all items set by the user, or items set in preset mode or checked by default.
With a "mode" parameter set to a value from the list below, this method returns:
Parameters: "( < mode > )"
Returns a list (or a list ref) of all checked items (i.e. all items set to 1).
Parameters: "( < mode > )"
Returns a string listing the checked items (i.e. "A,B,C")
Parameters: "( path [, < mode> ] )"
Get a value from a directory like path.
All these methods accept an optional "check" parameter that can be:
Parameters: "( path, items_to_set, [ check => [ yes | no | skip ] ] )"
Set a checklist with a directory like path. Since a checklist is a leaf, the path should be empty.
The values are a comma separated list of items to set in the check list.
Example :
$leaf->set('','A,C,Z'); $leaf->set('','A,C,Z', check => 'skip');
Set all passed items to checked (1). All other available items in the check list are set to 0.
Example, for a check list that contains A B C and D check items:
# set cl to A=0 B=1 C=0 D=1 $cl->set_checked_list('B','D') $cl->set_checked_list( [ 'B','D' ]) $cl->set_checked_list( [ 'B','D' ], check => 'yes')
Alias to "set_checked_list", so a list and a check_list can use the same store method
Set all items listed in a string to checked. The items must be separated by commas. All other available items in the check list are set to 0.
Example:
$cl->store('B, D') $cl->store( value => 'B,C' ) $cl->store( value => 'B,C', check => 'yes' )
Alias to "store".
Set check_list items. Missing items in the given hash of parameters are cleared (i.e. set to undef).
Example for a check list containing A B C D
$cl->set_checked_list_as_hash( { A => 1, B => 0} , check => 'yes' ) # result A => 1 B => 0 , C and D are undef
Load items as an array or hash ref. Array is forwarded to set_checked_list , and hash is forwarded to set_checked_list_as_hash.
Example:
$cl->load_data(['A','B']) # cannot use check param here $cl->load_data( data => ['A','B']) $cl->load_data( data => ['A','B'], check => 'yes') $cl->load_data( { A => 1, B => 1 } ) $cl->load_data( data => { A => 1, B => 1 }, check => 'yes')
Accept a mode parameter. This function checks if the mode is accepted by "fetch" method. Returns an error message if not. For instance:
if (my $err = $val->is_bad_mode('foo')) { croak "my_function: $err"; }
This method is intented as a helper ti avoid duplicating the list of accepted modes for functions that want to wrap fetch methods (like Config::Model::Dumper or Config::Model::DumpAsData)
All the methods below are valid only for ordered checklists.
Parameters: "( choice_a, choice_b)"
Swap the 2 given choice in the list. Both choice must be already set.
Parameters: "( choice )"
Move the choice up in the checklist.
Parameters: "( choice )"
Move the choice down in the checklist.
Dominique Dumont, (ddumont at cpan dot org)
Config::Model, Config::Model::Instance, Config::Model::Node, Config::Model::AnyId, Config::Model::ListId, Config::Model::HashId, Config::Model::Value
Dominique Dumont
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
2022-07-28 | perl v5.34.0 |