TemplateIdGuesserManager   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 38
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 0

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 5
lcom 1
cbo 0
dl 0
loc 38
rs 10
c 0
b 0
f 0
ccs 12
cts 12
cp 1

3 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A guess() 0 11 3
A addGuesser() 0 4 1
1
<?php
2
3
namespace Dekalee\MailjetBundle\Guesser;
4
5
use Swift_Mime_SimpleMessage;
6
7
/**
8
 * Class TemplateIdGuesserManager
9
 */
10
class TemplateIdGuesserManager
11
{
12
    protected $templateId;
13
    protected $guessers = [];
14
15
    /**
16
     * @param int|string $templateId
17
     */
18 4
    public function __construct($templateId)
19
    {
20 4
        $this->templateId = $templateId;
21 4
    }
22
23
    /**
24
     * @param Swift_Mime_SimpleMessage $message
25
     *
26
     * @return string|int|null
27
     */
28 3
    public function guess(Swift_Mime_SimpleMessage $message)
29
    {
30
        /** @var TemplateIdGuesserInterface $guesser */
31 3
        foreach ($this->guessers as $guesser) {
32 2
            if ($guesser->supports($message)) {
33 1
                return $guesser->guess($message);
34
            }
35 2
        }
36
37 2
        return $this->templateId;
38
    }
39
40
    /**
41
     * @param TemplateIdGuesserInterface $guesser
42
     */
43 2
    public function addGuesser(TemplateIdGuesserInterface $guesser)
44
    {
45 2
        $this->guessers[] = $guesser;
46 2
    }
47
}
48