aboutsummaryrefslogtreecommitdiff
path: root/lib/WebCoso/Config/Collection.pm
blob: 6b5d20143595a004807b468c53a0d4eff7300d3b (plain)
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
50
51
52
53
54
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};
    # trasformo un nome semplice in un nome "per qualsiasi lingua" 
    $names={''=>$namesunless ref($nameseq '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;