Passed
Push — 1.0.0 ( d49389...cbb558 )
by Zaahid
03:21
created

MessageFactory::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 9
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 2
nc 1
nop 5
dl 0
loc 9
ccs 3
cts 3
cp 1
crap 1
rs 10
c 0
b 0
f 0
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\Message;
8
9
use Psr\Http\Message\StreamInterface;
10
use ZBateson\MailMimeParser\Header\HeaderFactory;
11
use ZBateson\MailMimeParser\Message;
12
use ZBateson\MailMimeParser\Message\Helper\MessageHelperService;
13
use ZBateson\MailMimeParser\Message\Part\PartBuilder;
14
use ZBateson\MailMimeParser\Message\Part\Factory\MimePartFactory;
15
use ZBateson\MailMimeParser\Message\Part\Factory\PartStreamFilterManagerFactory;
16
use ZBateson\MailMimeParser\Message\PartFilterFactory;
17
use ZBateson\MailMimeParser\Stream\StreamFactory;
18
19
/**
20
 * Responsible for creating Message instances.
21
 *
22
 * @author Zaahid Bateson
23
 */
24
class MessageFactory extends MimePartFactory
25
{
26
    /**
27
     * @var MessageHelperService helper class for message manipulation routines.
28
     */
29
    protected $messageHelperService;
30
31
    /**
32
     * @param StreamFactory $sdf
33
     * @param PartStreamFilterManagerFactory $psf
34
     * @param HeaderFactory $hf
35
     * @param PartFilterFactory $pf
36
     * @param MessageHelperService $mhs
37
     */
38 1
    public function __construct(
39
        StreamFactory $sdf,
40
        PartStreamFilterManagerFactory $psf,
41
        HeaderFactory $hf,
42
        PartFilterFactory $pf,
43
        MessageHelperService $mhs
44
    ) {
45 1
        parent::__construct($sdf, $psf, $hf, $pf);
46 1
        $this->messageHelperService = $mhs;
47 1
    }
48
49
    /**
50
     * Constructs a new Message object and returns it
51
     *
52
     * @param PartBuilder $partBuilder
53
     * @param StreamInterface $stream
54
     * @return \ZBateson\MailMimeParser\Message\Part\MimePart
55
     */
56 1
    public function newInstance(PartBuilder $partBuilder, StreamInterface $stream = null)
57
    {
58 1
        $contentStream = null;
59 1
        if ($stream !== null) {
60 1
            $contentStream = $this->streamFactory->getLimitedContentStream($stream, $partBuilder);
61
        }
62 1
        return new Message(
63 1
            $this->partStreamFilterManagerFactory->newInstance(),
64 1
            $this->streamFactory,
65 1
            $this->partFilterFactory,
66 1
            $this->headerFactory,
67 1
            $partBuilder,
68 1
            $this->messageHelperService,
69 1
            $stream,
70 1
            $contentStream
71
        );
72
    }
73
}
74