summaryrefslogtreecommitdiff
path: root/vendor/doctrine/orm/src/Query/AST/PathExpression.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/doctrine/orm/src/Query/AST/PathExpression.php')
-rw-r--r--vendor/doctrine/orm/src/Query/AST/PathExpression.php39
1 files changed, 39 insertions, 0 deletions
diff --git a/vendor/doctrine/orm/src/Query/AST/PathExpression.php b/vendor/doctrine/orm/src/Query/AST/PathExpression.php
new file mode 100644
index 0000000..4a56fcd
--- /dev/null
+++ b/vendor/doctrine/orm/src/Query/AST/PathExpression.php
@@ -0,0 +1,39 @@
1<?php
2
3declare(strict_types=1);
4
5namespace Doctrine\ORM\Query\AST;
6
7use Doctrine\ORM\Query\SqlWalker;
8
9/**
10 * AssociationPathExpression ::= CollectionValuedPathExpression | SingleValuedAssociationPathExpression
11 * SingleValuedPathExpression ::= StateFieldPathExpression | SingleValuedAssociationPathExpression
12 * StateFieldPathExpression ::= SimpleStateFieldPathExpression | SimpleStateFieldAssociationPathExpression
13 * SingleValuedAssociationPathExpression ::= IdentificationVariable "." SingleValuedAssociationField
14 * CollectionValuedPathExpression ::= IdentificationVariable "." CollectionValuedAssociationField
15 * StateField ::= {EmbeddedClassStateField "."}* SimpleStateField
16 * SimpleStateFieldPathExpression ::= IdentificationVariable "." StateField
17 */
18class PathExpression extends Node
19{
20 final public const TYPE_COLLECTION_VALUED_ASSOCIATION = 2;
21 final public const TYPE_SINGLE_VALUED_ASSOCIATION = 4;
22 final public const TYPE_STATE_FIELD = 8;
23
24 /** @psalm-var self::TYPE_*|null */
25 public int|null $type = null;
26
27 /** @psalm-param int-mask-of<self::TYPE_*> $expectedType */
28 public function __construct(
29 public int $expectedType,
30 public string $identificationVariable,
31 public string|null $field = null,
32 ) {
33 }
34
35 public function dispatch(SqlWalker $walker): string
36 {
37 return $walker->walkPathExpression($this);
38 }
39}