Test Failed
Push — 2.0 ( 0b4092...91a8b2 )
by Zaahid
04:50
created

ParserNonMimeMessageProxyFactory   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 29
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 1
eloc 15
c 1
b 0
f 0
dl 0
loc 29
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
A newInstance() 0 20 1
1
<?php
2
3
/**
4
 * This file is part of the ZBateson\MailMimeParser project.
5
 *
6
 * @license http://opensource.org/licenses/bsd-license.php BSD
7
 */
8
9
namespace ZBateson\MailMimeParser\Parser\Proxy;
10
11
use ZBateson\MailMimeParser\Message;
12
use ZBateson\MailMimeParser\Message\PartHeaderContainer;
13
use ZBateson\MailMimeParser\Parser\IParser;
14
use ZBateson\MailMimeParser\Parser\PartBuilder;
15
16
/**
17
 * Responsible for creating proxied IMessage instances wrapped in a
18
 * ParserMimePartProxy.
19
 *
20
 * @author Zaahid Bateson
21
 */
22
class ParserNonMimeMessageProxyFactory extends ParserMessageProxyFactory
23
{
24
    /**
25
     * Constructs a new ParserMessageProxy wrapping an IMessage object.
26
     *
27
     * @param PartBuilder $partBuilder
28
     * @param PartHeaderContainer $headerContainer
29
     * @return ParserMimePartProxy
30
     */
31
    public function newInstance(PartBuilder $partBuilder, IParser $parser)
32
    {
33
        $parserProxy = new ParserNonMimeMessageProxy($partBuilder, $parser);
34
35
        $streamContainer = $this->parserPartStreamContainerFactory->newInstance($parserProxy);
36
        $headerContainer = $this->partHeaderContainerFactory->newInstance($parserProxy->getHeaderContainer());
37
        $childrenContainer = $this->parserPartChildrenContainerFactory->newInstance($parserProxy);
38
39
        $message = new Message(
40
            $streamContainer,
41
            $headerContainer,
42
            $childrenContainer,
43
            $this->multipartHelper,
44
            $this->privacyHelper
45
        );
46
        $parserProxy->setPart($message);
47
48
        $streamContainer->setStream($this->streamFactory->newMessagePartStream($message));
49
        $message->attach($streamContainer);
50
        return $parserProxy;
51
    }
52
53
}
54