line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
1
|
|
|
|
|
|
|
package EWS::Folder::ResultSet; |
2
|
|
|
|
|
|
|
BEGIN { |
3
|
1
|
|
|
1
|
|
23
|
$EWS::Folder::ResultSet::VERSION = '1.143070'; |
4
|
|
|
|
|
|
|
} |
5
|
|
|
|
|
|
|
|
6
|
1
|
|
|
1
|
|
4
|
use Moose; |
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
7
|
|
7
|
1
|
|
|
1
|
|
6320
|
use MooseX::Iterator; |
|
1
|
|
|
|
|
3
|
|
|
1
|
|
|
|
|
37
|
|
8
|
|
|
|
|
|
|
|
9
|
1
|
|
|
1
|
|
644
|
use EWS::Folder::Item; |
|
1
|
|
|
|
|
3
|
|
|
1
|
|
|
|
|
277
|
|
10
|
|
|
|
|
|
|
|
11
|
|
|
|
|
|
|
has items => ( |
12
|
|
|
|
|
|
|
is => 'ro', |
13
|
|
|
|
|
|
|
isa => 'ArrayRef[EWS::Folder::Item]', |
14
|
|
|
|
|
|
|
required => 1, |
15
|
|
|
|
|
|
|
); |
16
|
|
|
|
|
|
|
|
17
|
|
|
|
|
|
|
sub BUILDARGS { |
18
|
0
|
|
|
0
|
1
|
|
my ($class, @rest) = @_; |
19
|
0
|
0
|
|
|
|
|
my $params = (scalar @rest == 1 ? $rest[0] : {@rest}); |
20
|
|
|
|
|
|
|
|
21
|
|
|
|
|
|
|
# promote hashes returned from Exchange into Item objects |
22
|
0
|
|
|
|
|
|
my $items = [ map { EWS::Folder::Item->new($_) } |
|
0
|
|
|
|
|
|
|
23
|
0
|
|
|
|
|
|
@{$params->{items}} ]; |
24
|
|
|
|
|
|
|
|
25
|
|
|
|
|
|
|
# convert $items into a deletable HASH |
26
|
0
|
|
|
|
|
|
my %hshItems = map { $_->{FolderId}->{Id} => $_ } @{$items}; |
|
0
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
27
|
|
|
|
|
|
|
|
28
|
0
|
|
|
|
|
|
$items = []; |
29
|
0
|
|
|
|
|
|
foreach my $item (values %hshItems) { |
30
|
0
|
0
|
|
|
|
|
if ( exists( $hshItems{$item->{ParentFolderId}->{Id}} )) { |
31
|
|
|
|
|
|
|
# add item to parent's SubFolders array |
32
|
0
|
|
|
|
|
|
push @{$hshItems{$item->{ParentFolderId}->{Id}}->{items}}, $item; |
|
0
|
|
|
|
|
|
|
33
|
|
|
|
|
|
|
} |
34
|
|
|
|
|
|
|
else { |
35
|
|
|
|
|
|
|
# item without parent in the hash means it must be kept |
36
|
0
|
|
|
|
|
|
push @{$items}, $item; |
|
0
|
|
|
|
|
|
|
37
|
|
|
|
|
|
|
} |
38
|
|
|
|
|
|
|
} |
39
|
0
|
|
|
|
|
|
$params->{items} = $items; |
40
|
0
|
|
|
|
|
|
return $params; |
41
|
|
|
|
|
|
|
} |
42
|
|
|
|
|
|
|
|
43
|
|
|
|
|
|
|
sub count { |
44
|
0
|
|
|
0
|
0
|
|
my $self = shift; |
45
|
0
|
|
|
|
|
|
return scalar @{$self->items}; |
|
0
|
|
|
|
|
|
|
46
|
|
|
|
|
|
|
} |
47
|
|
|
|
|
|
|
|
48
|
|
|
|
|
|
|
has iterator => ( |
49
|
|
|
|
|
|
|
is => 'ro', |
50
|
|
|
|
|
|
|
isa => 'MooseX::Iterator::Array', |
51
|
|
|
|
|
|
|
handles => [qw/ |
52
|
|
|
|
|
|
|
next |
53
|
|
|
|
|
|
|
has_next |
54
|
|
|
|
|
|
|
peek |
55
|
|
|
|
|
|
|
reset |
56
|
|
|
|
|
|
|
/], |
57
|
|
|
|
|
|
|
lazy_build => 1, |
58
|
|
|
|
|
|
|
); |
59
|
|
|
|
|
|
|
|
60
|
|
|
|
|
|
|
sub _build_iterator { |
61
|
0
|
|
|
0
|
|
|
my $self = shift; |
62
|
0
|
|
|
|
|
|
return MooseX::Iterator::Array->new( collection => $self->items ); |
63
|
|
|
|
|
|
|
} |
64
|
|
|
|
|
|
|
|
65
|
|
|
|
|
|
|
__PACKAGE__->meta->make_immutable; |
66
|
1
|
|
|
1
|
|
8
|
no Moose; |
|
1
|
|
|
|
|
1
|
|
|
1
|
|
|
|
|
5
|
|
67
|
|
|
|
|
|
|
1; |