Package org.apache.cayenne.exp.parser

## Class ASTDbPath

- java.lang.Object
- - org.apache.cayenne.exp.Expression
  - - org.apache.cayenne.exp.parser.SimpleNode
    - - org.apache.cayenne.exp.parser.ASTPath
      - - org.apache.cayenne.exp.parser.ASTDbPath

- All Implemented Interfaces:
    `Serializable`, `Node`, `XMLSerializable`
  Direct Known Subclasses:
    `ASTDbIdPath`

      public class ASTDbPath
      extends ASTPath

  Path expression traversing DB relationships and attributes.
  Since:
    1.1
  See Also:
    Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static String` | `DB_PREFIX` |

    - ### Fields inherited from class org.apache.cayenne.exp.parser.ASTPath

      `path, pathAliases`

    - ### Fields inherited from class org.apache.cayenne.exp.parser.SimpleNode

      `children, id, parent`

    - ### Fields inherited from class org.apache.cayenne.exp.Expression

      `ADD, AND, ASTERISK, BETWEEN, BITWISE_AND, BITWISE_LEFT_SHIFT, BITWISE_NOT, BITWISE_OR, BITWISE_RIGHT_SHIFT, BITWISE_XOR, CUSTOM_OP, DB_PATH, DBID_PATH, DIVIDE, ENCLOSING_OBJECT, EQUAL_TO, EXISTS, FALSE, FULL_OBJECT, FUNCTION_CALL, GREATER_THAN, GREATER_THAN_EQUAL_TO, IN, LESS_THAN, LESS_THAN_EQUAL_TO, LIKE, LIKE_IGNORE_CASE, LIST, MULTIPLY, NEGATIVE, NOT, NOT_BETWEEN, NOT_EQUAL_TO, NOT_EXISTS, NOT_IN, NOT_LIKE, NOT_LIKE_IGNORE_CASE, OBJ_PATH, OR, PRUNED_NODE, SUBQUERY, SUBTRACT, TRUE, type`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `ASTDbPath()` |
    `ASTDbPath​(Object value)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `appendAsEJBQL​(List<Object> parameterAccumulator, Appendable out, String rootId)` | Stores a String representation of Expression as EJBQL using a provided PrintWriter.
    `void` | `appendAsString​(Appendable out)` | Appends own content as a String to the provided Appendable.
    `protected CayenneMapEntry` | `evaluateEntityNode​(Entity entity)` | Helper method to evaluate path expression with Cayenne Entity.
    `protected Object` | `evaluateNode​(Object o)` | Evaluates itself with object, pushing result on the stack.
    `int` | `getType()` | Returns a type of expression.
    `Expression` | `shallowCopy()` | Creates a copy of this expression node, without copying children.
    `protected Map<?,​?>` | `toMap​(Object o)` |

    - ### Methods inherited from class org.apache.cayenne.exp.parser.ASTPath

      `getExpressionOperator, getOperand, getOperandCount, getPath, getPathAliases, hashCode, setOperand, setPath, setPathAliases`

    - ### Methods inherited from class org.apache.cayenne.exp.parser.SimpleNode

      `appendAsEJBQL, appendAsEscapedString, appendChildrenAsEJBQL, appendScalarAsString, connectChildren, encodeScalarAsEJBQL, evaluate, evaluateChild, expName, flattenTree, getEJBQLExpressionOperator, jjtAddChild, jjtClose, jjtGetChild, jjtGetNumChildren, jjtGetParent, jjtOpen, jjtSetParent, notExp, pruneNodeForPrunedChild, unwrapChild, wrapChild`

    - ### Methods inherited from class org.apache.cayenne.exp.Expression

      `andExp, andExp, deepCopy, encodeAsXML, equals, filter, filterObjects, first, joinExp, joinExp, match, orExp, orExp, params, params, paramsArray, setType, toEJBQL, toEJBQL, toString, transform, transformExpression, traverse, traverse`

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

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### DB_PREFIX

          public static final String DB_PREFIX

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### ASTDbPath

          public ASTDbPath()

    - #### ASTDbPath

          public ASTDbPath​(Object value)

  - ### Method Detail

    - #### evaluateNode

          protected Object evaluateNode​(Object o)
                                 throws Exception

      Description copied from class: `SimpleNode`
      Evaluates itself with object, pushing result on the stack.
      Specified by:
        `evaluateNode` in class `SimpleNode`
      Throws:
        `Exception`

    - #### toMap

          protected Map<?,​?> toMap​(Object o)

    - #### shallowCopy

          public Expression shallowCopy()

      Creates a copy of this expression node, without copying children.
      Specified by:
        `shallowCopy` in class `Expression`

    - #### appendAsEJBQL

          public void appendAsEJBQL​(List<Object> parameterAccumulator,
                                    Appendable out,
                                    String rootId)
                             throws IOException

      Description copied from class: `Expression`
      Stores a String representation of Expression as EJBQL using a provided PrintWriter. DB path expressions produce non-standard EJBQL path expressions. If the parameterAccumulator is supplied then as the EJBQL is output, it may load parameters into this list. In this case, the EJBQL output will contain reference to positional parameters. If no parameterAccumulator is supplied and a scalar type is encountered for which there is no EJBQL literal representation (such as dates) then this method will throw a runtime exception to indicate that it was not possible to generate a string-only representation of the Expression in EJBQL.
      Overrides:
        `appendAsEJBQL` in class `SimpleNode`
      Throws:
        `IOException`
      Since:
        4.0

    - #### appendAsString

          public void appendAsString​(Appendable out)
                              throws IOException

      Description copied from class: `Expression`
      Appends own content as a String to the provided Appendable.
      Overrides:
        `appendAsString` in class `SimpleNode`
      Throws:
        `IOException`
      Since:
        4.0

    - #### getType

          public int getType()

      Description copied from class: `Expression`
      Returns a type of expression. Most common types are defined as public static fields of this interface.
      Overrides:
        `getType` in class `Expression`

    - #### evaluateEntityNode

          protected CayenneMapEntry evaluateEntityNode​(Entity entity)

      Helper method to evaluate path expression with Cayenne Entity.
      Overrides:
        `evaluateEntityNode` in class `ASTPath`