1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
use strict;
use warnings;
return [
[
name => "Itself::CargoElement",
include =>
[ 'Itself::NonWarpableElement', 'Itself::WarpableCargoElement' ],
include_after => 'type',
'element' => [
# structural information
'type' => {
type => 'leaf',
value_type => 'enum',
choice => [qw/node warped_node leaf check_list/],
mandatory => 1,
description => 'specify the type of the cargo.',
},
# node element (may be within a hash or list)
'warp' => {
type => 'warped_node', # ?
level => 'hidden',
warp => {
follow => { elt_type => '- type' },
rules => [
'$elt_type ne "node"' => {
level => 'normal',
config_class_name => 'Itself::WarpValue',
}
],
},
description =>
"change the properties (i.e. default value or its value_type) "
. "dynamically according to the value of another Value object locate "
. "elsewhere in the configuration tree. "
},
],
],
];
|