Package org.apache.cayenne.ejbql

## Interface EJBQLExpressionVisitor

- All Known Implementing Classes:
    `DB2EJBQLConditionTranslator`, `DerbyEJBQLConditionTranslator`, `EJBQLBaseVisitor`, `EJBQLConditionTranslator`, `EJBQLDbPathTranslator`, `EJBQLDeleteTranslator`, `EJBQLFromTranslator`, `EJBQLPathTranslator`, `EJBQLSelectColumnsTranslator`, `EJBQLSelectTranslator`, `FirebirdEJBQLConditionTranslator`, `HSQLEJBQLConditionTranslator`

      public interface EJBQLExpressionVisitor

  A visitor interface to inspect the EJBQL expression tree. Visit methods return booleans, indicating whether the children of a given node should be visited.
  Since:
    3.0

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `visitAbs​(EJBQLExpression expression, int finishedChildIndex)` |
    `boolean` | `visitAbstractSchemaName​(EJBQLExpression expression)` |
    `boolean` | `visitAdd​(EJBQLExpression expression, int finishedChildIndex)` | Called on visiting "add" expression and also after visiting every expression child.
    `boolean` | `visitAggregate​(EJBQLExpression expression)` |
    `boolean` | `visitAll​(EJBQLExpression expression)` |
    `boolean` | `visitAnd​(EJBQLExpression expression, int finishedChildIndex)` | Called on visiting "and" expression and also after visiting every expression child.
    `boolean` | `visitAny​(EJBQLExpression expression)` |
    `boolean` | `visitAscending​(EJBQLExpression expression)` |
    `boolean` | `visitAverage​(EJBQLAggregateColumn expression)` |
    `boolean` | `visitBetween​(EJBQLExpression expression, int finishedChildIndex)` | Called on visiting "between" expression and also after visiting every expression child.
    `boolean` | `visitBooleanLiteral​(EJBQLExpression expression)` |
    `boolean` | `visitClassName​(EJBQLExpression expression)` |
    `boolean` | `visitConcat​(EJBQLExpression expression, int finishedChildIndex)` |
    `boolean` | `visitConstructor​(EJBQLExpression expression)` |
    `boolean` | `visitConstructorParameter​(EJBQLExpression expression)` |
    `boolean` | `visitConstructorParameters​(EJBQLExpression expression)` |
    `boolean` | `visitCount​(EJBQLAggregateColumn expression)` |
    `boolean` | `visitCurrentDate​(EJBQLExpression expression)` |
    `boolean` | `visitCurrentTime​(EJBQLExpression expression)` |
    `boolean` | `visitCurrentTimestamp​(EJBQLExpression expression)` |
    `boolean` | `visitDbPath​(EJBQLExpression expression, int finishedChildIndex)` |
    `boolean` | `visitDecimalLiteral​(EJBQLDecimalLiteral expression)` |
    `boolean` | `visitDelete​(EJBQLExpression expression)` |
    `boolean` | `visitDescending​(EJBQLExpression expression)` |
    `boolean` | `visitDistinct​(EJBQLExpression expression)` |
    `boolean` | `visitDivide​(EJBQLExpression expression, int finishedChildIndex)` | Called on visiting "divide" expression and also after visiting every expression child.
    `boolean` | `visitEquals​(EJBQLExpression expression, int finishedChildIndex)` | Called on visiting "equals" expression and also after visiting every expression child.
    `boolean` | `visitEscapeCharacter​(EJBQLExpression expression)` |
    `boolean` | `visitExists​(EJBQLExpression expression)` |
    `boolean` | `visitFrom​(EJBQLExpression expression, int finishedChildIndex)` |
    `boolean` | `visitFromItem​(EJBQLFromItem expression, int finishedChildIndex)` |
    `boolean` | `visitGreaterOrEqual​(EJBQLExpression expression, int finishedChildIndex)` | Called on visiting ">=" expression and also after visiting every expression child.
    `boolean` | `visitGreaterThan​(EJBQLExpression expression, int finishedChildIndex)` | Called on visiting ">=" expression and also after visiting every expression child.
    `boolean` | `visitGroupBy​(EJBQLExpression expression)` |
    `boolean` | `visitHaving​(EJBQLExpression expression)` |
    `boolean` | `visitIdentificationVariable​(EJBQLExpression expression)` |
    `boolean` | `visitIdentifier​(EJBQLExpression expression)` |
    `boolean` | `visitIn​(EJBQLExpression expression, int finishedChildIndex)` |
    `boolean` | `visitInnerFetchJoin​(EJBQLJoin join)` |
    `boolean` | `visitInnerJoin​(EJBQLJoin join)` |
    `boolean` | `visitIntegerLiteral​(EJBQLIntegerLiteral expression)` |
    `boolean` | `visitIsEmpty​(EJBQLExpression expression)` |
    `boolean` | `visitIsNull​(EJBQLExpression expression, int finishedChildIndex)` |
    `boolean` | `visitLength​(EJBQLExpression expression, int finishedChildIndex)` |
    `boolean` | `visitLessOrEqual​(EJBQLExpression expression, int finishedChildIndex)` | Called on visiting "<=" expression and also after visiting every expression child.
    `boolean` | `visitLessThan​(EJBQLExpression expression, int finishedChildIndex)` | Called on visiting "<" expression and also after visiting every expression child.
    `boolean` | `visitLike​(EJBQLExpression expression, int finishedChildIndex)` | Called on visiting "LIKE" expression and also after visiting every expression child.
    `boolean` | `visitLocate​(EJBQLExpression expression, int finishedChildIndex)` |
    `boolean` | `visitLower​(EJBQLExpression expression, int finishedChildIndex)` |
    `boolean` | `visitMax​(EJBQLAggregateColumn expression)` |
    `boolean` | `visitMemberOf​(EJBQLExpression expression)` |
    `boolean` | `visitMin​(EJBQLAggregateColumn expression)` |
    `boolean` | `visitMod​(EJBQLExpression expression, int finishedChildIndex)` |
    `boolean` | `visitMultiply​(EJBQLExpression expression, int finishedChildIndex)` | Called on visiting "*" expression and also after visiting every expression child.
    `boolean` | `visitNamedInputParameter​(EJBQLExpression expression)` |
    `boolean` | `visitNamedInputParameterForIn​(EJBQLExpression expression)` | This method is invoked from the processing of the `EJBQLIn` in order to handle a query such as;
    `boolean` | `visitNegative​(EJBQLExpression expression)` |
    `boolean` | `visitNot​(EJBQLExpression expression)` |
    `boolean` | `visitNotEquals​(EJBQLExpression expression, int finishedChildIndex)` | Called on visiting "!=" expression and also after visiting every expression child.
    `boolean` | `visitOr​(EJBQLExpression expression, int finishedChildIndex)` | Called on visiting "or" expression and also after visiting every expression child.
    `boolean` | `visitOrderBy​(EJBQLExpression expression)` |
    `boolean` | `visitOrderByItem​(EJBQLExpression expression)` |
    `boolean` | `visitOuterFetchJoin​(EJBQLJoin join)` |
    `boolean` | `visitOuterJoin​(EJBQLJoin join)` |
    `boolean` | `visitPath​(EJBQLExpression expression, int finishedChildIndex)` | Called on visiting "path" expression and also after visiting every expression child.
    `boolean` | `visitPatternValue​(EJBQLExpression expression)` |
    `boolean` | `visitPositionalInputParameter​(EJBQLPositionalInputParameter expression)` |
    `boolean` | `visitPositionalInputParameterForIn​(EJBQLPositionalInputParameter expression)` | This method is invoked from the processing of the `EJBQLIn` in order to handle a query such as;
    `boolean` | `visitSelect​(EJBQLExpression expression)` |
    `boolean` | `visitSelectClause​(EJBQLExpression expression)` |
    `boolean` | `visitSelectExpression​(EJBQLExpression expression)` |
    `boolean` | `visitSelectExpressions​(EJBQLExpression expression)` |
    `boolean` | `visitSize​(EJBQLExpression expression)` |
    `boolean` | `visitSqrt​(EJBQLExpression expression, int finishedChildIndex)` |
    `boolean` | `visitStringLiteral​(EJBQLExpression expression)` |
    `boolean` | `visitSubselect​(EJBQLExpression expression)` |
    `boolean` | `visitSubstring​(EJBQLExpression expression, int finishedChildIndex)` |
    `boolean` | `visitSubtract​(EJBQLExpression expression, int finishedChildIndex)` | Called on visiting "subtract" expression and also after visiting every expression child.
    `boolean` | `visitSum​(EJBQLAggregateColumn expression)` |
    `boolean` | `visitTok​(EJBQLExpression expression)` |
    `boolean` | `visitTrim​(EJBQLExpression expression, int finishedChildIndex)` |
    `boolean` | `visitTrimBoth​(EJBQLExpression expression)` |
    `boolean` | `visitTrimCharacter​(EJBQLExpression expression)` |
    `boolean` | `visitTrimLeading​(EJBQLExpression expression)` |
    `boolean` | `visitTrimTrailing​(EJBQLExpression expression)` |
    `boolean` | `visitUpdate​(EJBQLExpression expression)` |
    `boolean` | `visitUpdateField​(EJBQLExpression expression, int finishedChildIndex)` |
    `boolean` | `visitUpdateItem​(EJBQLExpression expression, int finishedChildIndex)` |
    `boolean` | `visitUpdateValue​(EJBQLExpression expression)` |
    `boolean` | `visitUpper​(EJBQLExpression expression, int finishedChildIndex)` |
    `boolean` | `visitWhere​(EJBQLExpression expression)` |

