File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 77use Yiisoft \Db \Exception \NotSupportedException ;
88use Yiisoft \Db \Expression \ExpressionInterface ;
99use Yiisoft \Db \Pgsql \Expression \MultiRangeValue ;
10+ use Yiisoft \Db \Pgsql \Expression \RangeValueInterface ;
1011use Yiisoft \Db \Schema \Column \AbstractColumn ;
1112use Yiisoft \Db \Schema \Column \ColumnInterface ;
1213
1516use function is_string ;
1617
1718/**
18- * @template T of ExpressionInterface
19+ * @template T of RangeValueInterface
1920 */
2021abstract class AbstractMultiRangeColumn extends AbstractColumn
2122{
@@ -53,7 +54,7 @@ public function dbTypecast(mixed $value): mixed
5354 /**
5455 * @inheritDoc
5556 *
56- * @return ?ExpressionInterface []
57+ * @return ?RangeValueInterface []
5758 *
5859 * @psalm-return ?T[]
5960 */
Original file line number Diff line number Diff line change 77use InvalidArgumentException ;
88use Yiisoft \Db \Exception \NotSupportedException ;
99use Yiisoft \Db \Expression \ExpressionInterface ;
10+ use Yiisoft \Db \Pgsql \Expression \RangeValueInterface ;
1011use Yiisoft \Db \Schema \Column \AbstractColumn ;
1112use Yiisoft \Db \Schema \Column \ColumnInterface ;
1213
1617use function sprintf ;
1718
1819/**
19- * @template T of ExpressionInterface
20+ * @template T of RangeValueInterface
2021 */
2122abstract class AbstractRangeColumn extends AbstractColumn
2223{
@@ -56,7 +57,7 @@ public function dbTypecast(mixed $value): mixed
5657 /**
5758 * @inheritDoc
5859 *
59- * @return ?ExpressionInterface
60+ * @return ?RangeValueInterface
6061 *
6162 * @psalm-return ?T
6263 */
@@ -88,6 +89,8 @@ abstract protected function getBoundColumn(): ColumnInterface;
8889 /**
8990 * @throws NotSupportedException
9091 *
92+ * @return RangeValueInterface
93+ *
9194 * @psalm-return T
9295 */
9396 abstract protected function createRangeValue (
Original file line number Diff line number Diff line change 55namespace Yiisoft \Db \Pgsql \Expression ;
66
77use DateTimeImmutable ;
8- use Yiisoft \Db \Expression \ExpressionInterface ;
98
10- final class DateRangeValue implements ExpressionInterface
9+ /**
10+ * @implements RangeValueInterface<DateTimeImmutable>
11+ */
12+ final class DateRangeValue implements RangeValueInterface
1113{
1214 public function __construct (
1315 public readonly ?DateTimeImmutable $ lower = null ,
Original file line number Diff line number Diff line change 44
55namespace Yiisoft \Db \Pgsql \Expression ;
66
7- use Yiisoft \Db \Expression \ExpressionInterface ;
8-
9- final class Int4RangeValue implements ExpressionInterface
7+ /**
8+ * @implements RangeValueInterface<int>
9+ */
10+ final class Int4RangeValue implements RangeValueInterface
1011{
1112 public function __construct (
1213 public readonly ?int $ lower = null ,
Original file line number Diff line number Diff line change 44
55namespace Yiisoft \Db \Pgsql \Expression ;
66
7- use Yiisoft \Db \Expression \ExpressionInterface ;
87use InvalidArgumentException ;
98
109use const PHP_INT_MAX ;
1110use const PHP_INT_MIN ;
1211
13- final class Int8RangeValue implements ExpressionInterface
12+ /**
13+ * @implements RangeValueInterface<int|string>
14+ */
15+ final class Int8RangeValue implements RangeValueInterface
1416{
1517 public function __construct (
1618 public readonly int |string |null $ lower = null ,
Original file line number Diff line number Diff line change 44
55namespace Yiisoft \Db \Pgsql \Expression ;
66
7- use Yiisoft \Db \Expression \ExpressionInterface ;
87use RuntimeException ;
98
10- final class NumRangeValue implements ExpressionInterface
9+ /**
10+ * @implements RangeValueInterface<int|float>
11+ */
12+ final class NumRangeValue implements RangeValueInterface
1113{
1214 public function __construct (
1315 public readonly int |float |null $ lower = null ,
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ declare (strict_types=1 );
4+
5+ namespace Yiisoft \Db \Pgsql \Expression ;
6+
7+ use Yiisoft \Db \Expression \ExpressionInterface ;
8+
9+ /**
10+ * @template T
11+ */
12+ interface RangeValueInterface extends ExpressionInterface
13+ {
14+ /**
15+ * Returns the lower and upper bounds of a range, inclusive.
16+ *
17+ * @psalm-return array{0: ?T, 1: ?T}
18+ */
19+ public function getBounds (): array ;
20+ }
Original file line number Diff line number Diff line change 55namespace Yiisoft \Db \Pgsql \Expression ;
66
77use DateTimeImmutable ;
8- use Yiisoft \Db \Expression \ExpressionInterface ;
98
10- final class TsRangeValue implements ExpressionInterface
9+ /**
10+ * @implements RangeValueInterface<DateTimeImmutable>
11+ */
12+ final class TsRangeValue implements RangeValueInterface
1113{
1214 public function __construct (
1315 public readonly ?DateTimeImmutable $ lower = null ,
Original file line number Diff line number Diff line change 55namespace Yiisoft \Db \Pgsql \Expression ;
66
77use DateTimeImmutable ;
8- use Yiisoft \Db \Expression \ExpressionInterface ;
98
10- final class TsTzRangeValue implements ExpressionInterface
9+ /**
10+ * @implements RangeValueInterface<DateTimeImmutable>
11+ */
12+ final class TsTzRangeValue implements RangeValueInterface
1113{
1214 public function __construct (
1315 public readonly ?DateTimeImmutable $ lower = null ,
You can’t perform that action at this time.
0 commit comments