Imported Upstream version 3.2.0
[debian/amanda] / perl / Amanda / Config / FoldingHash.pm
1 package Amanda::Config::FoldingHash;
2 use Tie::Hash;
3 use base 'Tie::StdHash';
4 use Amanda::Config;
5 use Amanda::Debug;
6
7 use strict;
8 use warnings;
9
10 sub new {
11     my ($class) = @_;
12
13     my %self;
14     tie(%self, $class);
15     return \%self;
16 }
17
18 sub _amandaify {
19     return Amanda::Config::amandaify_property_name(@_);
20 }
21
22 sub TIEHASH {
23     my ($class) = @_;
24     return bless({}, $class);
25 }
26
27 sub FETCH {
28     my ($self, $key) = @_;
29     my $am = _amandaify($key);
30     return $self->{_amandaify($key)};
31 }
32
33 sub STORE {
34     my ($self, $key, $value) = @_;
35     return $self->{_amandaify($key)} = $value;
36 }
37
38 sub EXISTS {
39     my ($self, $key) = @_;
40     return exists($self->{_amandaify($key)});
41 }
42
43 sub DELETE {
44     my ($self, $key) = @_;
45     return delete($self->{_amandaify($key)});
46 }
47
48 1;