Config::Model::ListId(3pm)

NAME
Config::Model::ListId - Handle list element for configuration model

VERSION
version 2.159

SYNOPSIS
See "SYNOPSIS" in Config::Model::AnyId

DESCRIPTION
This class provides list elements for a Config::Model::Node.

CONSTRUCTOR
ListId object should not be created directly.

List model declaration
See model declaration section from Config::Model::AnyId.

Methods

  get_type
Returns "list".

  fetch_size
Returns the number of elements of the list.

  load
Parameters: "(string, [ check => 'no' ] )"

Store a set of values passed as a comma separated list of values. Values can be quoted strings. (i.e ""a,a",b" yields "('a,a', 'b')" list).

"check" can be yes, no or skip

  store_set
Store a set of values (passed as list)

If tinkering with check is required, use the following way :

 store_set ( \@v , check => 'skip' );

  move
Parameters: "( from_index, to_index, [ check => 'no' )"

Move an element within the list. "check" can be 'yes' 'no' 'skip'

  push
Parameters: "( value1, [ value2 ... ] )"

push some values at the end of the list.

  push_x
Parameters: "( values => [ v1','v2', ...] , ... )"

Like push with extended options. Options are:

check
    Check value validaty. Either "yes" (default), "no", "skip"

values
    Values to push (array_ref)

value
    Single value to push

annotation

  unshift
Parameters: "( value1, [ value2 ... ] )"

unshift some values at the end of the list.

  insert_at
Parameters: "( idx, value1, [ value2 ... ] )"

unshift some values at index idx in the list.

  insert_before
Parameters: "( ( val | qr/stuff/ ) , value1, [ value2 ... ] )"

unshift some values before value equal to "val" or before value matching "stuff".

  insort
Parameters: "( value1, [ value2 ... ] )"

Insert "zz" value on "xxx" list so that existing alphanumeric order is preserved. "insort" yields unpexpected results when called on an unsorted list.

  store
Equivalent to push_x. This method is provided to help write configuration parser, so the call is the same when dealing with leaf or list values. Prefer "push_x" when practical.

check
    "yes", "no" or "skip"

annotation
    list ref of annotation to store with the list values

Example:

 $elt->push_x (
    values => [ 'v1','v2' ] ,
    annotation => [ 'v1 comment', 'v2 comment' ],
    check => 'skip'
 );

  sort
Sort the content of the list. Can only be called on list of leaf.

  swap
Parameters: "( ida , idb )"

Swap 2 elements within the array

  remove
Parameters: "( idx )"

Remove an element from the list. Equivalent to "splice @list,$idx,1"

  load_data
Parameters: "( data => ( ref | scalar ) [, check => ... ] [ , split_reg => $re ] )"

Clear and load list from data contained in the "data" array ref. If a scalar or a hash ref is passed, the list is cleared and the data is stored in the first element of the list. If split_reg is specified, the scalar is split to load the array.

For instance

   $elt->load_data( data => 'foo,bar', split_reg => qr(,) ) ;

loads " [ 'foo','bar']" in $elt

  sort_algorithm
Returns a sub used to sort the list elements. See "sort" in perlfunc. Used only for list of leaves. This method can be overridden to alter sort order.

  get_info
Returns a list of information related to the list. See "get_info" in Config::Model::Value for more details.

AUTHOR
Dominique Dumont, (ddumont at cpan dot org)

SEE ALSO
Config::Model::Model, Config::Model::Instance, Config::Model::AnyId, Config::Model::HashId, Config::Model::Value

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