vendor/doctrine/lib/Doctrine/ORM/Query/TreeWalker.php
changeset 0 7f95f8617b0b
equal deleted inserted replaced
-1:000000000000 0:7f95f8617b0b
       
     1 <?php
       
     2 /*
       
     3  *  $Id$
       
     4  *
       
     5  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
       
     6  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
       
     7  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
       
     8  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
       
     9  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
       
    10  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
       
    11  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
       
    12  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
       
    13  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
       
    14  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
       
    15  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
       
    16  *
       
    17  * This software consists of voluntary contributions made by many individuals
       
    18  * and is licensed under the LGPL. For more information, see
       
    19  * <http://www.doctrine-project.org>.
       
    20  */
       
    21 
       
    22 namespace Doctrine\ORM\Query;
       
    23 
       
    24 /**
       
    25  * Interface for walkers of DQL ASTs (abstract syntax trees).
       
    26  *
       
    27  * @author Roman Borschel <roman@code-factory.org>
       
    28  * @since 2.0
       
    29  */
       
    30 interface TreeWalker
       
    31 {
       
    32     /**
       
    33      * Initializes TreeWalker with important information about the ASTs to be walked
       
    34      *
       
    35      * @param Query $query The parsed Query.
       
    36      * @param ParserResult $parserResult The result of the parsing process.
       
    37      * @param array $queryComponents Query components (symbol table)
       
    38      */
       
    39     public function __construct($query, $parserResult, array $queryComponents);
       
    40 
       
    41     /**
       
    42      * Walks down a SelectStatement AST node, thereby generating the appropriate SQL.
       
    43      *
       
    44      * @return string The SQL.
       
    45      */
       
    46     function walkSelectStatement(AST\SelectStatement $AST);
       
    47 
       
    48     /**
       
    49      * Walks down a SelectClause AST node, thereby generating the appropriate SQL.
       
    50      *
       
    51      * @return string The SQL.
       
    52      */
       
    53     function walkSelectClause($selectClause);
       
    54 
       
    55     /**
       
    56      * Walks down a FromClause AST node, thereby generating the appropriate SQL.
       
    57      *
       
    58      * @return string The SQL.
       
    59      */
       
    60     function walkFromClause($fromClause);
       
    61 
       
    62     /**
       
    63      * Walks down a FunctionNode AST node, thereby generating the appropriate SQL.
       
    64      *
       
    65      * @return string The SQL.
       
    66      */
       
    67     function walkFunction($function);
       
    68 
       
    69     /**
       
    70      * Walks down an OrderByClause AST node, thereby generating the appropriate SQL.
       
    71      *
       
    72      * @param OrderByClause
       
    73      * @return string The SQL.
       
    74      */
       
    75     function walkOrderByClause($orderByClause);
       
    76 
       
    77     /**
       
    78      * Walks down an OrderByItem AST node, thereby generating the appropriate SQL.
       
    79      *
       
    80      * @param OrderByItem
       
    81      * @return string The SQL.
       
    82      */
       
    83     function walkOrderByItem($orderByItem);
       
    84 
       
    85     /**
       
    86      * Walks down a HavingClause AST node, thereby generating the appropriate SQL.
       
    87      *
       
    88      * @param HavingClause
       
    89      * @return string The SQL.
       
    90      */
       
    91     function walkHavingClause($havingClause);
       
    92 
       
    93     /**
       
    94      * Walks down a JoinVariableDeclaration AST node and creates the corresponding SQL.
       
    95      *
       
    96      * @param JoinVariableDeclaration $joinVarDecl
       
    97      * @return string The SQL.
       
    98      */
       
    99     function walkJoinVariableDeclaration($joinVarDecl);
       
   100 
       
   101     /**
       
   102      * Walks down a SelectExpression AST node and generates the corresponding SQL.
       
   103      *
       
   104      * @param SelectExpression $selectExpression
       
   105      * @return string The SQL.
       
   106      */
       
   107     function walkSelectExpression($selectExpression);
       
   108 
       
   109     /**
       
   110      * Walks down a QuantifiedExpression AST node, thereby generating the appropriate SQL.
       
   111      *
       
   112      * @param QuantifiedExpression
       
   113      * @return string The SQL.
       
   114      */
       
   115     function walkQuantifiedExpression($qExpr);
       
   116 
       
   117     /**
       
   118      * Walks down a Subselect AST node, thereby generating the appropriate SQL.
       
   119      *
       
   120      * @param Subselect
       
   121      * @return string The SQL.
       
   122      */
       
   123     function walkSubselect($subselect);
       
   124 
       
   125     /**
       
   126      * Walks down a SubselectFromClause AST node, thereby generating the appropriate SQL.
       
   127      *
       
   128      * @param SubselectFromClause
       
   129      * @return string The SQL.
       
   130      */
       
   131     function walkSubselectFromClause($subselectFromClause);
       
   132 
       
   133     /**
       
   134      * Walks down a SimpleSelectClause AST node, thereby generating the appropriate SQL.
       
   135      *
       
   136      * @param SimpleSelectClause
       
   137      * @return string The SQL.
       
   138      */
       
   139     function walkSimpleSelectClause($simpleSelectClause);
       
   140 
       
   141     /**
       
   142      * Walks down a SimpleSelectExpression AST node, thereby generating the appropriate SQL.
       
   143      *
       
   144      * @param SimpleSelectExpression
       
   145      * @return string The SQL.
       
   146      */
       
   147     function walkSimpleSelectExpression($simpleSelectExpression);
       
   148 
       
   149     /**
       
   150      * Walks down an AggregateExpression AST node, thereby generating the appropriate SQL.
       
   151      *
       
   152      * @param AggregateExpression
       
   153      * @return string The SQL.
       
   154      */
       
   155     function walkAggregateExpression($aggExpression);
       
   156 
       
   157     /**
       
   158      * Walks down a GroupByClause AST node, thereby generating the appropriate SQL.
       
   159      *
       
   160      * @param GroupByClause
       
   161      * @return string The SQL.
       
   162      */
       
   163     function walkGroupByClause($groupByClause);
       
   164 
       
   165     /**
       
   166      * Walks down a GroupByItem AST node, thereby generating the appropriate SQL.
       
   167      *
       
   168      * @param GroupByItem
       
   169      * @return string The SQL.
       
   170      */
       
   171     function walkGroupByItem(AST\PathExpression $pathExpr);
       
   172 
       
   173     /**
       
   174      * Walks down an UpdateStatement AST node, thereby generating the appropriate SQL.
       
   175      *
       
   176      * @param UpdateStatement
       
   177      * @return string The SQL.
       
   178      */
       
   179     function walkUpdateStatement(AST\UpdateStatement $AST);
       
   180 
       
   181     /**
       
   182      * Walks down a DeleteStatement AST node, thereby generating the appropriate SQL.
       
   183      *
       
   184      * @param DeleteStatement
       
   185      * @return string The SQL.
       
   186      */
       
   187     function walkDeleteStatement(AST\DeleteStatement $AST);
       
   188 
       
   189     /**
       
   190      * Walks down a DeleteClause AST node, thereby generating the appropriate SQL.
       
   191      *
       
   192      * @param DeleteClause
       
   193      * @return string The SQL.
       
   194      */
       
   195     function walkDeleteClause(AST\DeleteClause $deleteClause);
       
   196 
       
   197     /**
       
   198      * Walks down an UpdateClause AST node, thereby generating the appropriate SQL.
       
   199      *
       
   200      * @param UpdateClause
       
   201      * @return string The SQL.
       
   202      */
       
   203     function walkUpdateClause($updateClause);
       
   204 
       
   205     /**
       
   206      * Walks down an UpdateItem AST node, thereby generating the appropriate SQL.
       
   207      *
       
   208      * @param UpdateItem
       
   209      * @return string The SQL.
       
   210      */
       
   211     function walkUpdateItem($updateItem);
       
   212 
       
   213     /**
       
   214      * Walks down a WhereClause AST node, thereby generating the appropriate SQL.
       
   215      *
       
   216      * @param WhereClause
       
   217      * @return string The SQL.
       
   218      */
       
   219     function walkWhereClause($whereClause);
       
   220 
       
   221     /**
       
   222      * Walks down a ConditionalExpression AST node, thereby generating the appropriate SQL.
       
   223      *
       
   224      * @param ConditionalExpression
       
   225      * @return string The SQL.
       
   226      */
       
   227     function walkConditionalExpression($condExpr);
       
   228 
       
   229     /**
       
   230      * Walks down a ConditionalTerm AST node, thereby generating the appropriate SQL.
       
   231      *
       
   232      * @param ConditionalTerm
       
   233      * @return string The SQL.
       
   234      */
       
   235     function walkConditionalTerm($condTerm);
       
   236 
       
   237     /**
       
   238      * Walks down a ConditionalFactor AST node, thereby generating the appropriate SQL.
       
   239      *
       
   240      * @param ConditionalFactor
       
   241      * @return string The SQL.
       
   242      */
       
   243     function walkConditionalFactor($factor);
       
   244 
       
   245     /**
       
   246      * Walks down a ConditionalPrimary AST node, thereby generating the appropriate SQL.
       
   247      *
       
   248      * @param ConditionalPrimary
       
   249      * @return string The SQL.
       
   250      */
       
   251     function walkConditionalPrimary($primary);
       
   252 
       
   253     /**
       
   254      * Walks down an ExistsExpression AST node, thereby generating the appropriate SQL.
       
   255      *
       
   256      * @param ExistsExpression
       
   257      * @return string The SQL.
       
   258      */
       
   259     function walkExistsExpression($existsExpr);
       
   260 
       
   261     /**
       
   262      * Walks down a CollectionMemberExpression AST node, thereby generating the appropriate SQL.
       
   263      *
       
   264      * @param CollectionMemberExpression
       
   265      * @return string The SQL.
       
   266      */
       
   267     function walkCollectionMemberExpression($collMemberExpr);
       
   268 
       
   269     /**
       
   270      * Walks down an EmptyCollectionComparisonExpression AST node, thereby generating the appropriate SQL.
       
   271      *
       
   272      * @param EmptyCollectionComparisonExpression
       
   273      * @return string The SQL.
       
   274      */
       
   275     function walkEmptyCollectionComparisonExpression($emptyCollCompExpr);
       
   276 
       
   277     /**
       
   278      * Walks down a NullComparisonExpression AST node, thereby generating the appropriate SQL.
       
   279      *
       
   280      * @param NullComparisonExpression
       
   281      * @return string The SQL.
       
   282      */
       
   283     function walkNullComparisonExpression($nullCompExpr);
       
   284 
       
   285     /**
       
   286      * Walks down an InExpression AST node, thereby generating the appropriate SQL.
       
   287      *
       
   288      * @param InExpression
       
   289      * @return string The SQL.
       
   290      */
       
   291     function walkInExpression($inExpr);
       
   292 
       
   293     /**
       
   294      * Walks down an InstanceOfExpression AST node, thereby generating the appropriate SQL.
       
   295      *
       
   296      * @param InstanceOfExpression
       
   297      * @return string The SQL.
       
   298      */
       
   299     function walkInstanceOfExpression($instanceOfExpr);
       
   300 
       
   301     /**
       
   302      * Walks down a literal that represents an AST node, thereby generating the appropriate SQL.
       
   303      *
       
   304      * @param mixed
       
   305      * @return string The SQL.
       
   306      */
       
   307     function walkLiteral($literal);
       
   308 
       
   309     /**
       
   310      * Walks down a BetweenExpression AST node, thereby generating the appropriate SQL.
       
   311      *
       
   312      * @param BetweenExpression
       
   313      * @return string The SQL.
       
   314      */
       
   315     function walkBetweenExpression($betweenExpr);
       
   316 
       
   317     /**
       
   318      * Walks down a LikeExpression AST node, thereby generating the appropriate SQL.
       
   319      *
       
   320      * @param LikeExpression
       
   321      * @return string The SQL.
       
   322      */
       
   323     function walkLikeExpression($likeExpr);
       
   324 
       
   325     /**
       
   326      * Walks down a StateFieldPathExpression AST node, thereby generating the appropriate SQL.
       
   327      *
       
   328      * @param StateFieldPathExpression
       
   329      * @return string The SQL.
       
   330      */
       
   331     function walkStateFieldPathExpression($stateFieldPathExpression);
       
   332 
       
   333     /**
       
   334      * Walks down a ComparisonExpression AST node, thereby generating the appropriate SQL.
       
   335      *
       
   336      * @param ComparisonExpression
       
   337      * @return string The SQL.
       
   338      */
       
   339     function walkComparisonExpression($compExpr);
       
   340 
       
   341     /**
       
   342      * Walks down an InputParameter AST node, thereby generating the appropriate SQL.
       
   343      *
       
   344      * @param InputParameter
       
   345      * @return string The SQL.
       
   346      */
       
   347     function walkInputParameter($inputParam);
       
   348 
       
   349     /**
       
   350      * Walks down an ArithmeticExpression AST node, thereby generating the appropriate SQL.
       
   351      *
       
   352      * @param ArithmeticExpression
       
   353      * @return string The SQL.
       
   354      */
       
   355     function walkArithmeticExpression($arithmeticExpr);
       
   356 
       
   357     /**
       
   358      * Walks down an ArithmeticTerm AST node, thereby generating the appropriate SQL.
       
   359      *
       
   360      * @param mixed
       
   361      * @return string The SQL.
       
   362      */
       
   363     function walkArithmeticTerm($term);
       
   364 
       
   365     /**
       
   366      * Walks down a StringPrimary that represents an AST node, thereby generating the appropriate SQL.
       
   367      *
       
   368      * @param mixed
       
   369      * @return string The SQL.
       
   370      */
       
   371     function walkStringPrimary($stringPrimary);
       
   372 
       
   373     /**
       
   374      * Walks down an ArithmeticFactor that represents an AST node, thereby generating the appropriate SQL.
       
   375      *
       
   376      * @param mixed
       
   377      * @return string The SQL.
       
   378      */
       
   379     function walkArithmeticFactor($factor);
       
   380 
       
   381     /**
       
   382      * Walks down an SimpleArithmeticExpression AST node, thereby generating the appropriate SQL.
       
   383      *
       
   384      * @param SimpleArithmeticExpression
       
   385      * @return string The SQL.
       
   386      */
       
   387     function walkSimpleArithmeticExpression($simpleArithmeticExpr);
       
   388 
       
   389     /**
       
   390      * Walks down an PathExpression AST node, thereby generating the appropriate SQL.
       
   391      *
       
   392      * @param mixed
       
   393      * @return string The SQL.
       
   394      */
       
   395     function walkPathExpression($pathExpr);
       
   396 
       
   397     /**
       
   398      * Gets an executor that can be used to execute the result of this walker.
       
   399      *
       
   400      * @return AbstractExecutor
       
   401      */
       
   402     function getExecutor($AST);
       
   403 }