line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
1
|
|
|
|
|
|
|
package File::KeePass::KDBX::Tie::Group; |
2
|
|
|
|
|
|
|
# ABSTRACT: Database group |
3
|
|
|
|
|
|
|
|
4
|
2
|
|
|
2
|
|
1272
|
use warnings; |
|
2
|
|
|
|
|
4
|
|
|
2
|
|
|
|
|
68
|
|
5
|
2
|
|
|
2
|
|
10
|
use strict; |
|
2
|
|
|
|
|
4
|
|
|
2
|
|
|
|
|
68
|
|
6
|
|
|
|
|
|
|
|
7
|
2
|
|
|
2
|
|
12
|
use parent 'File::KeePass::KDBX::Tie::Hash'; |
|
2
|
|
|
|
|
4
|
|
|
2
|
|
|
|
|
14
|
|
8
|
|
|
|
|
|
|
|
9
|
|
|
|
|
|
|
our $VERSION = '0.901'; # VERSION |
10
|
|
|
|
|
|
|
|
11
|
|
|
|
|
|
|
my %GET = ( |
12
|
|
|
|
|
|
|
accessed => sub { File::KeePass::KDBX::_decode_datetime($_[0]->last_access_time) }, |
13
|
|
|
|
|
|
|
usage_count => sub { $_[0]->usage_count }, |
14
|
|
|
|
|
|
|
expires_enabled => sub { $_[0]->expires ? 1 : 0 }, |
15
|
|
|
|
|
|
|
created => sub { File::KeePass::KDBX::_decode_datetime($_[0]->creation_time) }, |
16
|
|
|
|
|
|
|
expires => sub { File::KeePass::KDBX::_decode_datetime($_[0]->expiry_time) }, |
17
|
|
|
|
|
|
|
modified => sub { File::KeePass::KDBX::_decode_datetime($_[0]->last_modification_time) }, |
18
|
|
|
|
|
|
|
location_changed => sub { File::KeePass::KDBX::_decode_datetime($_[0]->location_changed) }, |
19
|
|
|
|
|
|
|
level => sub { $_[0]->depth }, |
20
|
|
|
|
|
|
|
notes => sub { $_[0]->notes }, |
21
|
|
|
|
|
|
|
id => sub { $_[0]->uuid }, |
22
|
|
|
|
|
|
|
expanded => sub { $_[0]->is_expanded ? 1 : 0 }, |
23
|
|
|
|
|
|
|
icon => sub { $_[0]->icon_id + 0 }, |
24
|
|
|
|
|
|
|
title => sub { $_[0]->name }, |
25
|
|
|
|
|
|
|
auto_type_default => sub { $_[0]->default_auto_type_sequence }, |
26
|
|
|
|
|
|
|
auto_type_enabled => sub { File::KeePass::KDBX::_decode_tristate($_[0]->enable_auto_type) }, |
27
|
|
|
|
|
|
|
enable_searching => sub { File::KeePass::KDBX::_decode_tristate($_[0]->enable_searching) }, |
28
|
|
|
|
|
|
|
groups => sub { $_[-1]->_tie([], 'GroupList', $_[0]) }, |
29
|
|
|
|
|
|
|
entries => sub { $_[-1]->_tie([], 'EntryList', $_[0], 'entries') }, |
30
|
|
|
|
|
|
|
); |
31
|
|
|
|
|
|
|
my %SET = ( |
32
|
|
|
|
|
|
|
accessed => sub { $_[0]->last_access_time(File::KeePass::KDBX::_encode_datetime($_)) }, |
33
|
|
|
|
|
|
|
usage_count => sub { $_[0]->usage_count($_) }, |
34
|
|
|
|
|
|
|
expires_enabled => sub { $_[0]->expires($_) }, |
35
|
|
|
|
|
|
|
created => sub { $_[0]->creation_time(File::KeePass::KDBX::_encode_datetime($_)) }, |
36
|
|
|
|
|
|
|
expires => sub { $_[0]->expiry_time(File::KeePass::KDBX::_encode_datetime($_)) }, |
37
|
|
|
|
|
|
|
modified => sub { $_[0]->last_modification_time(File::KeePass::KDBX::_encode_datetime($_)) }, |
38
|
|
|
|
|
|
|
location_changed => sub { $_[0]->location_changed(File::KeePass::KDBX::_encode_datetime($_)) }, |
39
|
|
|
|
|
|
|
level => sub { }, # readonly |
40
|
|
|
|
|
|
|
notes => sub { $_[0]->notes($_) }, |
41
|
|
|
|
|
|
|
id => sub { $_[0]->uuid(File::KeePass::KDBX::_encode_uuid($_)) }, |
42
|
|
|
|
|
|
|
expanded => sub { $_[0]->is_expanded($_) }, |
43
|
|
|
|
|
|
|
icon => sub { $_[0]->icon_id($_) }, |
44
|
|
|
|
|
|
|
title => sub { $_[0]->name($_) }, |
45
|
|
|
|
|
|
|
auto_type_default => sub { $_[0]->default_auto_type_sequence($_) }, |
46
|
|
|
|
|
|
|
auto_type_enabled => sub { $_[0]->enable_auto_type(File::KeePass::KDBX::_encode_tristate($_)) }, |
47
|
|
|
|
|
|
|
enable_searching => sub { $_[0]->enable_searching(File::KeePass::KDBX::_encode_tristate($_)) }, |
48
|
|
|
|
|
|
|
groups => sub { }, # TODO - Replace all subgroups |
49
|
|
|
|
|
|
|
entries => sub { }, # TODO - Replace all entries |
50
|
|
|
|
|
|
|
); |
51
|
|
|
|
|
|
|
|
52
|
2936
|
|
|
2936
|
0
|
6359
|
sub getters { \%GET } |
53
|
429
|
|
|
429
|
0
|
1125
|
sub setters { \%SET } |
54
|
|
|
|
|
|
|
|
55
|
|
|
|
|
|
|
1; |
56
|
|
|
|
|
|
|
|
57
|
|
|
|
|
|
|
__END__ |