Completed
Push — master ( aeb3a4...04afb5 )
by brian
01:57
created

AbsentMatcher::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 1
Metric Value
dl 0
loc 7
ccs 4
cts 4
cp 1
rs 9.4286
cc 1
eloc 5
nc 1
nop 2
crap 1
1
<?php
2
3
/**
4
 * @copyright   (c) 2006-present brian ridley
5
 * @author      brian ridley <[email protected]>
6
 * @license     http://opensource.org/licenses/MIT MIT
7
 */
8
9
namespace ptlis\ConNeg\Negotiator\Matcher;
10
11
use ptlis\ConNeg\Preference\Builder\PreferenceBuilderInterface;
12
use ptlis\ConNeg\Preference\Matched\MatchedPreference;
13
use ptlis\ConNeg\Preference\PreferenceInterface;
14
15
/**
16
 * Matcher creating MatchedPreference instances with an absent server preference.
17
 */
18
class AbsentMatcher implements MatcherInterface
19
{
20
    /**
21
     * @var PreferenceBuilderInterface
22
     */
23
    private $prefBuilder;
24
25
    /**
26
     * @var PreferenceBuilderInterface
27
     */
28
    private $mimePrefBuilder;
29
30
31
    /**
32
     * Constructor.
33
     *
34
     * @param PreferenceBuilderInterface $prefBuilder
35
     * @param PreferenceBuilderInterface $mimePrefBuilder
36
     */
37 76
    public function __construct(
38
        PreferenceBuilderInterface $prefBuilder,
39
        PreferenceBuilderInterface $mimePrefBuilder
40
    ) {
41 76
        $this->prefBuilder = $prefBuilder;
42 76
        $this->mimePrefBuilder = $mimePrefBuilder;
43 76
    }
44
45
    /**
46
     * @inheritDoc
47
     */
48 32
    public function hasMatch($fromField, array $matchingList, PreferenceInterface $clientPref)
49
    {
50 32
        return true; // Claim to always match
51
    }
52
53
    /**
54
     * @inheritDoc
55
     */
56 32
    public function match($fromField, array $matchingList, PreferenceInterface $clientPref)
57
    {
58 32
        $builder = $this->prefBuilder;
59 32
        if (PreferenceInterface::MIME === $fromField) {
60 10
            $builder = $this->mimePrefBuilder;
61 10
        }
62
63
        $emptyPref = $builder
64 32
            ->setFromField($fromField)
65 32
            ->get();
66
67 32
        $matchingList[] = new MatchedPreference(
68 32
            $fromField,
69 32
            $clientPref,
70
            $emptyPref
71 32
        );
72
73 32
        return $matchingList;
74
    }
75
}
76