Provided by: libconfig-model-perl_2.153-3_all bug

NAME

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

VERSION

       version 2.153

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