Completed
Push — master ( 985877...b2fa88 )
by Frederik
02:11
created

AbstractRecipient::fromSingleRecipient()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 11
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 6
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 11
ccs 6
cts 6
cp 1
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 6
nc 1
nop 2
crap 1
1
<?php
2
declare(strict_types=1);
3
4
namespace Genkgo\Mail\Header;
5
6
use Genkgo\Mail\Address;
7
use Genkgo\Mail\AddressList;
8
use Genkgo\Mail\EmailAddress;
9
use Genkgo\Mail\HeaderInterface;
10
11
/**
12
 * Class Recipient
13
 * @package Genkgo\Mail\Header
14
 */
15
abstract class AbstractRecipient implements HeaderInterface
16
{
17
    /**
18
     * @var AddressList
19
     */
20
    private $recipients;
21
22
    /**
23
     * To constructor.
24
     * @param AddressList $recipients
25
     */
26 16
    final public function __construct(AddressList $recipients)
27
    {
28 16
        $this->recipients = $recipients;
29 16
    }
30
31
    /**
32
     * @return HeaderName
33
     */
34
    abstract public function getName(): HeaderName;
35
36
    /**
37
     * @return HeaderValue
38
     */
39 16
    final public function getValue(): HeaderValue
40
    {
41 16
        return HeaderValue::fromEncodedString((string)$this->recipients);
42
    }
43
44
    /**
45
     * @param string $emailAddress
46
     * @param string $name
47
     * @return AbstractRecipient
48
     */
49 1
    final public static function fromSingleRecipient(string $emailAddress, string $name = ''): AbstractRecipient
50
    {
51 1
        return new static(
52 1
            new AddressList([
53 1
                new Address(
54 1
                    new EmailAddress($emailAddress),
55 1
                    $name
56
                )
57
            ])
58
        );
59
    }
60
}