Passed
Push — 1.0.0 ( a1adee...bca153 )
by Zaahid
03:20
created

HeaderPartFactory::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 4
ccs 3
cts 3
cp 1
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 1
crap 1
1
<?php
2
/**
3
 * This file is part of the ZBateson\MailMimeParser project.
4
 *
5
 * @license http://opensource.org/licenses/bsd-license.php BSD
6
 */
7
namespace ZBateson\MailMimeParser\Header\Part;
8
9
use ZBateson\MailMimeParser\Util\CharsetConverter;
10
11
/**
12
 * Constructs and returns HeaderPart objects.
13
 *
14
 * @author Zaahid Bateson
15
 */
16
class HeaderPartFactory
17
{
18
    /**
19
     * @var CharsetConverter $charsetConverter passed to HeaderPart constructors
20
     *      for converting strings in HeaderPart::convertEncoding
21
     */
22
    protected $charsetConverter;
23
    
24
    /**
25
     * Sets up dependencies.
26
     * 
27
     * @param CharsetConverter $charsetConverter
28
     */
29 9
    public function __construct(CharsetConverter $charsetConverter)
30
    {
31 9
        $this->charsetConverter = $charsetConverter;
32 9
    }
33
    
34
    /**
35
     * Creates and returns a default HeaderPart for this factory, allowing
36
     * subclass factories for specialized HeaderParts.
37
     * 
38
     * The default implementation returns a new Token.
39
     * 
40
     * @param string $value
41
     * @return HeaderPart
42
     */
43 1
    public function newInstance($value)
44
    {
45 1
        return $this->newToken($value);
46
    }
47
    
48
    /**
49
     * Initializes and returns a new Token.
50
     * 
51
     * @param string $value
52
     * @return \ZBateson\MailMimeParser\Header\Part\Token
53
     */
54 2
    public function newToken($value)
55
    {
56 2
        return new Token($this->charsetConverter, $value);
57
    }
58
    
59
    /**
60
     * Initializes and returns a new LiteralPart.
61
     * 
62
     * @param string $value
63
     * @return \ZBateson\MailMimeParser\Header\Part\LiteralPart
64
     */
65 1
    public function newLiteralPart($value)
66
    {
67 1
        return new LiteralPart($this->charsetConverter, $value);
68
    }
69
    
70
    /**
71
     * Initializes and returns a new MimeLiteralPart.
72
     * 
73
     * @param string $value
74
     * @return \ZBateson\MailMimeParser\Header\Part\MimeLiteralPart
75
     */
76 1
    public function newMimeLiteralPart($value)
77
    {
78 1
        return new MimeLiteralPart($this->charsetConverter, $value);
79
    }
80
    
81
    /**
82
     * Initializes and returns a new CommentPart.
83
     * 
84
     * @param string $value
85
     * @return \ZBateson\MailMimeParser\Header\Part\CommentPart
86
     */
87 1
    public function newCommentPart($value)
88
    {
89 1
        return new CommentPart($this->charsetConverter, $value);
90
    }
91
    
92
    /**
93
     * Initializes and returns a new AddressPart.
94
     * 
95
     * @param string $name
96
     * @param string $email
97
     * @return \ZBateson\MailMimeParser\Header\Part\AddressPart
98
     */
99 1
    public function newAddressPart($name, $email)
100
    {
101 1
        return new AddressPart($this->charsetConverter, $name, $email);
102
    }
103
    
104
    /**
105
     * Initializes and returns a new AddressGroupPart
106
     * 
107
     * @param array $addresses
108
     * @param string $name
109
     * @return \ZBateson\MailMimeParser\Header\Part\AddressGroupPart
110
     */
111 1
    public function newAddressGroupPart(array $addresses, $name = '')
112
    {
113 1
        return new AddressGroupPart($this->charsetConverter, $addresses, $name);
114
    }
115
    
116
    /**
117
     * Initializes and returns a new DatePart
118
     * 
119
     * @param string $value
120
     * @return \ZBateson\MailMimeParser\Header\Part\DatePart
121
     */
122 1
    public function newDatePart($value)
123
    {
124 1
        return new DatePart($this->charsetConverter, $value);
125
    }
126
    
127
    /**
128
     * Initializes and returns a new ParameterPart.
129
     * 
130
     * @param string $name
131
     * @param string $value
132
     * @return \ZBateson\MailMimeParser\Header\Part\ParameterPart
133
     */
134 1
    public function newParameterPart($name, $value)
135
    {
136 1
        return new ParameterPart($this->charsetConverter, $name, $value);
137
    }
138
}
139