Passed
Push — master ( 6c661c...e8275e )
by Sebastian
04:14
created

Mailcode_Traits_Commands_Validation_Multiline   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 37
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 11
c 1
b 0
f 0
dl 0
loc 37
rs 10
wmc 5

3 Methods

Rating   Name   Duplication   Size   Complexity  
A getMultilineToken() 0 8 2
A isMultiline() 0 3 1
A validateSyntax_multiline() 0 9 2
1
<?php
2
/**
3
 * File containing the {@see Mailcode_Traits_Commands_Validation_Multiline} trait.
4
 *
5
 * @package Mailcode
6
 * @subpackage Validation
7
 * @see Mailcode_Traits_Commands_Validation_Multiline
8
 */
9
10
declare(strict_types=1);
11
12
namespace Mailcode;
13
14
/**
15
 * Command validation drop-in: checks for the presence
16
 * of the `multiline:` keyword in the command statement,
17
 * and sets the multiline flag accordingly.
18
 *
19
 * @package Mailcode
20
 * @subpackage Validation
21
 * @author Sebastian Mordziol <[email protected]>
22
 *
23
 * @property Mailcode_Parser_Statement_Validator $validator
24
 *
25
 * @see Mailcode_Interfaces_Commands_Multiline
26
 */
27
trait Mailcode_Traits_Commands_Validation_Multiline
28
{
29
   /**
30
    * @var boolean
31
    */
32
    protected $multiline = false;
33
34
   /**
35
    * @var Mailcode_Parser_Statement_Tokenizer_Token_Keyword|NULL
36
    */
37
    protected $multilineToken;
38
    
39
    protected function validateSyntax_multiline() : void
40
    {
41
        $val = $this->validator->createKeyword(Mailcode_Commands_Keywords::TYPE_MULTILINE);
42
        
43
        $this->multiline = $val->isValid();
44
        
45
        if($val->isValid())
46
        {
47
            $this->multilineToken = $val->getToken();
48
        }
49
    }
50
    
51
    public function isMultiline() : bool
52
    {
53
        return $this->multiline;
54
    }
55
    
56
    public function getMultilineToken() : ?Mailcode_Parser_Statement_Tokenizer_Token_Keyword
57
    {
58
        if($this->multilineToken instanceof Mailcode_Parser_Statement_Tokenizer_Token_Keyword)
59
        {
60
            return $this->multilineToken;
61
        }
62
        
63
        return null;
64
    }
65
}
66