|
6 | 6 | */ |
7 | 7 | declare(strict_types=1); |
8 | 8 |
|
9 | | -namespace Ibexa\Core\Persistence\Legacy\Filter\CriterionQueryBuilder\Location; |
| 9 | +namespace Ibexa\Core\Persistence\Legacy\Filter\CriterionQueryBuilder\Content; |
10 | 10 |
|
11 | 11 | use Doctrine\DBAL\ParameterType; |
12 | 12 | use Ibexa\Contracts\Core\Persistence\Filter\Doctrine\FilteringQueryBuilder; |
13 | 13 | use Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion\IsContainer; |
| 14 | +use Ibexa\Contracts\Core\Repository\Values\Filter\CriterionQueryBuilder; |
14 | 15 | use Ibexa\Contracts\Core\Repository\Values\Filter\FilteringCriterion; |
15 | 16 | use Ibexa\Core\Persistence\Legacy\Content\Type\Gateway; |
16 | 17 |
|
17 | 18 | /** |
18 | 19 | * @internal for internal use by Repository Filtering |
19 | 20 | */ |
20 | | -final class IsContainerQueryBuilder extends BaseLocationCriterionQueryBuilder |
| 21 | +final class IsContainerQueryBuilder implements CriterionQueryBuilder |
21 | 22 | { |
22 | 23 | public function accepts(FilteringCriterion $criterion): bool |
23 | 24 | { |
24 | 25 | return $criterion instanceof IsContainer; |
25 | 26 | } |
26 | 27 |
|
| 28 | + /** |
| 29 | + * @param \Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion\IsContainer $criterion |
| 30 | + */ |
27 | 31 | public function buildQueryConstraint( |
28 | 32 | FilteringQueryBuilder $queryBuilder, |
29 | 33 | FilteringCriterion $criterion |
30 | 34 | ): ?string { |
31 | | - /** @var \Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion\IsContainer $criterion */ |
32 | | - parent::buildQueryConstraint($queryBuilder, $criterion); |
33 | | - |
34 | 35 | $queryBuilder |
35 | 36 | ->joinOnce( |
36 | 37 | 'content', |
37 | 38 | Gateway::CONTENT_TYPE_TABLE, |
38 | | - 'contentclass', |
39 | | - 'content.contentclass_id = contentclass.id', |
| 39 | + 'content_type', |
| 40 | + 'content.contentclass_id = content_type.id', |
40 | 41 | ); |
41 | 42 |
|
42 | 43 | /** @var array{bool} $criterionValue */ |
43 | 44 | $criterionValue = $criterion->value; |
44 | 45 | $isContainer = reset($criterionValue); |
45 | 46 |
|
46 | 47 | return $queryBuilder->expr()->in( |
47 | | - 'contentclass.is_container', |
| 48 | + 'content_type.is_container', |
48 | 49 | $queryBuilder->createNamedParameter((int)$isContainer, ParameterType::INTEGER) |
49 | 50 | ); |
50 | 51 | } |
|
0 commit comments