Test Failed
Push — 1.0.0 ( 30b11b...d49389 )
by Zaahid
02:27
created

MessageFactory::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 9
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
cc 1
eloc 2
nc 1
nop 5
dl 0
loc 9
ccs 0
cts 0
cp 0
crap 2
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 1
     */
29
    protected $messageHelperService;
30 1
31 1
    /**
32 1
     * @param StreamFactory $sdf
33 1
     * @param PartStreamFilterManagerFactory $psf
34 1
     * @param HeaderFactory $hf
35 1
     * @param PartFilterFactory $pf
36 1
     * @param MessageHelperService $mhs
37
     */
38
    public function __construct(
39
        StreamFactory $sdf,
40
        PartStreamFilterManagerFactory $psf,
41
        HeaderFactory $hf,
42
        PartFilterFactory $pf,
43
        MessageHelperService $mhs
44
    ) {
45
        parent::__construct($sdf, $psf, $hf, $pf);
46
        $this->messageHelperService = $mhs;
47
    }
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
    public function newInstance(PartBuilder $partBuilder, StreamInterface $stream = null)
57
    {
58
        $contentStream = null;
59
        if ($stream !== null) {
60
            $contentStream = $this->streamFactory->getLimitedContentStream($stream, $partBuilder);
61
        }
62
        return new Message(
63
            $this->partStreamFilterManagerFactory->newInstance(),
64
            $this->streamFactory,
65
            $this->partFilterFactory,
66
            $this->headerFactory,
67
            $partBuilder,
68
            $this->messageHelperService,
69
            $stream,
70
            $contentStream
71
        );
72
    }
73
}
74