- - ### Method Detail

    - #### visitAbs

          boolean visitAbs​(EJBQLExpression expression,
                           int finishedChildIndex)

    - #### visitAbstractSchemaName

          boolean visitAbstractSchemaName​(EJBQLExpression expression)

    - #### visitAdd

          boolean visitAdd​(EJBQLExpression expression,
                           int finishedChildIndex)

      Called on visiting "add" expression and also after visiting every expression child.
      Parameters:
        `expression` - an "add" node being visited.
        `finishedChildIndex` - "-1" when the expression node is visited for the first time, before its children; otherwise this is an index of a child just visited.

    - #### visitAggregate

          boolean visitAggregate​(EJBQLExpression expression)

    - #### visitAll

          boolean visitAll​(EJBQLExpression expression)

    - #### visitAnd

          boolean visitAnd​(EJBQLExpression expression,
                           int finishedChildIndex)

      Called on visiting "and" expression and also after visiting every expression child.
      Parameters:
        `expression` - an "and" node being visited.
        `finishedChildIndex` - "-1" when the expression node is visited for the first time, before its children; otherwise this is an index of a child just visited.

    - #### visitAny

          boolean visitAny​(EJBQLExpression expression)

    - #### visitAscending

          boolean visitAscending​(EJBQLExpression expression)

    - #### visitAverage

          boolean visitAverage​(EJBQLAggregateColumn expression)

    - #### visitBetween

          boolean visitBetween​(EJBQLExpression expression,
                               int finishedChildIndex)

      Called on visiting "between" expression and also after visiting every expression child.
      Parameters:
        `expression` - an "between" node being visited.
        `finishedChildIndex` - "-1" when the expression node is visited for the first time, before its children; otherwise this is an index of a child just visited.

    - #### visitBooleanLiteral

          boolean visitBooleanLiteral​(EJBQLExpression expression)

    - #### visitClassName

          boolean visitClassName​(EJBQLExpression expression)

    - #### visitConcat

          boolean visitConcat​(EJBQLExpression expression,
                              int finishedChildIndex)

    - #### visitConstructor

          boolean visitConstructor​(EJBQLExpression expression)

    - #### visitConstructorParameter

          boolean visitConstructorParameter​(EJBQLExpression expression)

    - #### visitConstructorParameters

          boolean visitConstructorParameters​(EJBQLExpression expression)

    - #### visitCount

          boolean visitCount​(EJBQLAggregateColumn expression)

    - #### visitCurrentDate

          boolean visitCurrentDate​(EJBQLExpression expression)

    - #### visitCurrentTime

          boolean visitCurrentTime​(EJBQLExpression expression)

    - #### visitCurrentTimestamp

          boolean visitCurrentTimestamp​(EJBQLExpression expression)

    - #### visitDecimalLiteral

          boolean visitDecimalLiteral​(EJBQLDecimalLiteral expression)

    - #### visitDelete

          boolean visitDelete​(EJBQLExpression expression)

    - #### visitDescending

          boolean visitDescending​(EJBQLExpression expression)

    - #### visitDistinct

          boolean visitDistinct​(EJBQLExpression expression)

    - #### visitDivide

          boolean visitDivide​(EJBQLExpression expression,
                              int finishedChildIndex)

      Called on visiting "divide" expression and also after visiting every expression child.
      Parameters:
        `expression` - an "divide" node being visited.
        `finishedChildIndex` - "-1" when the expression node is visited for the first time, before its children; otherwise this is an index of a child just visited.

    - #### visitEquals

          boolean visitEquals​(EJBQLExpression expression,
                              int finishedChildIndex)

      Called on visiting "equals" expression and also after visiting every expression child.
      Parameters:
        `expression` - an "equals" node being visited.
        `finishedChildIndex` - "-1" when the expression node is visited for the first time, before its children; otherwise this is an index of a child just visited.

    - #### visitEscapeCharacter

          boolean visitEscapeCharacter​(EJBQLExpression expression)

    - #### visitExists

          boolean visitExists​(EJBQLExpression expression)

    - #### visitFrom

          boolean visitFrom​(EJBQLExpression expression,
                            int finishedChildIndex)

    - #### visitFromItem

          boolean visitFromItem​(EJBQLFromItem expression,
                                int finishedChildIndex)

    - #### visitGreaterOrEqual

          boolean visitGreaterOrEqual​(EJBQLExpression expression,
                                      int finishedChildIndex)

      Called on visiting ">=" expression and also after visiting every expression child.
      Parameters:
        `expression` - an ">=" node being visited.
        `finishedChildIndex` - "-1" when the expression node is visited for the first time, before its children; otherwise this is an index of a child just visited.

    - #### visitGreaterThan

          boolean visitGreaterThan​(EJBQLExpression expression,
                                   int finishedChildIndex)

      Called on visiting ">=" expression and also after visiting every expression child.
      Parameters:
        `expression` - an ">=" node being visited.
        `finishedChildIndex` - "-1" when the expression node is visited for the first time, before its children; otherwise this is an index of a child just visited.

    - #### visitGroupBy

          boolean visitGroupBy​(EJBQLExpression expression)

    - #### visitHaving

          boolean visitHaving​(EJBQLExpression expression)

    - #### visitIdentificationVariable

          boolean visitIdentificationVariable​(EJBQLExpression expression)

    - #### visitIdentifier

          boolean visitIdentifier​(EJBQLExpression expression)

    - #### visitIn

          boolean visitIn​(EJBQLExpression expression,
                          int finishedChildIndex)

    - #### visitInnerFetchJoin

          boolean visitInnerFetchJoin​(EJBQLJoin join)

    - #### visitInnerJoin

          boolean visitInnerJoin​(EJBQLJoin join)

    - #### visitIntegerLiteral

          boolean visitIntegerLiteral​(EJBQLIntegerLiteral expression)

    - #### visitIsEmpty

          boolean visitIsEmpty​(EJBQLExpression expression)

    - #### visitIsNull

          boolean visitIsNull​(EJBQLExpression expression,
                              int finishedChildIndex)

    - #### visitLength

          boolean visitLength​(EJBQLExpression expression,
                              int finishedChildIndex)

    - #### visitLessOrEqual

          boolean visitLessOrEqual​(EJBQLExpression expression,
                                   int finishedChildIndex)

      Called on visiting "<=" expression and also after visiting every expression child.
      Parameters:
        `expression` - an "<=" node being visited.
        `finishedChildIndex` - "-1" when the expression node is visited for the first time, before its children; otherwise this is an index of a child just visited.

    - #### visitLessThan

          boolean visitLessThan​(EJBQLExpression expression,
                                int finishedChildIndex)

      Called on visiting "<" expression and also after visiting every expression child.
      Parameters:
        `expression` - an "<" node being visited.
        `finishedChildIndex` - "-1" when the expression node is visited for the first time, before its children; otherwise this is an index of a child just visited.

    - #### visitLike

          boolean visitLike​(EJBQLExpression expression,
                            int finishedChildIndex)

      Called on visiting "LIKE" expression and also after visiting every expression child.
      Parameters:
        `expression` - an "LIKE" node being visited.
        `finishedChildIndex` - "-1" when the expression node is visited for the first time, before its children; otherwise this is an index of a child just visited.

    - #### visitLocate

          boolean visitLocate​(EJBQLExpression expression,
                              int finishedChildIndex)

    - #### visitLower

          boolean visitLower​(EJBQLExpression expression,
                             int finishedChildIndex)

    - #### visitMax

          boolean visitMax​(EJBQLAggregateColumn expression)

    - #### visitMemberOf

          boolean visitMemberOf​(EJBQLExpression expression)

    - #### visitMin

          boolean visitMin​(EJBQLAggregateColumn expression)

    - #### visitMod

          boolean visitMod​(EJBQLExpression expression,
                           int finishedChildIndex)

    - #### visitMultiply

          boolean visitMultiply​(EJBQLExpression expression,
                                int finishedChildIndex)

      Called on visiting "*" expression and also after visiting every expression child.
      Parameters:
        `expression` - an "*" node being visited.
        `finishedChildIndex` - "-1" when the expression node is visited for the first time, before its children; otherwise this is an index of a child just visited.

    - #### visitNamedInputParameterForIn

          boolean visitNamedInputParameterForIn​(EJBQLExpression expression)

      This method is invoked from the processing of the `EJBQLIn` in order to handle a query such as;

      `p.toArtist IN (:artists)`

    - #### visitNamedInputParameter

          boolean visitNamedInputParameter​(EJBQLExpression expression)

    - #### visitNegative

          boolean visitNegative​(EJBQLExpression expression)

    - #### visitNot

          boolean visitNot​(EJBQLExpression expression)

    - #### visitNotEquals

          boolean visitNotEquals​(EJBQLExpression expression,
                                 int finishedChildIndex)

      Called on visiting "!=" expression and also after visiting every expression child.
      Parameters:
        `expression` - an "!=" node being visited.
        `finishedChildIndex` - "-1" when the expression node is visited for the first time, before its children; otherwise this is an index of a child just visited.

    - #### visitOr

          boolean visitOr​(EJBQLExpression expression,
                          int finishedChildIndex)

      Called on visiting "or" expression and also after visiting every expression child.
      Parameters:
        `expression` - an "or" node being visited.
        `finishedChildIndex` - "-1" when the expression node is visited for the first time, before its children; otherwise this is an index of a child just visited.

    - #### visitOrderBy

          boolean visitOrderBy​(EJBQLExpression expression)

    - #### visitOrderByItem

          boolean visitOrderByItem​(EJBQLExpression expression)

    - #### visitOuterFetchJoin

          boolean visitOuterFetchJoin​(EJBQLJoin join)

    - #### visitOuterJoin

          boolean visitOuterJoin​(EJBQLJoin join)

    - #### visitPath

          boolean visitPath​(EJBQLExpression expression,
                            int finishedChildIndex)

      Called on visiting "path" expression and also after visiting every expression child.
      Parameters:
        `expression` - a "path" node being visited.
        `finishedChildIndex` - "-1" when the expression node is visited for the first time, before its children; otherwise this is an index of a child just visited.

    - #### visitDbPath

          boolean visitDbPath​(EJBQLExpression expression,
                              int finishedChildIndex)

    - #### visitPatternValue

          boolean visitPatternValue​(EJBQLExpression expression)

    - #### visitPositionalInputParameterForIn

          boolean visitPositionalInputParameterForIn​(EJBQLPositionalInputParameter expression)

      This method is invoked from the processing of the `EJBQLIn` in order to handle a query such as;

      `p.toArtist IN (?1)`

    - #### visitPositionalInputParameter

          boolean visitPositionalInputParameter​(EJBQLPositionalInputParameter expression)

    - #### visitSelect

          boolean visitSelect​(EJBQLExpression expression)

    - #### visitSelectClause

          boolean visitSelectClause​(EJBQLExpression expression)

    - #### visitSelectExpression

          boolean visitSelectExpression​(EJBQLExpression expression)

    - #### visitSelectExpressions

          boolean visitSelectExpressions​(EJBQLExpression expression)

    - #### visitSize

          boolean visitSize​(EJBQLExpression expression)

    - #### visitSqrt

          boolean visitSqrt​(EJBQLExpression expression,
                            int finishedChildIndex)

    - #### visitStringLiteral

          boolean visitStringLiteral​(EJBQLExpression expression)

    - #### visitSubselect

          boolean visitSubselect​(EJBQLExpression expression)

    - #### visitSubstring

          boolean visitSubstring​(EJBQLExpression expression,
                                 int finishedChildIndex)

    - #### visitSubtract

          boolean visitSubtract​(EJBQLExpression expression,
                                int finishedChildIndex)

      Called on visiting "subtract" expression and also after visiting every expression child.
      Parameters:
        `expression` - an "subtract" node being visited.
        `finishedChildIndex` - "-1" when the expression node is visited for the first time, before its children; otherwise this is an index of a child just visited.

    - #### visitSum

          boolean visitSum​(EJBQLAggregateColumn expression)

    - #### visitTok

          boolean visitTok​(EJBQLExpression expression)

    - #### visitTrim

          boolean visitTrim​(EJBQLExpression expression,
                            int finishedChildIndex)

    - #### visitTrimBoth

          boolean visitTrimBoth​(EJBQLExpression expression)

    - #### visitTrimCharacter

          boolean visitTrimCharacter​(EJBQLExpression expression)

    - #### visitTrimLeading

          boolean visitTrimLeading​(EJBQLExpression expression)

    - #### visitTrimTrailing

          boolean visitTrimTrailing​(EJBQLExpression expression)

    - #### visitUpdate

          boolean visitUpdate​(EJBQLExpression expression)

    - #### visitUpdateField

          boolean visitUpdateField​(EJBQLExpression expression,
                                   int finishedChildIndex)

    - #### visitUpdateItem

          boolean visitUpdateItem​(EJBQLExpression expression,
                                  int finishedChildIndex)

    - #### visitUpdateValue

          boolean visitUpdateValue​(EJBQLExpression expression)

    - #### visitUpper

          boolean visitUpper​(EJBQLExpression expression,
                             int finishedChildIndex)

    - #### visitWhere

          boolean visitWhere​(EJBQLExpression expression)