Provided by: libconfig-model-perl_2.138-2_all bug

NAME

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

VERSION

       version 2.138

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.

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-2019 by Dominique Dumont.

       This is free software, licensed under:

         The GNU Lesser General Public License, Version 2.1, February 1999