Package org.apache.cayenne.exp.parser

## Class AggregateConditionNode

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

- All Implemented Interfaces:
    `Serializable`, `Node`, `XMLSerializable`
  Direct Known Subclasses:
    `ASTAnd`, `ASTNot`, `ASTOr`

      public abstract class AggregateConditionNode
      extends SimpleNode

  Superclass of aggregated conditional nodes such as NOT, AND, OR. Performs extra checks on parent and child expressions to validate conditions that are not addressed in the Cayenne expressions grammar.
  Since:
    1.1
  See Also:
    Serialized Form

- - ### Field Summary

    - ### 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
    --- | --- | ---
    `void` | `jjtAddChild​(Node n, int i)` | This method tells the node to add its argument to the node's list of children.
    `void` | `jjtSetParent​(Node n)` | This pair of methods are used to inform the node of its parent.
    `protected boolean` | `pruneNodeForPrunedChild​(Object prunedChild)` | Returns true if this node should be pruned from expression tree in the event a child is removed.
    `protected Object` | `transformExpression​(Function<Object,​Object> transformer)` | A recursive method called from "transform" to do the actual transformation.

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

      `appendAsEJBQL, appendAsEJBQL, appendAsEscapedString, appendAsString, appendChildrenAsEJBQL, appendScalarAsString, connectChildren, encodeScalarAsEJBQL, evaluate, evaluateChild, evaluateNode, expName, flattenTree, getEJBQLExpressionOperator, getExpressionOperator, getOperand, getOperandCount, getPathAliases, jjtClose, jjtGetChild, jjtGetNumChildren, jjtGetParent, jjtOpen, notExp, setOperand, unwrapChild, wrapChild`

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

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

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

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

- - ### Method Detail

    - #### pruneNodeForPrunedChild

          protected boolean pruneNodeForPrunedChild​(Object prunedChild)

      Description copied from class: `Expression`
      Returns true if this node should be pruned from expression tree in the event a child is removed.
      Overrides:
        `pruneNodeForPrunedChild` in class `SimpleNode`

    - #### transformExpression

          protected Object transformExpression​(Function<Object,​Object> transformer)

      Description copied from class: `Expression`
      A recursive method called from "transform" to do the actual transformation.
      Overrides:
        `transformExpression` in class `Expression`
      Returns:
        null, Expression.PRUNED_NODE or transformed expression.

    - #### jjtSetParent

          public void jjtSetParent​(Node n)

      Description copied from interface: `Node`
      This pair of methods are used to inform the node of its parent.
      Specified by:
        `jjtSetParent` in interface `Node`
      Overrides:
        `jjtSetParent` in class `SimpleNode`

    - #### jjtAddChild

          public void jjtAddChild​(Node n,
                                  int i)

      Description copied from interface: `Node`
      This method tells the node to add its argument to the node's list of children.
      Specified by:
        `jjtAddChild` in interface `Node`
      Overrides:
        `jjtAddChild` in class `SimpleNode`