GeneralOperator   A
last analyzed

Complexity

Total Complexity 10

Size/Duplication

Total Lines 29
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 14
dl 0
loc 29
rs 10
c 0
b 0
f 0
wmc 10

4 Methods

Rating   Name   Duplication   Size   Complexity  
A matches() 0 3 2
A getSql() 0 4 1
A getEqualsOperators() 0 9 4
A getOperator() 0 5 3
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 ^ Maphper::FIND_GREATER ^ Maphper::FIND_LESS ^ Maphper::FIND_NOT & $mode)
8
                || 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
        if (\Maphper\Maphper::FIND_BIT & $mode) return '&';
20
        else if (\Maphper\Maphper::FIND_NOT & $mode) return '!=';
21
22
        return $this->getEqualsOperators($mode);
23
    }
24
25
    private function getEqualsOperators($mode) {
26
        $operator = "";
27
28
        if (\Maphper\Maphper::FIND_GREATER & $mode) $operator = '>';
29
        else if (\Maphper\Maphper::FIND_LESS & $mode) $operator = '<';
30
31
        if (\Maphper\Maphper::FIND_EXACT & $mode) $operator .= '=';
32
33
        return $operator;
34
    }
35
}
36