Skip to content

Commit 55d97ec

Browse files
authored
Do not use UnexpectedFilterException (#35)
1 parent 253060f commit 55d97ec

31 files changed

+20
-428
lines changed

src/Exception/UnexpectedFilterException.php

-27
This file was deleted.

src/Reader/FilterHandler/AllHandler.php

+2-5
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,8 @@
66

77
use Cycle\ORM\Select\QueryBuilder;
88
use Yiisoft\Data\Cycle\Exception\NotSupportedFilterException;
9-
use Yiisoft\Data\Cycle\Exception\UnexpectedFilterException;
10-
use Yiisoft\Data\Reader\Filter\All;
119
use Yiisoft\Data\Cycle\Reader\QueryBuilderFilterHandler;
10+
use Yiisoft\Data\Reader\Filter\All;
1211
use Yiisoft\Data\Reader\FilterHandlerInterface;
1312
use Yiisoft\Data\Reader\FilterInterface;
1413

@@ -21,9 +20,7 @@ public function getFilterClass(): string
2120

2221
public function getAsWhereArguments(FilterInterface $filter, array $handlers): array
2322
{
24-
if (!$filter instanceof All) {
25-
throw new UnexpectedFilterException(All::class, $filter::class);
26-
}
23+
/** @var All $filter */
2724

2825
return [
2926
static function (QueryBuilder $select) use ($filter, $handlers) {

src/Reader/FilterHandler/AnyHandler.php

+2-5
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,8 @@
66

77
use Cycle\ORM\Select\QueryBuilder;
88
use Yiisoft\Data\Cycle\Exception\NotSupportedFilterException;
9-
use Yiisoft\Data\Cycle\Exception\UnexpectedFilterException;
10-
use Yiisoft\Data\Reader\Filter\Any;
119
use Yiisoft\Data\Cycle\Reader\QueryBuilderFilterHandler;
10+
use Yiisoft\Data\Reader\Filter\Any;
1211
use Yiisoft\Data\Reader\FilterHandlerInterface;
1312
use Yiisoft\Data\Reader\FilterInterface;
1413

@@ -21,9 +20,7 @@ public function getFilterClass(): string
2120

2221
public function getAsWhereArguments(FilterInterface $filter, array $handlers): array
2322
{
24-
if (!$filter instanceof Any) {
25-
throw new UnexpectedFilterException(Any::class, $filter::class);
26-
}
23+
/** @var Any $filter */
2724

2825
return [
2926
static function (QueryBuilder $select) use ($filter, $handlers) {

src/Reader/FilterHandler/BetweenHandler.php

+1-4
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
namespace Yiisoft\Data\Cycle\Reader\FilterHandler;
66

7-
use Yiisoft\Data\Cycle\Exception\UnexpectedFilterException;
87
use Yiisoft\Data\Cycle\Reader\QueryBuilderFilterHandler;
98
use Yiisoft\Data\Reader\Filter\Between;
109
use Yiisoft\Data\Reader\FilterHandlerInterface;
@@ -19,9 +18,7 @@ public function getFilterClass(): string
1918

2019
public function getAsWhereArguments(FilterInterface $filter, array $handlers): array
2120
{
22-
if (!$filter instanceof Between) {
23-
throw new UnexpectedFilterException(Between::class, $filter::class);
24-
}
21+
/** @var Between $filter */
2522

2623
return [$filter->getField(), 'between', $filter->getMinValue(), $filter->getMaxValue()];
2724
}

src/Reader/FilterHandler/EqualsHandler.php

+1-4
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
namespace Yiisoft\Data\Cycle\Reader\FilterHandler;
66

7-
use Yiisoft\Data\Cycle\Exception\UnexpectedFilterException;
87
use Yiisoft\Data\Cycle\Reader\QueryBuilderFilterHandler;
98
use Yiisoft\Data\Reader\Filter\Equals;
109
use Yiisoft\Data\Reader\FilterHandlerInterface;
@@ -19,9 +18,7 @@ public function getFilterClass(): string
1918

2019
public function getAsWhereArguments(FilterInterface $filter, array $handlers): array
2120
{
22-
if (!$filter instanceof Equals) {
23-
throw new UnexpectedFilterException(Equals::class, $filter::class);
24-
}
21+
/** @var Equals $filter */
2522

2623
return [$filter->getField(), '=', $filter->getValue()];
2724
}

src/Reader/FilterHandler/EqualsNullHandler.php

+1-4
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
namespace Yiisoft\Data\Cycle\Reader\FilterHandler;
66

7-
use Yiisoft\Data\Cycle\Exception\UnexpectedFilterException;
87
use Yiisoft\Data\Cycle\Reader\QueryBuilderFilterHandler;
98
use Yiisoft\Data\Reader\Filter\EqualsNull;
109
use Yiisoft\Data\Reader\FilterHandlerInterface;
@@ -19,9 +18,7 @@ public function getFilterClass(): string
1918

2019
public function getAsWhereArguments(FilterInterface $filter, array $handlers): array
2120
{
22-
if (!$filter instanceof EqualsNull) {
23-
throw new UnexpectedFilterException(EqualsNull::class, $filter::class);
24-
}
21+
/** @var EqualsNull $filter */
2522

2623
return [$filter->getField(), '=', null];
2724
}

src/Reader/FilterHandler/GreaterThanHandler.php

+1-4
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
namespace Yiisoft\Data\Cycle\Reader\FilterHandler;
66

7-
use Yiisoft\Data\Cycle\Exception\UnexpectedFilterException;
87
use Yiisoft\Data\Cycle\Reader\QueryBuilderFilterHandler;
98
use Yiisoft\Data\Reader\Filter\GreaterThan;
109
use Yiisoft\Data\Reader\FilterHandlerInterface;
@@ -19,9 +18,7 @@ public function getFilterClass(): string
1918

2019
public function getAsWhereArguments(FilterInterface $filter, array $handlers): array
2120
{
22-
if (!$filter instanceof GreaterThan) {
23-
throw new UnexpectedFilterException(GreaterThan::class, $filter::class);
24-
}
21+
/** @var GreaterThan $filter */
2522

2623
return [$filter->getField(), '>', $filter->getValue()];
2724
}

src/Reader/FilterHandler/GreaterThanOrEqualHandler.php

+1-4
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
namespace Yiisoft\Data\Cycle\Reader\FilterHandler;
66

7-
use Yiisoft\Data\Cycle\Exception\UnexpectedFilterException;
87
use Yiisoft\Data\Cycle\Reader\QueryBuilderFilterHandler;
98
use Yiisoft\Data\Reader\Filter\GreaterThanOrEqual;
109
use Yiisoft\Data\Reader\FilterHandlerInterface;
@@ -19,9 +18,7 @@ public function getFilterClass(): string
1918

2019
public function getAsWhereArguments(FilterInterface $filter, array $handlers): array
2120
{
22-
if (!$filter instanceof GreaterThanOrEqual) {
23-
throw new UnexpectedFilterException(GreaterThanOrEqual::class, $filter::class);
24-
}
21+
/** @var GreaterThanOrEqual $filter */
2522

2623
return [$filter->getField(), '>=', $filter->getValue()];
2724
}

src/Reader/FilterHandler/InHandler.php

+3-6
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,9 @@
55
namespace Yiisoft\Data\Cycle\Reader\FilterHandler;
66

77
use Cycle\Database\Injection\Parameter;
8-
use Yiisoft\Data\Cycle\Exception\UnexpectedFilterException;
9-
use Yiisoft\Data\Reader\FilterHandlerInterface;
10-
use Yiisoft\Data\Reader\Filter\In;
118
use Yiisoft\Data\Cycle\Reader\QueryBuilderFilterHandler;
9+
use Yiisoft\Data\Reader\Filter\In;
10+
use Yiisoft\Data\Reader\FilterHandlerInterface;
1211
use Yiisoft\Data\Reader\FilterInterface;
1312

1413
final class InHandler implements QueryBuilderFilterHandler, FilterHandlerInterface
@@ -20,9 +19,7 @@ public function getFilterClass(): string
2019

2120
public function getAsWhereArguments(FilterInterface $filter, array $handlers): array
2221
{
23-
if (!$filter instanceof In) {
24-
throw new UnexpectedFilterException(In::class, $filter::class);
25-
}
22+
/** @var In $filter */
2623

2724
return [$filter->getField(), 'in', new Parameter($filter->getValues())];
2825
}

src/Reader/FilterHandler/LessThanHandler.php

+1-4
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
namespace Yiisoft\Data\Cycle\Reader\FilterHandler;
66

7-
use Yiisoft\Data\Cycle\Exception\UnexpectedFilterException;
87
use Yiisoft\Data\Cycle\Reader\QueryBuilderFilterHandler;
98
use Yiisoft\Data\Reader\Filter\LessThan;
109
use Yiisoft\Data\Reader\FilterHandlerInterface;
@@ -19,9 +18,7 @@ public function getFilterClass(): string
1918

2019
public function getAsWhereArguments(FilterInterface $filter, array $handlers): array
2120
{
22-
if (!$filter instanceof LessThan) {
23-
throw new UnexpectedFilterException(LessThan::class, $filter::class);
24-
}
21+
/** @var LessThan $filter */
2522

2623
return [$filter->getField(), '<', $filter->getValue()];
2724
}

src/Reader/FilterHandler/LessThanOrEqualHandler.php

+1-4
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
namespace Yiisoft\Data\Cycle\Reader\FilterHandler;
66

7-
use Yiisoft\Data\Cycle\Exception\UnexpectedFilterException;
87
use Yiisoft\Data\Cycle\Reader\QueryBuilderFilterHandler;
98
use Yiisoft\Data\Reader\Filter\LessThanOrEqual;
109
use Yiisoft\Data\Reader\FilterHandlerInterface;
@@ -19,9 +18,7 @@ public function getFilterClass(): string
1918

2019
public function getAsWhereArguments(FilterInterface $filter, array $handlers): array
2120
{
22-
if (!$filter instanceof LessThanOrEqual) {
23-
throw new UnexpectedFilterException(LessThanOrEqual::class, $filter::class);
24-
}
21+
/** @var LessThanOrEqual $filter */
2522

2623
return [$filter->getField(), '<=', $filter->getValue()];
2724
}

src/Reader/FilterHandler/LikeHandler/MysqlLikeHandler.php

+1-4
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
namespace Yiisoft\Data\Cycle\Reader\FilterHandler\LikeHandler;
66

7-
use Yiisoft\Data\Cycle\Exception\UnexpectedFilterException;
87
use Yiisoft\Data\Cycle\Reader\QueryBuilderFilterHandler;
98
use Yiisoft\Data\Reader\Filter\Like;
109
use Yiisoft\Data\Reader\FilterInterface;
@@ -13,9 +12,7 @@ final class MysqlLikeHandler extends BaseLikeHandler implements QueryBuilderFilt
1312
{
1413
public function getAsWhereArguments(FilterInterface $filter, array $handlers): array
1514
{
16-
if (!$filter instanceof Like) {
17-
throw new UnexpectedFilterException(Like::class, $filter::class);
18-
}
15+
/** @var Like $filter */
1916

2017
if ($filter->isCaseSensitive() !== true) {
2118
return [$filter->getField(), 'like', '%' . $this->prepareValue($filter->getValue()) . '%'];

src/Reader/FilterHandler/LikeHandler/PostgresLikeHandler.php

+1-4
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
namespace Yiisoft\Data\Cycle\Reader\FilterHandler\LikeHandler;
66

7-
use Yiisoft\Data\Cycle\Exception\UnexpectedFilterException;
87
use Yiisoft\Data\Cycle\Reader\QueryBuilderFilterHandler;
98
use Yiisoft\Data\Reader\Filter\Like;
109
use Yiisoft\Data\Reader\FilterInterface;
@@ -13,9 +12,7 @@ final class PostgresLikeHandler extends BaseLikeHandler implements QueryBuilderF
1312
{
1413
public function getAsWhereArguments(FilterInterface $filter, array $handlers): array
1514
{
16-
if (!$filter instanceof Like) {
17-
throw new UnexpectedFilterException(Like::class, $filter::class);
18-
}
15+
/** @var Like $filter */
1916

2017
if ($filter->isCaseSensitive() !== true) {
2118
return [$filter->getField(), 'ilike', $this->prepareValue($filter->getValue())];

src/Reader/FilterHandler/LikeHandler/SqlServerLikeHandler.php

+1-4
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
namespace Yiisoft\Data\Cycle\Reader\FilterHandler\LikeHandler;
66

77
use Yiisoft\Data\Cycle\Exception\NotSupportedFilterOptionException;
8-
use Yiisoft\Data\Cycle\Exception\UnexpectedFilterException;
98
use Yiisoft\Data\Cycle\Reader\QueryBuilderFilterHandler;
109
use Yiisoft\Data\Reader\Filter\Like;
1110
use Yiisoft\Data\Reader\FilterInterface;
@@ -19,9 +18,7 @@ public function __construct()
1918

2019
public function getAsWhereArguments(FilterInterface $filter, array $handlers): array
2120
{
22-
if (!$filter instanceof Like) {
23-
throw new UnexpectedFilterException(Like::class, $filter::class);
24-
}
21+
/** @var Like $filter */
2522

2623
if ($filter->isCaseSensitive() === true) {
2724
throw new NotSupportedFilterOptionException(optionName: 'caseSensitive', driverType: 'SQLServer');

src/Reader/FilterHandler/LikeHandler/SqliteLikeHandler.php

+1-4
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
namespace Yiisoft\Data\Cycle\Reader\FilterHandler\LikeHandler;
66

77
use Yiisoft\Data\Cycle\Exception\NotSupportedFilterOptionException;
8-
use Yiisoft\Data\Cycle\Exception\UnexpectedFilterException;
98
use Yiisoft\Data\Cycle\Reader\QueryBuilderFilterHandler;
109
use Yiisoft\Data\Reader\Filter\Like;
1110
use Yiisoft\Data\Reader\FilterInterface;
@@ -19,9 +18,7 @@ public function __construct()
1918

2019
public function getAsWhereArguments(FilterInterface $filter, array $handlers): array
2120
{
22-
if (!$filter instanceof Like) {
23-
throw new UnexpectedFilterException(Like::class, $filter::class);
24-
}
21+
/** @var Like $filter */
2522

2623
if ($filter->isCaseSensitive() === true) {
2724
throw new NotSupportedFilterOptionException(optionName: 'caseSensitive', driverType: 'SQLite');

src/Reader/FilterHandler/NotHandler.php

+1-4
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
namespace Yiisoft\Data\Cycle\Reader\FilterHandler;
66

77
use Yiisoft\Data\Cycle\Exception\NotSupportedFilterException;
8-
use Yiisoft\Data\Cycle\Exception\UnexpectedFilterException;
98
use Yiisoft\Data\Cycle\Reader\QueryBuilderFilterHandler;
109
use Yiisoft\Data\Reader\Filter\All;
1110
use Yiisoft\Data\Reader\Filter\Any;
@@ -31,9 +30,7 @@ public function getFilterClass(): string
3130

3231
public function getAsWhereArguments(FilterInterface $filter, array $handlers): array
3332
{
34-
if (!$filter instanceof Not) {
35-
throw new UnexpectedFilterException(Not::class, $filter::class);
36-
}
33+
/** @var Not $filter */
3734

3835
$convertedFilter = $this->convertFilter($filter->getFilter());
3936
$handledFilter = $convertedFilter instanceof Not ? $convertedFilter->getFilter() : $convertedFilter;

src/Reader/QueryBuilderFilterHandler.php

-3
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,13 @@
44

55
namespace Yiisoft\Data\Cycle\Reader;
66

7-
use Yiisoft\Data\Cycle\Exception\UnexpectedFilterException;
87
use Yiisoft\Data\Reader\FilterHandlerInterface;
98
use Yiisoft\Data\Reader\FilterInterface;
109

1110
interface QueryBuilderFilterHandler
1211
{
1312
/**
1413
* @psalm-param array<class-string, FilterHandlerInterface & QueryBuilderFilterHandler> $handlers
15-
*
16-
* @throws UnexpectedFilterException When filter does not match the expected one.
1714
*/
1815
public function getAsWhereArguments(FilterInterface $filter, array $handlers): array;
1916
}

tests/Exception/UnexpectedFilterExceptionTest.php

-25
This file was deleted.

tests/Support/StubFilterHandler.php

+1-4
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
namespace Yiisoft\Data\Cycle\Tests\Support;
66

7-
use Yiisoft\Data\Cycle\Exception\UnexpectedFilterException;
87
use Yiisoft\Data\Cycle\Reader\QueryBuilderFilterHandler;
98
use Yiisoft\Data\Reader\FilterHandlerInterface;
109
use Yiisoft\Data\Reader\FilterInterface;
@@ -18,9 +17,7 @@ public function getFilterClass(): string
1817

1918
public function getAsWhereArguments(FilterInterface $filter, array $handlers): array
2019
{
21-
if (!$filter instanceof StubFilter) {
22-
throw new UnexpectedFilterException(StubFilter::class, $filter::class);
23-
}
20+
/** @var StubFilter $filter */
2421

2522
return ['field', 'symbol', 'value'];
2623
}

0 commit comments

Comments
 (0)