| 1: | <?php |
| 2: | |
| 3: | declare(strict_types=1); |
| 4: | |
| 5: | namespace LaravelUi5\OData\Protocol\Planning\Expression; |
| 6: | |
| 7: | abstract readonly class FilterExpression |
| 8: | { |
| 9: | abstract public function kind(): FilterExpressionKind; |
| 10: | |
| 11: | |
| 12: | |
| 13: | |
| 14: | |
| 15: | |
| 16: | final public function accept(FilterExpressionVisitor $visitor): mixed |
| 17: | { |
| 18: | return match ($this->kind()) { |
| 19: | FilterExpressionKind::Literal => $visitor->visitLiteral($this), |
| 20: | FilterExpressionKind::NullLiteral => $visitor->visitNullLiteral($this), |
| 21: | FilterExpressionKind::PropertyPath => $visitor->visitPropertyPath($this), |
| 22: | FilterExpressionKind::Binary => $visitor->visitBinary($this), |
| 23: | FilterExpressionKind::Unary => $visitor->visitUnary($this), |
| 24: | FilterExpressionKind::FunctionCall => $visitor->visitFunctionCall($this), |
| 25: | FilterExpressionKind::Lambda => $visitor->visitLambda($this), |
| 26: | FilterExpressionKind::LambdaVariable => $visitor->visitLambdaVariable($this), |
| 27: | }; |
| 28: | } |
| 29: | } |
| 30: | |