package WebCoso::Config::Collection;
use strict;
use warnings;
use Class::Std;
use WebCoso::Config;
{
my %names_of :ATTR( :get<names> );
sub BUILD {
my ($self,$ident,$args_ref)=@_;
my $names=$args_ref->{name};
$names={''=>$names} unless ref($names) eq 'HASH';
$names_of{$ident}=$names;
WebCoso::Config->add_collection($self);
}
sub axes {
return 'language';
}
sub axis {
my ($self,$axis_name)=@_;
if ($axis_name eq 'language') {
return keys %{ $self->get_names() }
}
else {
return;
}
}
sub properties {
my ($self,$axis_name,$axis_value,@rest)=@_;
if (@rest==0 and $axis_name eq 'language') {
if ( grep { $_ eq $axis_value }
keys %{ $self->get_names() }
) {
return {
name => $self->get_names()->{$axis_value}
};
}
else {
return;
}
}
}
}
1;