File Coverage

blib/lib/Email/Outlook/Message/AddressInfo.pm
Criterion Covered Total %
statement 31 35 88.5
branch 2 4 50.0
condition n/a
subroutine 12 13 92.3
pod 5 5 100.0
total 50 57 87.7


line stmt bran cond sub pod time code
1             package Email::Outlook::Message::AddressInfo;
2             =head1 NAME
3              
4             Email::Outlook::Message::AddressInfo - Handle address data in .msg files
5              
6             =head1 DESCRIPTION
7              
8             This is an internal module of Email::Outlook::Message. It is a subclass of
9             Email::Outlook::Message::Base.
10              
11             =head1 METHODS
12              
13             =over 8
14              
15             =item B
16              
17             =item B
18              
19             =item B
20              
21             =item B
22              
23             =item B
24              
25             =back
26              
27             =head1 AUTHOR
28              
29             Matijs van Zuijlen, C
30              
31             =head1 COPYRIGHT AND LICENSE
32              
33             Copyright 2002--2020 by Matijs van Zuijlen
34              
35             This module is free software; you can redistribute it and/or modify
36             it under the same terms as Perl itself.
37              
38             =cut
39 8     8   59 use strict;
  8         21  
  8         272  
40 8     8   53 use warnings;
  8         26  
  8         244  
41 8     8   49 use vars qw($VERSION);
  8         23  
  8         409  
42             $VERSION = "0.920";
43 8     8   48 use Carp;
  8         18  
  8         524  
44 8     8   53 use base 'Email::Outlook::Message::Base';
  8         20  
  8         3984  
45              
46             our $MAP_ADDRESSITEM_FILE = {
47             '3001' => "NAME", # Real name
48             '3002' => "TYPE", # Address type
49             '403D' => "TYPE2", # Address type TODO: Not used
50             '3003' => "ADDRESS", # Address
51             '403E' => "ADDRESS2", # Address TODO: Not used
52             '39FE' => "SMTPADDRESS", # SMTP Address variant
53             };
54              
55             sub _property_map {
56 32     32   99 return $MAP_ADDRESSITEM_FILE;
57             }
58              
59             # DIR Entries: There should be none.
60             sub _process_subdirectory {
61 0     0   0 my ($self, $pps) = @_;
62 0         0 $self->_warn_about_unknown_directory($pps);
63 0         0 return;
64             }
65              
66 11     11 1 33 sub name { my $self = shift; return $self->property('NAME') }
  11         130  
67 5     5 1 16 sub address_type { my $self = shift; return $self->property('TYPE') }
  5         47  
68 5     5 1 13 sub address { my $self = shift; return $self->property('ADDRESS') }
  5         21  
69 5     5 1 12 sub smtp_address { my $self = shift; return $self->property('SMTPADDRESS') }
  5         30  
70              
71             sub display_address {
72 5     5 1 16 my $self = shift;
73 5         18 my $addresstext = $self->name . " <";
74 5 50       24 if (defined ($self->smtp_address)) {
    50          
75 0         0 $addresstext .= $self->smtp_address;
76             } elsif ($self->address_type eq "SMTP") {
77 5         26 $addresstext .= $self->address;
78             }
79 5         17 $addresstext .= ">";
80 5         29 return $addresstext;
81             }
82              
83 6     6   20 sub _property_stream_header_length { return 8; }
84              
85             1;