vendor/doctrine/orm/src/Query/SqlOutputWalker.php line 18

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace Doctrine\ORM\Query;
  4. use Doctrine\ORM\Query\Exec\PreparedExecutorFinalizer;
  5. use Doctrine\ORM\Query\Exec\SingleSelectSqlFinalizer;
  6. use Doctrine\ORM\Query\Exec\SqlFinalizer;
  7. use LogicException;
  8. class SqlOutputWalker extends SqlWalker implements OutputWalker
  9. {
  10.     public function getFinalizer($AST): SqlFinalizer
  11.     {
  12.         switch (true) {
  13.             case $AST instanceof AST\SelectStatement:
  14.                 return new SingleSelectSqlFinalizer($this->createSqlForFinalizer($AST));
  15.             case $AST instanceof AST\UpdateStatement:
  16.                 return new PreparedExecutorFinalizer($this->createUpdateStatementExecutor($AST));
  17.             case $AST instanceof AST\DeleteStatement:
  18.                 return new PreparedExecutorFinalizer($this->createDeleteStatementExecutor($AST));
  19.         }
  20.         throw new LogicException('Unexpected AST node type');
  21.     }
  22. }