Package org.apache.cayenne.exp.parser

## Class ASTPath

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

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

      public abstract class ASTPath
      extends SimpleNode

  Generic path expression.
  Since:
    1.1
  See Also:
    Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected String` | `path` |
    `protected Map<String,​String>` | `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`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected CayenneMapEntry` | `evaluateEntityNode​(Entity entity)` | Helper method to evaluate path expression with Cayenne Entity.
    `protected String` | `getExpressionOperator​(int index)` |
    `Object` | `getOperand​(int index)` | Returns a value of operand at `index`.
    `int` | `getOperandCount()` | Returns a count of operands of this expression.
    `String` | `getPath()` |
    `Map<String,​String>` | `getPathAliases()` | Always returns empty map.
    `int` | `hashCode()` |
    `void` | `setOperand​(int index, Object value)` | Sets a value of operand at `index`.
    `protected void` | `setPath​(Object path)` |
    `void` | `setPathAliases​(Map<String,​String> pathAliases)` |

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

      `appendAsEJBQL, appendAsEJBQL, appendAsEscapedString, appendAsString, appendChildrenAsEJBQL, appendScalarAsString, connectChildren, encodeScalarAsEJBQL, evaluate, evaluateChild, evaluateNode, 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, getType, joinExp, joinExp, match, orExp, orExp, params, params, paramsArray, setType, shallowCopy, toEJBQL, toEJBQL, toString, transform, transformExpression, traverse, traverse`

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

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

- - ### Field Detail

    - #### path

          protected String path

    - #### pathAliases

          protected Map<String,​String> pathAliases

  - ### Method Detail

    - #### getOperandCount

          public int getOperandCount()

      Description copied from class: `Expression`
      Returns a count of operands of this expression. In real life there are unary (count == 1), binary (count == 2) and ternary (count == 3) expressions.
      Overrides:
        `getOperandCount` in class `SimpleNode`

    - #### getOperand

          public Object getOperand​(int index)

      Description copied from class: `Expression`
      Returns a value of operand at `index`. Operand indexing starts at 0.
      Overrides:
        `getOperand` in class `SimpleNode`

    - #### setOperand

          public void setOperand​(int index,
                                 Object value)

      Description copied from class: `Expression`
      Sets a value of operand at `index`. Operand indexing starts at 0.
      Overrides:
        `setOperand` in class `SimpleNode`

    - #### setPath

          protected void setPath​(Object path)

    - #### getPath

          public String getPath()

    - #### getPathAliases

          public Map<String,​String> getPathAliases()

      Description copied from class: `SimpleNode`
      Always returns empty map.
      Overrides:
        `getPathAliases` in class `SimpleNode`
      Since:
        3.0

    - #### setPathAliases

          public void setPathAliases​(Map<String,​String> pathAliases)

      Since:
        3.0

    - #### evaluateEntityNode

          protected CayenneMapEntry evaluateEntityNode​(Entity entity)

      Helper method to evaluate path expression with Cayenne Entity.

    - #### getExpressionOperator

          protected String getExpressionOperator​(int index)

      Specified by:
        `getExpressionOperator` in class `SimpleNode`

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `Expression`