Code Duplication    Length = 43-43 lines in 2 locations

src/Paymaxi/Component/Query/Handler/CriteriaHandler.php 1 location

@@ 17-59 (lines=43) @@
14
 *
15
 * @package Paymaxi\Component\Query\Handler
16
 */
17
final class CriteriaHandler extends AbstractHandler
18
{
19
    /** @var Criteria */
20
    private $criteria;
21
22
    /**
23
     * CriteriaHandler constructor.
24
     *
25
     * @param Criteria $criteria
26
     */
27
    public function __construct(Criteria $criteria)
28
    {
29
        $this->criteria = $criteria;
30
    }
31
32
    /**
33
     * @param object $object
34
     *
35
     * @return bool
36
     */
37
    public function supports($object): bool
38
    {
39
        return $object instanceof CriteriaSortInterface || $object instanceof CriteriaFilterInterface;
40
    }
41
42
    /**
43
     * @param CriteriaSortInterface|SortInterface $sort
44
     * @param string $order
45
     */
46
    protected function handleSorting(SortInterface $sort, string $order):void
47
    {
48
        $sort->apply($this->criteria, $order);
49
    }
50
51
    /**
52
     * @param FilterInterface|CriteriaFilterInterface $filter
53
     * @param mixed $value
54
     */
55
    protected function handleFiltering(FilterInterface $filter, $value):void
56
    {
57
        $filter->apply($this->criteria, $value);
58
    }
59
}
60

src/Paymaxi/Component/Query/Handler/QueryBuilderHandler.php 1 location

@@ 17-59 (lines=43) @@
14
 *
15
 * @package Paymaxi\Component\Query\Handler
16
 */
17
final class QueryBuilderHandler extends AbstractHandler
18
{
19
    /** @var QueryBuilder */
20
    private $queryBuilder;
21
    
22
    /**
23
     * QueryBuilderHandler constructor.
24
     *
25
     * @param QueryBuilder $queryBuilder
26
     */
27
    public function __construct(QueryBuilder $queryBuilder)
28
    {
29
        $this->queryBuilder = $queryBuilder;
30
    }
31
32
    /**
33
     * @param object $object
34
     *
35
     * @return bool
36
     */
37
    public function supports($object):bool
38
    {
39
        return $object instanceof QueryBuilderSortInterface || $object instanceof QueryBuilderFilterInterface;
40
    }
41
42
    /**
43
     * @param QueryBuilderSortInterface|SortInterface $sort
44
     * @param string $order
45
     */
46
    protected function handleSorting(SortInterface $sort, string $order)  :void
47
    {
48
        $sort->apply($this->queryBuilder, $order);
49
    }
50
51
    /**
52
     * @param FilterInterface|QueryBuilderFilterInterface $filter
53
     * @param mixed $value
54
     */
55
    protected function handleFiltering(FilterInterface $filter, $value)    :void
56
    {
57
        $filter->apply($this->queryBuilder, $value);
58
    }
59
}
60