Passed
Pull Request — master (#13)
by Bas
03:44 queued 01:39
created

FilterClause::compilePredicates()   A

Complexity

Conditions 5
Paths 7

Size

Total Lines 17
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 10
CRAP Score 5

Importance

Changes 2
Bugs 0 Features 0
Metric Value
cc 5
eloc 9
c 2
b 0
f 0
nc 7
nop 3
dl 0
loc 17
ccs 10
cts 10
cp 1
crap 5
rs 9.6111
1
<?php
2
3
namespace LaravelFreelancerNL\FluentAQL\Clauses;
4
5
use LaravelFreelancerNL\FluentAQL\Expressions\PredicateExpression;
6
use LaravelFreelancerNL\FluentAQL\QueryBuilder;
7
8
class FilterClause extends Clause
9
{
10
    protected $predicates = [];
11
12
    protected $defaultLogicalOperator = 'AND';
13
14
    /**
15
     * Filter statement.
16
     *
17
     * @param array $predicates
18
     */
19 11
    public function __construct(array $predicates)
20
    {
21 11
        parent::__construct();
22
23 11
        $this->predicates = $predicates;
24 11
    }
25
26 10
    public function compile(QueryBuilder $queryBuilder): string
27
    {
28 10
        $this->predicates = $queryBuilder->normalizePredicates($this->predicates);
29
30 10
        $compiledPredicates = $queryBuilder->compilePredicates($this->predicates);
31
32 10
        return 'FILTER ' . rtrim($compiledPredicates);
33
    }
34
}
35