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 9     9   62 use strict;
  9         22  
  9         275  
40 9     9   48 use warnings;
  9         18  
  9         266  
41 9     9   45 use vars qw($VERSION);
  9         20  
  9         474  
42             $VERSION = "0.921";
43 9     9   53 use Carp;
  9         20  
  9         560  
44 9     9   49 use base 'Email::Outlook::Message::Base';
  9         24  
  9         4068  
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 64     64   166 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 22     22 1 40 sub name { my $self = shift; return $self->property('NAME') }
  22         209  
67 10     10 1 18 sub address_type { my $self = shift; return $self->property('TYPE') }
  10         70  
68 10     10 1 20 sub address { my $self = shift; return $self->property('ADDRESS') }
  10         33  
69 10     10 1 24 sub smtp_address { my $self = shift; return $self->property('SMTPADDRESS') }
  10         26  
70              
71             sub display_address {
72 10     10 1 21 my $self = shift;
73 10         28 my $addresstext = $self->name . " <";
74 10 50       63 if (defined ($self->smtp_address)) {
    50          
75 0         0 $addresstext .= $self->smtp_address;
76             } elsif ($self->address_type eq "SMTP") {
77 10         78 $addresstext .= $self->address;
78             }
79 10         34 $addresstext .= ">";
80 10         70 return $addresstext;
81             }
82              
83 12     12   31 sub _property_stream_header_length { return 8; }
84              
85             1;