Sorter::sort()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 10
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 10
c 0
b 0
f 0
rs 9.4285
cc 2
eloc 5
nc 2
nop 3
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