Passed
Push — master ( b5bf25...b5ca6c )
by Aleksandar
02:13
created

MySqlQueryBuilderState::getParamsBuilder()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 1
c 1
b 0
f 0
nc 1
nop 0
dl 0
loc 3
ccs 2
cts 2
cp 1
crap 1
rs 10
1
<?php
2
/**
3
 * Copyright 2021 Aleksandar Panic
4
 *
5
 * Licensed under the Apache License, Version 2.0 (the "License");
6
 * you may not use this file except in compliance with the License.
7
 * You may obtain a copy of the License at
8
 *
9
 *   http://www.apache.org/licenses/LICENSE-2.0
10
 *
11
 * Unless required by applicable law or agreed to in writing, software
12
 * distributed under the License is distributed on an "AS IS" BASIS,
13
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
 * See the License for the specific language governing permissions and
15
 * limitations under the License.
16
 */
17
18
namespace ArekX\PQL\Drivers\MySql\Builder;
19
20
use ArekX\PQL\Contracts\QueryBuilder;
21
use ArekX\PQL\Contracts\QueryBuilderState;
22
use ArekX\PQL\Sql\SqlParamBuilder;
23
24
/**
25
 * Represents a query builder state for MySQL
26
 */
27
class MySqlQueryBuilderState implements QueryBuilderState
28
{
29
    /**
30
     * State for the query build.
31
     *
32
     * @var array
33
     */
34
    protected $state = [];
35
36
    /**
37
     * Create new instance of this class
38
     *
39
     * @return static
40
     */
41 14
    public static function create()
42
    {
43 14
        return new static();
44
    }
45
46
    /**
47
     * @inheritDoc
48
     */
49 13
    public function get(string $name, $default = null)
50
    {
51 13
        if (!array_key_exists($name, $this->state)) {
52 10
            return $default;
53
        }
54 10
        return $this->state[$name];
55
    }
56
57
    /**
58
     * @inheritDoc
59
     */
60 13
    public function set(string $name, $value): void
61
    {
62 13
        $this->state[$name] = $value;
63 13
    }
64
65 6
    public function getParamsBuilder(): SqlParamBuilder
66
    {
67 6
        return $this->get('paramsBuilder');
0 ignored issues
show
Bug Best Practice introduced by
The expression return $this->get('paramsBuilder') could return the type null which is incompatible with the type-hinted return ArekX\PQL\Sql\SqlParamBuilder. Consider adding an additional type-check to rule them out.
Loading history...
68
    }
69
70 2
    public function getParentBuilder(): QueryBuilder
71
    {
72 2
        return $this->get('parentBuilder');
0 ignored issues
show
Bug Best Practice introduced by
The expression return $this->get('parentBuilder') could return the type null which is incompatible with the type-hinted return ArekX\PQL\Contracts\QueryBuilder. Consider adding an additional type-check to rule them out.
Loading history...
73
    }
74
75 6
    public function getQueryPartGlue(): string
76
    {
77 6
        return $this->get('queryPartGlue', ' ');
78
    }
79
}