Sorter   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 21
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 1

Importance

Changes 0
Metric Value
dl 0
loc 21
c 0
b 0
f 0
wmc 2
lcom 0
cbo 1
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
A sort() 0 10 2
1
<?php
2
namespace Netdudes\DataSourceryBundle\DataSource\Driver\Doctrine\QueryBuilder;
3
4
use Doctrine\ORM\QueryBuilder;
5
use Netdudes\DataSourceryBundle\Query\Sort;
6
use Netdudes\DataSourceryBundle\Query\SortCondition;
7
8
class Sorter
9
{
10
    /**
11
     * Apply the sortings to the query builder
12
     *
13
     * @param QueryBuilder $queryBuilder
14
     * @param Sort         $sortCollectionDefinition
15
     *
16
     * @return \Doctrine\ORM\QueryBuilder
17
     */
18
    public function sort(QueryBuilder $queryBuilder, Sort $sortCollectionDefinition, $uniqueNameToQueryFieldMap)
19
    {
20
        /** @var $sortDefinition SortCondition */
21
        foreach ($sortCollectionDefinition as $sortDefinition) {
22
            $identifier = $uniqueNameToQueryFieldMap[$sortDefinition->getFieldName()];
23
            $queryBuilder->orderBy($identifier, $sortDefinition->getDirection());
24
        }
25
26
        return $queryBuilder;
27
    }
28
}
29