TQuotationDialect::singleFullOrder()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 2

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 3
c 1
b 0
f 0
dl 0
loc 5
ccs 4
cts 4
cp 1
rs 10
cc 2
nc 2
nop 1
crap 2
1
<?php
2
3
namespace kalanis\kw_mapper\Storage\Database\Dialects;
4
5
6
use kalanis\kw_mapper\Storage\Shared\QueryBuilder;
7
8
9
/**
10
 * Class AQuotationDialect
11
 * @package kalanis\kw_mapper\Storage\Database\Dialects
12
 * All actions escaped by quotes
13
 */
14
trait TQuotationDialect
15
{
16
    use TDialectProps;
17
    use TTranslate;
18
19 17
    public function singleSimpleColumn(QueryBuilder\Column $column): string
20
    {
21 17
        $alias = empty($column->getColumnAlias()) ? '' : sprintf(' AS "%s"', $column->getColumnAlias());
22 17
        $where = sprintf('"%s"', $column->getColumnName() );
23 17
        return empty($column->getAggregate())
24 15
            ? sprintf('%s%s', $where, $alias )
25 17
            : sprintf('%s(%s)%s', $column->getAggregate(), $where, $alias )
26 17
            ;
27
    }
28
29 5
    public function singleFullColumn(QueryBuilder\Column $column): string
30
    {
31 5
        $alias = empty($column->getColumnAlias()) ? '' : sprintf(' AS "%s"', $column->getColumnAlias());
32 5
        $where = empty($column->getTableName())
33 1
            ? sprintf('"%s"', $column->getColumnName() )
34 5
            : sprintf('"%s"."%s"', $column->getTableName(), $column->getColumnName())
35 5
        ;
36 5
        return empty($column->getAggregate())
37 5
            ? sprintf('%s%s', $where, $alias )
38 5
            : sprintf('%s(%s)%s', $column->getAggregate(), $where, $alias )
39 5
        ;
40
    }
41
42 7
    public function singleProperty(QueryBuilder\Property $column): string
43
    {
44 7
        return sprintf('"%s" = %s',
45 7
            $column->getColumnName(),
46 7
            $column->getColumnKey() // PDO key in behalf of value
47 7
        );
48
    }
49
50 9
    public function singleSimplePropertyListed(QueryBuilder\Property $column): string
51
    {
52 9
        return sprintf('"%s"', $column->getColumnName() );
53
    }
54
55 1
    public function singleFullPropertyListed(QueryBuilder\Property $column): string
56
    {
57 1
        return empty($column->getTableName())
58 1
            ? sprintf('"%s"', $column->getColumnName() )
59 1
            : sprintf('"%s"."%s"', $column->getTableName(), $column->getColumnName() )
60 1
        ;
61
    }
62
63 26
    public function singleSimpleCondition(QueryBuilder\Condition $condition): string
64
    {
65 26
        return $condition->isRaw()
66 1
            ? strval($condition->getRaw())
67 26
            : sprintf('"%s" %s %s',
68 26
                $condition->getColumnName(),
69 26
                $this->translateOperation($condition->getOperation()),
70 26
                $this->translateKey($condition->getOperation(), $condition->getColumnKey())
71 26
            );
72
    }
73
74 6
    public function singleFullCondition(QueryBuilder\Condition $condition): string
75
    {
76 6
        return $condition->isRaw()
77 1
            ? strval($condition->getRaw())
78 6
            : (empty($condition->getTableName())
79 2
                ? sprintf('"%s" %s %s',
80 2
                    $condition->getColumnName(),
81 2
                    $this->translateOperation($condition->getOperation()),
82 2
                    $this->translateKey($condition->getOperation(), $condition->getColumnKey())
83 2
                )
84 6
                : sprintf('"%s"."%s" %s %s',
85 6
                    $condition->getTableName(),
86 6
                    $condition->getColumnName(),
87 6
                    $this->translateOperation($condition->getOperation()),
88 6
                    $this->translateKey($condition->getOperation(), $condition->getColumnKey())
89 6
                )
90 6
            )
91 6
        ;
92
    }
93
94 8
    public function singleSimpleOrder(QueryBuilder\Order $order): string
95
    {
96 8
        return sprintf('"%s" %s', $order->getColumnName(), $order->getDirection() );
97
    }
98
99 5
    public function singleFullOrder(QueryBuilder\Order $order): string
100
    {
101 5
        return empty($order->getTableName())
102 1
            ? sprintf('"%s" %s', $order->getColumnName(), $order->getDirection() )
103 5
            : sprintf('"%s"."%s" %s', $order->getTableName(), $order->getColumnName(), $order->getDirection() )
104 5
        ;
105
    }
106
107 3
    public function singleSimpleGroup(QueryBuilder\Group $group): string
108
    {
109 3
        return sprintf('"%s"', $group->getColumnName());
110
    }
111
112 3
    public function singleFullGroup(QueryBuilder\Group $group): string
113
    {
114 3
        return empty($group->getTableName())
115 1
            ? sprintf('"%s"', $group->getColumnName())
116 3
            : sprintf('"%s"."%s"',
117 3
                $group->getTableName(),
118 3
                $group->getColumnName()
119 3
            )
120 3
        ;
121
    }
122
123 5
    public function singleJoin(QueryBuilder\Join $join): string
124
    {
125 5
        return sprintf(' %s JOIN "%s"%s ON ("%s"."%s" = "%s"."%s")',
126 5
            $join->getSide(),
127 5
            $join->getNewTableName(),
128 5
            empty($join->getTableAlias()) ? '' : sprintf(' AS "%s"', $join->getTableAlias()),
129 5
            $join->getKnownTableName(),
130 5
            $join->getKnownColumnName(),
131 5
            empty($join->getTableAlias()) ? $join->getNewTableName() : $join->getTableAlias(),
132 5
            $join->getNewColumnName()
133 5
        );
134
    }
135
}
136