ConvertTZ   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 33
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 3

Test Coverage

Coverage 100%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 2
c 1
b 0
f 0
lcom 1
cbo 3
dl 0
loc 33
ccs 15
cts 15
cp 1
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A parse() 0 15 1
A getSql() 0 10 1
1
<?php
2
3
namespace Luxifer\DQL\Datetime;
4
5
use Doctrine\ORM\Query\AST\Functions\FunctionNode;
6
use Doctrine\ORM\Query\Lexer;
7
use Doctrine\ORM\Query\Parser;
8
use Doctrine\ORM\Query\SqlWalker;
9
10
/**
11
 * DateFunction ::= "CONVERT_TZ" "(" ArithmeticPrimary "," StringPrimary "," StringPrimary ")"
12
 */
13
class ConvertTZ extends FunctionNode
14
{
15
    public $dateExpression;
16
    public $fromTZ;
17
    public $toTZ;
18
19 1
    public function parse(Parser $parser)
20
    {
21 1
        $parser->match(Lexer::T_IDENTIFIER);
22 1
        $parser->match(Lexer::T_OPEN_PARENTHESIS);
23
24 1
        $this->dateExpression = $parser->ArithmeticPrimary();
25 1
        $parser->match(Lexer::T_COMMA);
26
27 1
        $this->fromTZ = $parser->StringPrimary();
28 1
        $parser->match(Lexer::T_COMMA);
29
30 1
        $this->toTZ = $parser->StringPrimary();
31
32 1
        $parser->match(Lexer::T_CLOSE_PARENTHESIS);
33 1
    }
34
35 1
    public function getSql(SqlWalker $sqlWalker)
36
    {
37
        $parts = array(
38 1
            $sqlWalker->walkArithmeticPrimary($this->dateExpression),
39 1
            $sqlWalker->walkStringPrimary($this->fromTZ),
40 1
            $sqlWalker->walkStringPrimary($this->toTZ)
41
        );
42
43 1
        return sprintf('CONVERT_TZ(%s)', implode(', ', $parts));
44
    }
45
}
46