package Lire::Config::ConfigSpec; use strict; use base qw/ Lire::Config::CompoundSpec /; use Lire::Utils qw/ check_param /; =pod =head1 Lire::Config::ConfigSpec Describes a type of configuration variables that contain a configuration. That is, not the entire configuration but a part, such as a single template or the list of global configuration items. =cut sub new { return shift->SUPER::new( 'name' => 'config', @_ ); } sub instance_class { return "Lire::Config::Dictionary"; } =pod =head2 components_by_section( $section ) Returns in an array ref all the contained parameter specifications that are in the requested section. The parameters are sorted alphabetically. =cut sub components_by_section { my ( $self, $section) = @_; check_param( $section, 'section' ); my $comps = []; my @components = $self->components(); foreach my $comp ( @components ) { push @$comps, $comp if ( defined $comp->{'section'} && $section eq $comp->{'section'} ); } return $comps; } =pod =head2 xml_file( [ $file ] ) Returns the XML filename from which this specification was loaded. If the $file parameter is set, the associated filename will be changed. =cut sub xml_file { my ( $self, $file ) = @_; $self->{'xml_file'} = $file if defined $file; return $self->{'xml_file'}; } 1;