summaryrefslogtreecommitdiff
path: root/vendor/doctrine/orm/src/Query/Expr/Math.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/doctrine/orm/src/Query/Expr/Math.php')
-rw-r--r--vendor/doctrine/orm/src/Query/Expr/Math.php59
1 files changed, 59 insertions, 0 deletions
diff --git a/vendor/doctrine/orm/src/Query/Expr/Math.php b/vendor/doctrine/orm/src/Query/Expr/Math.php
new file mode 100644
index 0000000..05e0b39
--- /dev/null
+++ b/vendor/doctrine/orm/src/Query/Expr/Math.php
@@ -0,0 +1,59 @@
1<?php
2
3declare(strict_types=1);
4
5namespace Doctrine\ORM\Query\Expr;
6
7use Stringable;
8
9/**
10 * Expression class for DQL math statements.
11 *
12 * @link www.doctrine-project.org
13 */
14class Math implements Stringable
15{
16 /**
17 * Creates a mathematical expression with the given arguments.
18 */
19 public function __construct(
20 protected mixed $leftExpr,
21 protected string $operator,
22 protected mixed $rightExpr,
23 ) {
24 }
25
26 public function getLeftExpr(): mixed
27 {
28 return $this->leftExpr;
29 }
30
31 public function getOperator(): string
32 {
33 return $this->operator;
34 }
35
36 public function getRightExpr(): mixed
37 {
38 return $this->rightExpr;
39 }
40
41 public function __toString(): string
42 {
43 // Adjusting Left Expression
44 $leftExpr = (string) $this->leftExpr;
45
46 if ($this->leftExpr instanceof Math) {
47 $leftExpr = '(' . $leftExpr . ')';
48 }
49
50 // Adjusting Right Expression
51 $rightExpr = (string) $this->rightExpr;
52
53 if ($this->rightExpr instanceof Math) {
54 $rightExpr = '(' . $rightExpr . ')';
55 }
56
57 return $leftExpr . ' ' . $this->operator . ' ' . $rightExpr;
58 }
59}