Skip to content

Commit a245cf1

Browse files
committed
Add named predicate classes for direct, lightweight comparison predicates
1 parent b1381dd commit a245cf1

File tree

7 files changed

+131
-6
lines changed

7 files changed

+131
-6
lines changed

src/Sql/Predicate/EqualTo.php

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace PhpDb\Sql\Predicate;
6+
7+
use PhpDb\Sql\ArgumentInterface;
8+
use PhpDb\Sql\ExpressionInterface;
9+
use PhpDb\Sql\SqlInterface;
10+
11+
final class EqualTo extends Operator
12+
{
13+
public function __construct(
14+
string|ArgumentInterface|ExpressionInterface|SqlInterface $left,
15+
bool|string|int|float|ArgumentInterface|ExpressionInterface|SqlInterface $right,
16+
) {
17+
$this->setLeft($left);
18+
$this->setRight($right);
19+
}
20+
}

src/Sql/Predicate/GreaterThan.php

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace PhpDb\Sql\Predicate;
6+
7+
use PhpDb\Sql\ArgumentInterface;
8+
use PhpDb\Sql\ExpressionInterface;
9+
use PhpDb\Sql\SqlInterface;
10+
11+
final class GreaterThan extends Operator
12+
{
13+
public function __construct(
14+
string|ArgumentInterface|ExpressionInterface|SqlInterface $left,
15+
bool|string|int|float|ArgumentInterface|ExpressionInterface|SqlInterface $right,
16+
) {
17+
$this->operator = self::OPERATOR_GREATER_THAN;
18+
$this->setLeft($left);
19+
$this->setRight($right);
20+
}
21+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace PhpDb\Sql\Predicate;
6+
7+
use PhpDb\Sql\ArgumentInterface;
8+
use PhpDb\Sql\ExpressionInterface;
9+
use PhpDb\Sql\SqlInterface;
10+
11+
final class GreaterThanOrEqualTo extends Operator
12+
{
13+
public function __construct(
14+
string|ArgumentInterface|ExpressionInterface|SqlInterface $left,
15+
bool|string|int|float|ArgumentInterface|ExpressionInterface|SqlInterface $right,
16+
) {
17+
$this->operator = self::OPERATOR_GREATER_THAN_OR_EQUAL_TO;
18+
$this->setLeft($left);
19+
$this->setRight($right);
20+
}
21+
}

src/Sql/Predicate/LessThan.php

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace PhpDb\Sql\Predicate;
6+
7+
use PhpDb\Sql\ArgumentInterface;
8+
use PhpDb\Sql\ExpressionInterface;
9+
use PhpDb\Sql\SqlInterface;
10+
11+
final class LessThan extends Operator
12+
{
13+
public function __construct(
14+
string|ArgumentInterface|ExpressionInterface|SqlInterface $left,
15+
bool|string|int|float|ArgumentInterface|ExpressionInterface|SqlInterface $right,
16+
) {
17+
$this->operator = self::OPERATOR_LESS_THAN;
18+
$this->setLeft($left);
19+
$this->setRight($right);
20+
}
21+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace PhpDb\Sql\Predicate;
6+
7+
use PhpDb\Sql\ArgumentInterface;
8+
use PhpDb\Sql\ExpressionInterface;
9+
use PhpDb\Sql\SqlInterface;
10+
11+
final class LessThanOrEqualTo extends Operator
12+
{
13+
public function __construct(
14+
string|ArgumentInterface|ExpressionInterface|SqlInterface $left,
15+
bool|string|int|float|ArgumentInterface|ExpressionInterface|SqlInterface $right,
16+
) {
17+
$this->operator = self::OPERATOR_LESS_THAN_OR_EQUAL_TO;
18+
$this->setLeft($left);
19+
$this->setRight($right);
20+
}
21+
}

src/Sql/Predicate/NotEqualTo.php

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace PhpDb\Sql\Predicate;
6+
7+
use PhpDb\Sql\ArgumentInterface;
8+
use PhpDb\Sql\ExpressionInterface;
9+
use PhpDb\Sql\SqlInterface;
10+
11+
final class NotEqualTo extends Operator
12+
{
13+
public function __construct(
14+
string|ArgumentInterface|ExpressionInterface|SqlInterface $left,
15+
bool|string|int|float|ArgumentInterface|ExpressionInterface|SqlInterface $right,
16+
) {
17+
$this->operator = self::OPERATOR_NOT_EQUAL_TO;
18+
$this->setLeft($left);
19+
$this->setRight($right);
20+
}
21+
}

src/Sql/Predicate/Predicate.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ public function equalTo(
7979
null|float|int|string|ArgumentInterface $right,
8080
): static {
8181
$this->addPredicate(
82-
new Operator($left, Operator::OPERATOR_EQUAL_TO, $right),
82+
new EqualTo($left, $right),
8383
$this->getNextPredicateCombineOperator()
8484
);
8585

@@ -95,7 +95,7 @@ public function notEqualTo(
9595
null|float|int|string|ArgumentInterface $right
9696
): static {
9797
$this->addPredicate(
98-
new Operator($left, Operator::OPERATOR_NOT_EQUAL_TO, $right),
98+
new NotEqualTo($left, $right),
9999
$this->getNextPredicateCombineOperator()
100100
);
101101

@@ -111,7 +111,7 @@ public function lessThan(
111111
null|float|int|string|ArgumentInterface $right
112112
): static {
113113
$this->addPredicate(
114-
new Operator($left, Operator::OPERATOR_LESS_THAN, $right),
114+
new LessThan($left, $right),
115115
$this->getNextPredicateCombineOperator()
116116
);
117117

@@ -129,7 +129,7 @@ public function greaterThan(
129129
null|float|int|string|ArgumentInterface $right
130130
): static {
131131
$this->addPredicate(
132-
new Operator($left, Operator::OPERATOR_GREATER_THAN, $right),
132+
new GreaterThan($left, $right),
133133
$this->getNextPredicateCombineOperator()
134134
);
135135

@@ -147,7 +147,7 @@ public function lessThanOrEqualTo(
147147
null|float|int|string|ArgumentInterface $right
148148
): static {
149149
$this->addPredicate(
150-
new Operator($left, Operator::OPERATOR_LESS_THAN_OR_EQUAL_TO, $right),
150+
new LessThanOrEqualTo($left, $right),
151151
$this->getNextPredicateCombineOperator()
152152
);
153153

@@ -165,7 +165,7 @@ public function greaterThanOrEqualTo(
165165
null|float|int|string|ArgumentInterface $right
166166
): static {
167167
$this->addPredicate(
168-
new Operator($left, Operator::OPERATOR_GREATER_THAN_OR_EQUAL_TO, $right),
168+
new GreaterThanOrEqualTo($left, $right),
169169
$this->getNextPredicateCombineOperator()
170170
);
171171

0 commit comments

Comments
 (0)