From 733556b6328b676a4e2ed6f491856c217fa22fcb Mon Sep 17 00:00:00 2001 From: guilhermeblanco Date: Tue, 4 Aug 2009 03:33:45 +0000 Subject: [PATCH] [2.0] Minor change in *Walker to be able to be used by custom assigned Walkers --- lib/Doctrine/ORM/Query/Parser.php | 3 ++- lib/Doctrine/ORM/Query/SqlWalker.php | 7 ++----- lib/Doctrine/ORM/Query/TreeWalker.php | 9 +++++++++ lib/Doctrine/ORM/Query/TreeWalkerAdapter.php | 5 +++++ 4 files changed, 18 insertions(+), 6 deletions(-) diff --git a/lib/Doctrine/ORM/Query/Parser.php b/lib/Doctrine/ORM/Query/Parser.php index 967781cd5..135e720a5 100644 --- a/lib/Doctrine/ORM/Query/Parser.php +++ b/lib/Doctrine/ORM/Query/Parser.php @@ -257,7 +257,8 @@ class Parser } // Create TreeWalker who creates the SQL from the AST - $treeWalker = $this->_treeWalker ?: new SqlWalker( + $treeWalker = $this->_treeWalker ?: new SqlWalker(); + $treeWalker->init( $this->_query, $this->_parserResult, $this->_queryComponents ); diff --git a/lib/Doctrine/ORM/Query/SqlWalker.php b/lib/Doctrine/ORM/Query/SqlWalker.php index f73ec637a..aab173425 100644 --- a/lib/Doctrine/ORM/Query/SqlWalker.php +++ b/lib/Doctrine/ORM/Query/SqlWalker.php @@ -72,12 +72,9 @@ class SqlWalker implements TreeWalker private $_useSqlTableAliases = true; /** - * Initializes a new SqlWalker instance with the given Query and ParserResult. - * - * @param Query $query The parsed Query. - * @param ParserResult $parserResult The result of the parsing process. + * @inheritdoc */ - public function __construct($query, $parserResult, array $queryComponents) + public function init($query, $parserResult, array $queryComponents) { $this->_rsm = $parserResult->getResultSetMapping(); $this->_query = $query; diff --git a/lib/Doctrine/ORM/Query/TreeWalker.php b/lib/Doctrine/ORM/Query/TreeWalker.php index fd7c42447..386b5f683 100644 --- a/lib/Doctrine/ORM/Query/TreeWalker.php +++ b/lib/Doctrine/ORM/Query/TreeWalker.php @@ -29,6 +29,15 @@ namespace Doctrine\ORM\Query; */ interface TreeWalker { + /** + * Initializes TreeWalker with important information about the ASTs to be walked + * + * @param Query $query The parsed Query. + * @param ParserResult $parserResult The result of the parsing process. + * @param array $queryComponents Query components (symbol table) + */ + function init($query, $parserResult, array $queryComponents); + /** * Walks down a SelectStatement AST node, thereby generating the appropriate SQL. * diff --git a/lib/Doctrine/ORM/Query/TreeWalkerAdapter.php b/lib/Doctrine/ORM/Query/TreeWalkerAdapter.php index 54175d938..c61c7f617 100644 --- a/lib/Doctrine/ORM/Query/TreeWalkerAdapter.php +++ b/lib/Doctrine/ORM/Query/TreeWalkerAdapter.php @@ -30,6 +30,11 @@ namespace Doctrine\ORM\Query; */ abstract class TreeWalkerAdapter implements TreeWalker { + /** + * @inheritdoc + */ + public function init($query, $parserResult, array $queryComponents) {} + /** * Walks down a SelectStatement AST node, thereby generating the appropriate SQL. *