org.apache.cayenne.dba.postgres

## Class PostgresQualifierTranslator

- java.lang.Object
- - org.apache.cayenne.access.translator.select.QueryAssemblerHelper
  - - org.apache.cayenne.access.translator.select.QualifierTranslator
    - - org.apache.cayenne.access.translator.select.TrimmingQualifierTranslator
      - - org.apache.cayenne.dba.postgres.PostgresQualifierTranslator

- All Implemented Interfaces:
    TraversalHandler

      public class PostgresQualifierTranslator
      extends TrimmingQualifierTranslator

  Uses Postgres extensions to optimize various translations.
  Since:
    1.1

- - ### Field Summary

    - ### Fields inherited from class org.apache.cayenne.access.translator.select.TrimmingQualifierTranslator

      `trimFunction`

    - ### Fields inherited from class org.apache.cayenne.access.translator.select.QualifierTranslator

      `caseInsensitive, matchingObject, objectMatchTranslator, qualifier, useAliasForExpressions, waitingForEndNode`

    - ### Fields inherited from class org.apache.cayenne.access.translator.select.QueryAssemblerHelper

      `out, queryAssembler, strategy`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PostgresQualifierTranslator(QueryAssembler queryAssembler)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `appendExtractFunction(ASTExtract functionExpression)` Special case for extract date/time parts functions as they have many variants
    `protected void` | `appendFunction(ASTFunctionCall functionExpression)` Append function name to result SQL Override this method to rename or skip function if generic name isn't supported on target DB.
    `protected void` | `appendFunctionArgDivider(ASTFunctionCall functionExpression)` Append divider between function arguments.
    `protected void` | `clearLastFunctionArgDivider(ASTFunctionCall functionExpression)` Clear last divider as we currently don't now position of argument until parent element is ended.
    `void` | `endNode(Expression node, Expression parentNode)` Called during the traversal after an expression node children processing is finished.
    `void` | `finishedChild(Expression node, int childIndex, boolean hasMoreChildren)` Called during traversal after a child of expression has been visited.
    `protected boolean` | `parenthesisNeeded(Expression node, Expression parentNode)`
    `void` | `startNode(Expression node, Expression parentNode)` Called during the traversal before an expression node children processing is started.

    - ### Methods inherited from class org.apache.cayenne.access.translator.select.TrimmingQualifierTranslator

      `getTrimFunction, processColumn, processColumnWithQuoteSqlIdentifiers, setTrimFunction`

    - ### Methods inherited from class org.apache.cayenne.access.translator.select.QualifierTranslator

      `appendFunctionArg, appendLiteral, appendObjectMatch, detectObjectMatch, doAppendPart, doAppendPart, extractQualifier, objectNode, operandForBitwiseAnd, operandForBitwiseLeftShift, operandForBitwiseNot, operandForBitwiseOr, operandForBitwiseRightShift, operandForBitwiseXor, processRelTermination, setCaseInsensitive, setQualifier, setUseAliasForExpressions`

    - ### Methods inherited from class org.apache.cayenne.access.translator.select.QueryAssemblerHelper

      `appendDbPath, appendLikeEscapeCharacter, appendLiteralDirect, appendObjPath, appendPart, getDbEntity, getObjEntity, paramsDbType, processRelTermination, setForceJoinForRelations`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### PostgresQualifierTranslator

          public PostgresQualifierTranslator(QueryAssembler queryAssembler)

  - ### Method Detail

    - #### startNode

          public void startNode(Expression node,
                                Expression parentNode)

      Description copied from interface: `TraversalHandler`
      Called during the traversal before an expression node children processing is started.
      Specified by:
        `startNode` in interface `TraversalHandler`
      Overrides:
        `startNode` in class `QualifierTranslator`

    - #### endNode

          public void endNode(Expression node,
                              Expression parentNode)

      Description copied from interface: `TraversalHandler`
      Called during the traversal after an expression node children processing is finished.
      Specified by:
        `endNode` in interface `TraversalHandler`
      Overrides:
        `endNode` in class `QualifierTranslator`

    - #### finishedChild

          public void finishedChild(Expression node,
                                    int childIndex,
                                    boolean hasMoreChildren)

      Description copied from interface: `TraversalHandler`
      Called during traversal after a child of expression has been visited.
      Specified by:
        `finishedChild` in interface `TraversalHandler`
      Overrides:
        `finishedChild` in class `QualifierTranslator`

    - #### appendFunction

          protected void appendFunction(ASTFunctionCall functionExpression)

      Description copied from class: `QualifierTranslator`
      Append function name to result SQL Override this method to rename or skip function if generic name isn't supported on target DB.
      Overrides:
        `appendFunction` in class `QualifierTranslator`
      Since:
        4.0

    - #### appendFunctionArgDivider

          protected void appendFunctionArgDivider(ASTFunctionCall functionExpression)

      Description copied from class: `QualifierTranslator`
      Append divider between function arguments. In overriding methods can be replaced e.g. for " || " for CONCAT operation
      Overrides:
        `appendFunctionArgDivider` in class `QualifierTranslator`
      Since:
        4.0

    - #### clearLastFunctionArgDivider

          protected void clearLastFunctionArgDivider(ASTFunctionCall functionExpression)

      Description copied from class: `QualifierTranslator`
      Clear last divider as we currently don't now position of argument until parent element is ended.
      Overrides:
        `clearLastFunctionArgDivider` in class `QualifierTranslator`
      Since:
        4.0

    - #### parenthesisNeeded

          protected boolean parenthesisNeeded(Expression node,
                                              Expression parentNode)

      Overrides:
        `parenthesisNeeded` in class `QualifierTranslator`

    - #### appendExtractFunction

          protected void appendExtractFunction(ASTExtract functionExpression)

      Description copied from class: `QualifierTranslator`
      Special case for extract date/time parts functions as they have many variants
      Overrides:
        `appendExtractFunction` in class `QualifierTranslator`

Copyright © 2001–2018 Apache Cayenne. All rights reserved.