Completed
Pull Request — master (#42)
by Frederik
02:00
created

KeywordFlagCriterion::keyword()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 4
ccs 0
cts 4
cp 0
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 1
crap 2
1
<?php
2
declare(strict_types=1);
3
4
namespace Genkgo\Mail\Protocol\Imap\Request\SearchCriteria;
5
6
use Genkgo\Mail\Protocol\Imap\Flag;
7
8
/**
9
 * Class KeywordFlagCriterium
10
 * @package Genkgo\Mail\Protocol\Imap\Request\SearchCriteria
11
 */
12
final class KeywordFlagCriterion implements CriterionInterface
13
{
14
15
    /**
16
     * @var string
17
     */
18
    private $name;
19
    /**
20
     * @var Flag
21
     */
22
    private $flag;
23
24
    /**
25
     * KeywordFlagCriterium constructor.
26
     * @param string $name
27
     * @param Flag $flag
28
     */
29
    private function __construct(string $name, Flag $flag)
30
    {
31
        $this->name = $name;
32
        $this->flag = $flag;
33
    }
34
35
    /**
36
     * @return string
37
     */
38
    public function __toString(): string
39
    {
40
        return sprintf(
41
            '%s %s',
42
            $this->name,
43
            (string)$this->flag
44
        );
45
    }
46
47
    /**
48
     * @param Flag $flag
49
     * @return KeywordFlagCriterion
50
     */
51
    public static function keyword(Flag $flag): self
52
    {
53
        return new self('KEYWORD', $flag);
54
    }
55
56
    /**
57
     * @param Flag $flag
58
     * @return KeywordFlagCriterion
59
     */
60
    public static function unkeyword(Flag $flag): self
61
    {
62
        return new self('UNKEYWORD', $flag);
63
    }
64
}