Passed
Push — master ( e288dc...71d24f )
by Richard
01:40
created

GeneralOperator::matches()   B

Complexity

Conditions 5
Paths 5

Size

Total Lines 3
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 5
eloc 2
nc 5
nop 3
dl 0
loc 3
rs 8.8571
c 0
b 0
f 0
1
<?php
2
namespace Maphper\Lib\Sql;
3
use Maphper\Maphper;
4
5
class GeneralOperator implements WhereConditional {
6
    public function matches($key, $value, $mode) {
7
        return Maphper::FIND_BIT & $mode || Maphper::FIND_GREATER & $mode ||
8
                Maphper::FIND_LESS & $mode || Maphper::FIND_NOT & $mode || Maphper::FIND_EXACT & $mode;
9
    }
10
11
    public function getSql($key, $value, $mode) {
12
        return [
13
            'sql' => [$key . ' ' . $this->getOperator($mode) . ' :' . $key],
14
            'args' => [$key => $value]
15
        ];
16
    }
17
18
    private function getOperator($mode) {
19
        $operator = "";
20
21
        if (\Maphper\Maphper::FIND_BIT & $mode) $operator = '&';
22
        else if (\Maphper\Maphper::FIND_GREATER & $mode) $operator = '>';
23
        else if (\Maphper\Maphper::FIND_LESS & $mode) $operator = '<';
24
        else if (\Maphper\Maphper::FIND_NOT & $mode) $operator = '!=';
25
26
        if (\Maphper\Maphper::FIND_EXACT & $mode) $operator .= '=';
27
28
        return $operator;
29
    }
30
}
31